From 592e8534e2b88457ffce6afedd639eb9ffdafc0b Mon Sep 17 00:00:00 2001 From: Adam Weinberger Date: Sun, 4 Apr 2004 22:07:06 +0000 Subject: [PATCH] Announcing GNOME 2.6! There's a new upgrade FAQ, and a new script to handle the upgrading. Do not upgrade GNOME without it! Also incorporated are a number of grammar and readability fixes. --- en/gnome/Makefile | 4 +- en/gnome/docs/Makefile | 3 +- en/gnome/docs/faq2.sgml | 77 ++++-- en/gnome/docs/faq26.sgml | 196 ++++++++++++++++ en/gnome/docs/knownissues.sgml | 2 +- en/gnome/gnome_upgrade.sh | 415 +++++++++++++++++++++++++++++++++ en/gnome/includes.sgml | 4 +- en/gnome/index.xsl | 37 ++- en/gnome/news.xml | 19 ++ 9 files changed, 714 insertions(+), 43 deletions(-) create mode 100644 en/gnome/docs/faq26.sgml create mode 100644 en/gnome/gnome_upgrade.sh diff --git a/en/gnome/Makefile b/en/gnome/Makefile index 35d7fa2daa..280eeec094 100644 --- a/en/gnome/Makefile +++ b/en/gnome/Makefile @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/gnome/Makefile,v 1.12 2002/11/21 21:39:42 marcus Exp $ +# $FreeBSD: www/en/gnome/Makefile,v 1.13 2003/08/25 21:05:31 marcus Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -13,7 +13,7 @@ SUBDIR+= images DOCS= screenshots.sgml DOCS+= contact.sgml -DATA= index.html newsflash.html news.rdf +DATA= index.html newsflash.html news.rdf gnome_upgrade.sh CLEANFILES= index.html CLEANFILES+= newsflash.html diff --git a/en/gnome/docs/Makefile b/en/gnome/docs/Makefile index 7ecc1ad460..4c153e3b71 100644 --- a/en/gnome/docs/Makefile +++ b/en/gnome/docs/Makefile @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/gnome/docs/Makefile,v 1.12 2003/12/28 03:06:00 adamw Exp $ +# $FreeBSD: www/en/gnome/docs/Makefile,v 1.13 2004/01/07 23:38:16 adamw Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -8,6 +8,7 @@ .endif DOCS= faq2.sgml +DOCS+= faq26.sgml DOCS+= gnome_porting.sgml DOCS+= gnome1_porting.sgml DOCS+= gnome2_porting.sgml diff --git a/en/gnome/docs/faq2.sgml b/en/gnome/docs/faq2.sgml index 51a5aba264..ea4e8ebb15 100644 --- a/en/gnome/docs/faq2.sgml +++ b/en/gnome/docs/faq2.sgml @@ -18,7 +18,7 @@
  • What is the best way to upgrade from GNOME 1.4 to GNOME 2?
  • What is the best way to upgrade from GNOME - 2.2 to GNOME &gnomever;? + 2.4 to GNOME &gnomever;?
  • How do I keep my GNOME &gnomever; components and applications up-to-date?
  • Can I install GNOME 1.4 applications under @@ -54,6 +54,8 @@ release notes.

    +

    Install GNOME &gnomever; from packages.

    +

    To install GNOME &gnomever; from packages, use the command:

    # pkg_add -r gnome2 @@ -62,7 +64,13 @@ FreeBSD FTP site, and proceed to install them on your system.

    +<<<<<<< faq2.sgml +

    Install GNOME &gnomever; from ports.

    + +

    To build and install GNOME &gnomever; from ports, you should first +=======

    To build and install GNOME &gnomever; from ports, you should first +>>>>>>> 1.61 cvsup the latest ports tree. Then:

    @@ -72,6 +80,9 @@ # make install clean +

    Add FAM and LAME support to your GNOME + &gnomever; desktop.

    +

    For the best GNOME &gnomever; experience, you should install from ports, after adding the following macros to your /etc/make.conf file:

    @@ -111,6 +122,8 @@ WITH_LAME= yes

    These options may cause build errors on certain platforms, and thus they are not enabled by default.

    +

    Make GNOME &gnomever; start when X starts.

    +

    Once you have the GNOME &gnomever; desktop installed, GNOME &gnomever; can be started by adding the following line to ~/.xsession or ~/.xinitrc, as appropriate:

    @@ -128,22 +141,48 @@ exec gnome-session

    The majority of GNOME &gnomever; compilation problems can be solved by making sure all the necessary GNOME &gnomever; components are up-to-date.

    +<<<<<<< faq2.sgml + +

    Updating solves most problems

    +

    If you haven't yet followed FAQ #6, do so, as + it will most likely fix the problem you are reading this document + to solve.

    + +

    Please follow FAQ #6. If you have not done so, + and you ask for help, you will be told to follow FAQ #6.

    + +

    error: Library requirements (etc.) not met

    + +======= + +>>>>>>> 1.61

    In general, when a GNOME &gnomever; component is not up-to-date, you will see an error similar to the following:

     checking for libgnomeui-2.0 libbonoboui-2.0 libbonobo-2.0 >= 2.2.1
    +<<<<<<< faq2.sgml
    +gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2 libglade-2.0... 
    +configure: error: Library requirements (libgnomeui-2.0 libbonoboui-2.0
    +=======
     gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2 libglade-2.0...
     configure: error: Library requirements (libgnomeui-2.0 libbonoboui-2.0
    +>>>>>>> 1.61
     libbonobo-2.0 >= 2.2.1 gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2
    -libglade-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable
    +libglade-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable
     if your libraries are in a nonstandard prefix so pkg-config can find them.
     	      

    Simply keeping your ports tree up-to-date will prevent these errors.

    +<<<<<<< faq2.sgml +

    error: *** pkg-config too old

    + +======= + +>>>>>>> 1.61

    If the pkg-config program is out-of-date, you may see a configure error similar to the following:

    @@ -156,8 +195,15 @@ configure: error: *** pkg-config too old; version 0.14 or better required. The pkg-config application is found in the devel/pkgconfig port. By updating this port to the latest version, this error will go away.

    +<<<<<<< faq2.sgml + +

    error: undefined reference to 'strerror_r'

    + +

    You may see compiler errors relating to pthreads +=======

    You may see compiler errors relating to pthreads +>>>>>>> 1.61 (&posix; threads), such as:

    @@ -186,6 +232,8 @@ options     _KPOSIX_PRIORITY_SCHEDULING
     	      you remove them.
     	    

    +

    Prevent two versions of the same library.

    +

    A common source of build failures is the existence of multiple versions of the same library. This can happen if you have two different versions of a port installed, or can even happen through normal portupgrade use. @@ -301,20 +349,11 @@ ggv

  • -

    What is the best way to upgrade from GNOME 2.2 to GNOME &gnomever;?

    +

    What is the best way to upgrade from GNOME 2.4 to GNOME &gnomever;?

    -

    We recommend that you use /usr/ports/sysutils/portupgrade - for this purpose. The following will do the job well:

    - -
    -# pkgdb -F
    -(answer yes to all prompts; note that you might wish
    -to run the above command after each step below)
    -# portupgrade ORBit2 libbonobo
    -# portupgrade -rf -m BATCH=yes atk
    -# portupgrade -R -m BATCH=yes gnome2
    -	    
    - +

    The 2.4 to &gnomever; process is trickier than the 2.2 to 2.4 process. You are + strongly advised to read the upgrade FAQ for detailed + instructions.

  • @@ -326,6 +365,8 @@ to run the above command after each step below) and only portupgrade -- to keep your GNOME &gnomever; components and applications up-to-date.

    +

    Update your ports with portupgrade.

    +

    Once you have updated your ports tree (presumably with cvsup), the following two simple commands will update what needs to be updated, and will prevent inconsistencies:

    @@ -335,6 +376,8 @@ to run the above command after each step below) # portupgrade -a
    +

    Start from scratch.

    +

    Despite consistent utilization of portupgrade, if it seems like everything is refusing to build with everything else, you might save yourself a headache or three by removing @@ -414,8 +457,8 @@ to run the above command after each step below) to do the following:

    -killall metacity; sawfish &
    -gnome-session-save --gui
    +# killall metacity; sawfish &
    +# gnome-session-save --gui
     

    The gnome-session-save is important. Without it, the window manager will revert back to the one previously configured diff --git a/en/gnome/docs/faq26.sgml b/en/gnome/docs/faq26.sgml new file mode 100644 index 0000000000..039b81043d --- /dev/null +++ b/en/gnome/docs/faq26.sgml @@ -0,0 +1,196 @@ + + + + %gnomeincludes; + %includes; +]> + + &header; + +

    Contents

    +
      +
    1. What is new in GNOME &gnomever;? +
    2. How do I upgrade to GNOME &gnomever;? +
    3. Oops! I ran portupgrade(1)! What do I do? +
    4. The upgrade failed; what do I do? +
    5. List of known GNOME &gnomever; problems and their solutions +
    6. I have found a bug; whom should I alert? +
    7. I want the fame and glory of the FreeBSD GNOME team! What + can I do to participate? +
    + +

    Full Text

    +
      + +
    1. +

      What is new in GNOME &gnomever;?

      + +

      Although the canonical summary of new features can be found at + http://www.gnome.org/start/2.6/notes/rnwhatsnew.html, + some of the most exciting new features of GNOME &gnomever; are:

      + +
        +
      • Spatial Nautilus interface, designed to better reflect the logical + organization of folders +
      • Open/Save dialog box now has the features one would expect in an + open/save dialog box +
      • Intuitive application to change keyboard layouts +
      • Sleek desktop background selector +
      • Many new applications, applets, and UI enhancements +
      • Extensive list of stability and speed increases +
      + +
    2. + + +
    3. +

      How do I upgrade to GNOME &gnomever;?

      + +

      NOTE: Do not run portupgrade(1) to upgrade to GNOME &gnomever;!

      + +

      The simple answer is this:

      + +
        +
      1. CVSup + your ports tree. +
      2. Download the FreeBSD GNOME Project's upgrade + script. +
      3. Run the script as root. Read a good-sized book. +
      + +

      More detailed instructions are as follows:

      + +
        +
      1. CVSup your ports tree. + +

        To build GNOME &gnomever;, you need to obtain the &gnomever; ports tree skeleton. This is + most easily accomplished with CVSup. Simply obtain the latest ports tree, and you are + ready to go. After you have obtained the latest ports tree, do not run a typical + portupgrade(1).

        +
      2. + +
      3. Obtain the upgrade script. + +

        It is not possible to upgrade from GNOME 2.4 to GNOME &gnomever; by simply running + portupgrade(1). There are new dependencies, and ports will build out-of-order, + eventually causing the build to fail. Additionally, GTK+-2 cannot install when there are + input methods installed which were linked against older GTK+-2 versions.

        + +

        To work around these problems, and to provide an update mechanism as simple as + portupgrade(1), the FreeBSD GNOME team has produced a comprehensive upgrade script. + The script can be downloaded from:

        + +
        http://www.FreeBSD.org/gnome/gnome_upgrade.sh +
        + +

        Simply download that script, and save it to disk.

        +
      4. + +
      5. Run the script. + +

        Once you have the script downloaded, run, as root:

        + +
        +# sh ./gnome_upgrade.sh
        +	
        +

        Hit ENTER to begin, answer any questions that pop up, and go watch an + entire Monty Python anthology. Right after hitting ENTER at the beginning, + you will be given the path to a logfile. By running:

        + +
        +$ tail -f /path/to/logfile
        +	  
        +

        you can watch the entire upgrade process as it unfolds. It's hypnotic!

        +
      6. +
      +
    4. + + +
    5. +

      Oops! I ran portupgrade(1)! What do I do?

      + +

      Do not worry; hope is not lost. Running portupgrade(1) will cause the build + to fail, but it will not cause any lasting damage to your ports tree, unless you have + done something exceptionally creative. Simply download the gnome_upgrade.sh + script and run it, and pretend that you ran it in the first place. Nobody needs to know + that you didn't read the directions first!

      +
    6. + + +
    7. +

      The upgrade failed; what do I do?

      + +

      Unfortunately, this is not only possible, it's highly probable. There are many possible + valid GNOME configurations, and even more invalid starting points. If the script fails, + follow the instructions in the error message to let the FreeBSD GNOME team know about the + failure.

      + +

      The majority of build failures will be dependency-related issues. One simple way to resolve + the problem is to remove the offending port, re-run gnome_upgrade.sh, and then + reinstall the port when the upgrade process is complete.

      +
    8. + + +
    9. +

      List of GNOME &gnomever; problems and their solutions

      + +

      Although GNOME &gnomever; is certainly the best release to date (of course), there are + a couple regressions that slipped in, both in the GNOME code and in its implementation + within FreeBSD. Some of the more visible issues are:

      + +
        +
      • + #132154: [gnome-keyboard-properties] Keyboard repeat + rate and delay are saved as floats
      • +
      • + #137388: [gnome-terminal] gnome-terminal has a problem + with the dynamic title and vim
      • +
      • + #133690: [gnome-terminal] gnome-terminal does not exit + the shell correctly
      • +
      • + #136966: [nautilus] Create Document -> Empty File gets + wrong group
      • +
      • GnomeVFS-2 now has native support for sftp methods. Fully + non-interactive publickey authentication works on all versions + of FreeBSD, but FreeBSD 5.X is required for password or + passphrase authentication. +
      • In order to install the GNOME 2.6 packages from the Tinderbox, + the sysutils/pkg_install port must be installed + on FreeBSD 4.9 and FreeBSD 5.2.1. The necessary versions of the + pkg_install programs have already been incorporated into -STABLE + and -CURRENT. +
      • Under some circumstances, the GNOME mixer may report that no + mixer elements could be found, and it will be impossible to use + the GNOME mixer or gnome-volume-control to change the + volume. The GNOME developers are aware of the issue, and a + solution is forthcoming. +
      + +
    10. + + +
    11. +

      I have found a bug; whom should I alert?

      + +

      Please read the FreeBSD GNOME Project's + documentation on reporting bugs. +

      +
    12. + + +
    13. +

      I want the fame and glory of the FreeBSD GNOME team! What can I + do to participate?

      + +

      Please read our list of ways + to get involved! +

      +
    14. +
    + + &footer; + + diff --git a/en/gnome/docs/knownissues.sgml b/en/gnome/docs/knownissues.sgml index 34a712a2b1..ba44ffaa2d 100644 --- a/en/gnome/docs/knownissues.sgml +++ b/en/gnome/docs/knownissues.sgml @@ -17,7 +17,7 @@ list of known issues that affect all platforms.

    -

    1. Upgrading from GNOME 2.2 to &gnomever; is tricky

    +

    1. Upgrading from GNOME 2.4 to &gnomever; is tricky

    You should follow the diff --git a/en/gnome/gnome_upgrade.sh b/en/gnome/gnome_upgrade.sh new file mode 100644 index 0000000000..052fdf11b8 --- /dev/null +++ b/en/gnome/gnome_upgrade.sh @@ -0,0 +1,415 @@ +#!/bin/sh +# +# ################################################################## +# ################################################################## +# ## If you want to upgrade your GNOME desktop from 2.4 to 2.6, ## +# ## you're on the right track! Read our upgrade FAQ at ## +# ## http://www.freebsd.org/gnome/docs/faq26.html for complete ## +# ## instructions! ## +# ################################################################## +# ################################################################## +# +#- +# Copyright (c) 2004 FreeBSD GNOME Team +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $Id: gnome_upgrade.sh,v 1.1 2004-04-04 22:07:06 adamw Exp $ +# + +# This script will aid in doing major upgrades to the GNOME Desktop (e.g. +# an upgrade from 2.4 --> 2.6). + +GNOME_UPGRADE_SH_VER=42; # This should be nailed down before releasing + +## BEGIN global variable declarations. +VERBOSE=${VERBOSE:=0} +PORTSDIR=${PORTSDIR:=/usr/ports} +LOCALBASE=${LOCALBASE:=/usr/local} +X11BASE=${X11BASE:=/usr/X11R6} + +PROJECT_URL="http://www.FreeBSD.org/gnome/" +SUPPORT_EMAIL="freebsd-gnome@FreeBSD.org" + +SUPPORTED_FREEBSD_VERSIONS="4.9 5.2 5.2.1" + # Ports that must be up-to-date and installed for the Big Update to work +EXTERNAL_DEPENDS="popt gettext* libiconv expat pkgconfig freetype2 XFree86-libraries* Xft XFree86-fontScalable* XFree86-fontEncodings* png libaudiofile tiff jpeg libxml2 python libxslt gnomehier scrollkeeper intltool p5-XML-Parser docbook-sk xmlcatmgr docbook-xsl docbook-xml sdocbook-xml startup-notification gnome-icon-theme Hermes sox libmpeg2 guile libltdl aspell gle cdrtools mkisofs bitstream-vera openldap-client lcms libmng libtool ghostscript*" +EXTERNAL_4_DEPENDS="libgnugetopt" +EXTERNAL_5_DEPENDS="perl-5*" + # Ports that are obsoleted by the new GNOME version +RM_PORTS="acme gswitchit gnomevfs-extras libxklavier" + # Files that need to be removed for the Big Update to work (chicken-and-egg kludge) +RM_FILES="" + # The Big Update updates UPGRADE_TARGET and everything that depends on it +UPGRADE_TARGET="glib-2*" + # Ports that should be left until after the Big Update +EXCLUDE_PORTS="libgtop2 gnomesystemmonitor gdesklets gnomeapplets2 gnome2 regexxer gnomemeeting jamboree" + # Ports that should be installed from scratch after the Big Update + # (Needs to be in category/port form, like editors/AbiWord2) +POSTINSTALL_PORTS="" + # Ports that need to be rebuilt after the Big Update + # (Make sure to include upstream dependencies!) +REINSTALL_PORTS="libgtop2 gnomesystemmonitor gdesklets gnomeapplets2 gnome2 gnomevfs2 libgnome AbiWord2* gnome2-office" + +# the following exists to resolve chicken-and-egg dependency problems. +# +# Y depends upon X, but X needs to be removed for the build: +# +#if [ -x ${X11BASE}/bin/PROGRAM_X ]; then +# if [ -x ${X11BASE}/bin/PROGRAM_Y ]; then +# RM_PORTS="${RM_PORTS} programY" +# POSTINSTALL_PORTS="${POSTINSTALL_PORTS} editors/programY" +# fi +#fi + +if [ -f ${X11BASE}/libdata/pkgconfig/gucharmap.pc ]; then + if [ -x ${X11BASE}/bin/abiword ]; then + RM_PORTS="${RM_PORTS} AbiWord2*" + POSTINSTALL_PORTS="${POSTINSTALL_PORTS} editors/AbiWord2" + fi +fi + +## END global variable declarations. + +get_tmpfile() +{ + template=$1 + tmpfile="" + + if [ -n "${MC_TMPDIR}" -a -d "${MC_TMPDIR}" ]; then + tmpfile="${MC_TMPDIR}/${template}.XXXXXX" + elif [ -n "${TMPDIR}" -a -d "${TMPDIR}" ]; then + tmpfile="${TMPDIR}/${template}.XXXXXX" + elif [ -d "/var/tmp" ]; then + tmpfile="/var/tmp/${template}.XXXXXX" + elif [ -d "/tmp" ]; then + tmpfile="/tmp/${template}.XXXXXX" + elif [ -d "/usr/tmp" ]; then + tmpfile="/usr/tmp/${template}.XXXXXX" + else + return 1 + fi + + tmpfile=`mktemp -q ${tmpfile}` + + echo ${tmpfile} + + return 0 +} + +check_supported() +{ + version=$1 + supported=0 + + for i in ${SUPPORTED_FREEBSD_VERSIONS}; do + numeric_version=`echo ${version} | /usr/bin/cut -d'-' -f1` + if [ ${numeric_version} = ${i} ]; then + supported=1 + break + fi + done + + return ${supported} +} + +run_pkgdb() +{ + msg=$1 + logfile=$2 + pkgdb_args="$3" + PKGDB="${LOCALBASE}/sbin/pkgdb" + + if [ -z "$pkgdb_args" ]; then + pkgdb_args="-aF" + fi + + echo "===> Running ${PKGDB} ${msg} ..." + echo "===> Running ${PKGDB} ${msg} ..." >> ${logfile} + if [ ${VERBOSE} != 0 ]; then + echo "INFO: Running ${PKGDB} $pkgdb_args >> ${logfile}" + fi + echo "INFO: Running ${PKGDB} $pkgdb_args >> ${logfile}" >> ${logfile} + if [ "$pkgdb_args" = "-F" ]; then + ${PKGDB} $pkgdb_args 2>&1 | /usr/bin/tee ${logfile} + else + ${PKGDB} $pkgdb_args 2>&1 >> ${logfile} + fi + # Unless a meteor hits pkgdb while it's running, this next part won't + # even be executed ::/ + if [ $? != 0 ]; then + echo "FAILED." + echo "===> ${PKGDB} repair has failed. Please repair the package database by hand (run "pkgdb -F"), then re-run this script. If you require additional help, compress ${logfile}, and send it to ${SUPPORT_EMAIL}." | /usr/bin/fmt 75 79 + exit 1 + fi + echo "DONE." + return 0 +} + +run_portupgrade() +{ + target="$1" + logfile=$2 + + PORTUPGRADE_MAKE_ENV="${PORTUPGRADE_MAKE_ENV} GNOME_UPGRADE_SH_VER=${GNOME_UPGRADE_SH_VER}" + + echo "===> Running ${PORTUPGRADE} -O -m "BATCH=yes ${PORTUPGRADE_MAKE_ENV}" ${PORTUPGRADE_ARGS} ${target}" >> ${logfile} + if [ ${VERBOSE} != 0 ]; then + echo; echo "INFO: Running ${PORTUPGRADE} -O -m "BATCH=yes ${PORTUPGRADE_MAKE_ENV}" ${PORTUPGRADE_ARGS} ${target}" + fi + echo "INFO: Running ${PORTUPGRADE} -O -m "BATCH=yes ${PORTUPGRADE_MAKE_ENV}" ${PORTUPGRADE_ARGS} ${target}" >> ${logfile} + ${PORTUPGRADE} -O -m "BATCH=yes ${PORTUPGRADE_MAKE_ENV}" ${PORTUPGRADE_ARGS} ${target} >> ${logfile} 2>&1 + + return $? +} + +## BEGIN main block. +if [ `/usr/bin/id -u` != 0 ]; then + echo "You must be root to run this script." + exit 1 +fi +if [ ! -d ${PORTSDIR} ]; then + echo "${PORTSDIR} does not exist or is not a directory. Please set PORTSDIR to the directory containing the full FreeBSD ports tree." | /usr/bin/fmt 75 79 + exit 1 +fi + +version=`/usr/bin/uname -r` +check_supported ${version} +supported=$? + +if [ ${VERBOSE} != 0 ]; then + echo "INFO: OS version = ${version}, supported = ${supported}" +fi + +if [ ${supported} = 0 ]; then + echo "===> FreeBSD ${version} is not supported by the FreeBSD GNOME project. Please refer to ${PROJECT_URL} for a list of supported versions." | /usr/bin/fmt 75 79 + exit 1 +fi + +# Seriously. We do this for your protection. +echo +echo "To prevent crashing your system, as well as to significantly speed up the upgrade, you are strongly advised to run this program from a console. If any GNOME or Gtk+-2 application is running, you MUST abort now." | /usr/bin/fmt 75 79 +echo +echo "If necessary, hit Control-C now, drop to a terminal, and restart the upgrade." | /usr/bin/fmt 75 79 +echo +# $i is a good clobberable variable name +read -p "Hit to continue with the upgrade: " i +echo + +logfile=`get_tmpfile gnome_upgrade_log` +if [ $? != 0 ]; then + echo "===> Failed to create temporary logfile." + exit 1 +fi + +if [ ${VERBOSE} != 0 ]; then + echo "INFO: PORTSDIR = ${PORTSDIR}" +fi +echo "INFO: PORTSDIR = ${PORTSDIR}" >> ${logfile} + +echo "You can watch the upgrade process in real-time by running:" +echo " tail -f ${logfile}" +echo "INFO: logfile = ${logfile}" >> ${logfile} + +major_version=`echo ${version} | /usr/bin/cut -d'.' -f1` +eval "EXTERNAL_DEPENDS=\"${EXTERNAL_DEPENDS} \${EXTERNAL_${major_version}_DEPENDS}\"" + +if [ ${VERBOSE} != 0 ]; then + echo "INFO: EXTERNAL_DEPENDS = ${EXTERNAL_DEPENDS}" +fi +echo "INFO: EXTERNAL_DEPENDS = ${EXTERNAL_DEPENDS}" >> ${logfile} + +# First, check to see that we have portupgrade installed. +PORTUPGRADE="${LOCALBASE}/sbin/portupgrade" +if [ ! -x ${PORTUPGRADE} ]; then + if [ ${VERBOSE} = 1 ]; then + echo "INFO: Portupgrade is not installed; installing ..." + fi + echo "INFO: Portupgrade is not installed; installing ..." >> ${logfile} + if [ ! -d "${PORTSDIR}/sysutils/portupgrade" ]; then + echo "===> Failed to find ${PORTSDIR}/sysutils/portupgrade. Please make sure you have the whole ports tree checked out in ${PORTSDIR}." | /usr/bin/fmt 75 79 + exit 1 + fi + echo -n "===> Installing sysutils/portupgrade ..." + echo "===> Installing sysutils/portupgrade ..." >> ${logfile} + cd ${PORTSDIR}/sysutils/portupgrade + /usr/bin/make -DFORCE_PKG_REGISTER install clean >> ${logfile} 2>&1 + if [ $? != 0 ]; then + echo "FAILED." + echo "===> sysutils/portupgrade was NOT successfully installed. Please install portupgrade manually, then re-run this script. The output of the failed build is in ${logfile}." | /usr/bin/fmt 75 79 + exit 1 + fi + echo "DONE." +fi + +echo +echo ">>>>> STAGE 1 of 5: Cleaning the package database." + +# Now we need to run pkgdb to make sure our database is consistent. +run_pkgdb "to start with a consistent package database" ${logfile} + +# if there are any problems that could not be corrected in the previous step, +# an interactive run is necessary to resolve them. if the db is consistent, +# this step is just a time-consuming noop. +run_pkgdb "again, to resolve any inconsistencies that require manual interaction" ${logfile} "-F" + +# Run portupgrade on all the external dependencies. +echo +echo ">>>>> STAGE 2 of 5: Updating any out-of-date GNOME dependencies." +echo "===> Running ${PORTUPGRADE} for external dependencies ..." >> ${logfile} +run_portupgrade "${EXTERNAL_DEPENDS}" ${logfile} +if [ $? != 0 ]; then + echo "FAILED." + echo "===> ${PORTUPGRADE} failed to run for the external GNOME dependencies. Please make sure that ${EXTERNAL_DEPENDS} are up-to-date, then re-run this script. The output of the failed portupgrade can be found in ${logfile}. If you require additional help, please compress ${logfile}, and send it to ${SUPPORT_EMAIL}." | /usr/bin/fmt 75 79 + exit 1 +fi +echo "DONE." + +# Run pkgdb again. +run_pkgdb "after updating GNOME dependencies" ${logfile} + +echo +echo ">>>>> STAGE 3 of 5: Removing previously stand-alone applications that are now a part of another GNOME application." | /usr/bin/fmt 75 79 +# Remove any ports that are no longer in the tree. Note: we can ignore errors +# here since users may not have these ports installed. +PKGDEINSTALL="${LOCALBASE}/sbin/pkg_deinstall" +for i in ${RM_PORTS}; do + echo -n "===> Removing ${i} ..." + echo "===> Removing ${i} ..." >> ${logfile} + if [ ${VERBOSE} != 0 ]; then + echo "INFO: Running ${PKGDEINSTALL} -fO ${i}" + fi + echo "INFO: Running ${PKGDEINSTALL} -fO ${i}" >> ${logfile} + ${PKGDEINSTALL} -fO ${i} >> ${logfile} 2>&1 + echo "DONE." +done + +# Correct any stale dependencies from stuff that got removed. +# This hopefully isn't necessary, but if it is, this is the +# place to run it. +# run_pkgdb "after removing dead packages. Note: this will take a LONG time ..." ${logfile} "-fu" + +# Remove any specific files whose mere existence is known to cause build failures. +if [ ${VERBOSE} != 0 ]; then + echo "INFO: Removing any files whose existence can cause build failures." +fi +echo "INFO: Removing any files whose existence can cause build failures." >> ${logfile} +if [ ! -z "${RM_FILES}" ]; then + for file in ${RM_FILES}; do + if [ ${VERBOSE} != 0 ]; then + echo "INFO: Removing ${file}" + fi + echo "INFO: Removing ${file}" >> ${logfile} + /bin/rm -f ${file} + done +fi + +# Anything in the gtk2 tree that wasn't installed as part of gtk2 carries the +# chance of killing the build. +for gtkfile in `find ${X11BASE}/lib/gtk-2.0 -type f`; do + if [ ! `pkg_info -L gtk-2\* | grep ${gtkfile}` ]; then + if [ ${VERBOSE} != 0 ]; then + echo "INFO: Removing ${gtkfile}" + fi + echo "INFO: Removing {$gtkfile}" >> ${logfile} + /bin/rm -f ${gtkfile} + fi +done + + +echo +echo ">>>>> STAGE 4 of 5: Rebuilding all GNOME applications, and everything that relies upon them. (The Big Update)" | /usr/bin/fmt 75 79 +# Now comes the fun part. We will do a recursive forced upgrade on a certain +# target and all dependent ports. +if [ ${VERBOSE} != 0 ]; then + echo "===> Running portupgrade on ${UPGRADE_TARGET} and all dependent ports. Note: this will take a LONG time (a bit longer than it took to build it all the first time ...)" | /usr/bin/fmt 75 79 +else + echo "Note: this will take a LONG time (a bit longer than it took to build it all the first time ...). If you've been planning a day trip, now would be a great time to take it." | /usr/bin/fmt 75 79 +fi +echo "===> Running portupgrade on ${UPGRADE_TARGET} and all dependent ports ..." >> ${logfile} +SAVE_PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS}" +PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS} -r -f" +if [ ! -z "${EXCLUDE_PORTS}" ]; then + for excl in ${EXCLUDE_PORTS}; do + PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS} -x ${excl}" + done +fi +run_portupgrade ${UPGRADE_TARGET} ${logfile} +if [ $? != 0 ]; then + echo + echo "*** UPGRADE FAILED ***" + echo + echo "===> ${PORTUPGRADE} failed to run a recursive upgrade on ${UPGRADE_TARGET}. The output of the failed build is in ${logfile}. If you require additional help in figuring out why the upgrade failed, please compress ${logfile} and send it to ${SUPPORT_EMAIL}." | /usr/bin/fmt 75 79 + exit 1 +fi +PORTUPGRADE_ARGS="${SAVE_PORTUPGRADE_ARGS}" +echo +echo "${PORTUPGRADE} has finished. That was the hard part!" + +echo +echo ">>>>> STAGE 5 of 5: Rebuilding a couple ports that had to wait until new GNOME libraries were in place. (Almost done!)" | /usr/bin/fmt 75 79 +# Now, install anything that needs to be installed after other +# things have been updated. This includes things that had to +# be removed for chicken-and-egg problems. This is done before +# reinstallation in case anything in POSTINSTALL belongs to +# anything in REINSTALL. +if [ ! -z "${POSTINSTALL_PORTS}" ]; then + SAVE_PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS}" + PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS} -N" + for i in ${POSTINSTALL_PORTS}; do + echo -n "===> Installing ${i} ..." + echo "===> Installing ${i} ..." >> ${logfile} + run_portupgrade ${i} ${logfile} + if [ $? != 0 ]; then + echo "FAILED." + echo "===> Failed to install ${i}. Please install this port by hand. The output of the failed build is in ${logfile}. If you require additional assistance reinstalling this port, please compress ${logfile} and send it to ${SUPPORT_EMAIL}." | /usr/bin/fmt 75 79 + exit 1 + fi + echo "DONE." + done + PORTUPGRADE_ARGS="${SAVE_PORTUPGRADE_ARGS}" +fi + +# Now we need to reinstall any ports that have weird upgrade problems. +SAVE_PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS}" +PORTUPGRADE_ARGS="${PORTUPGRADE_ARGS} -f" +for i in ${REINSTALL_PORTS}; do + echo -n "===> Reinstalling ${i} ..." + echo "===> Reinstalling ${i} ..." >> ${logfile} + run_portupgrade ${i} ${logfile} + if [ $? != 0 ]; then + echo "FAILED." + echo "===> Failed to reinstall ${i}. Please reinstall this port by hand. The output of the failed build is in ${logfile}. If you require additional assistance reinstalling this port, please compress ${logfile} and send it to ${SUPPORT_EMAIL}." | /usr/bin/fmt 75 79 + exit 1 + fi + echo "DONE." +done +PORTUPGRADE_ARGS="${SAVE_PORTUPGRADE_ARGS}" + +# Now, run pkgdb one last time just as a housekeeping step. +run_pkgdb "to clean up after ourselves" ${logfile} + +echo +echo "Congratulations! GNOME has been successfully upgraded. Please refer to ${PROJECT_URL} for a list of known issues, FAQ, and other useful resources for running GNOME on FreeBSD." | /usr/bin/fmt 75 79 + +exit 0 diff --git a/en/gnome/includes.sgml b/en/gnome/includes.sgml index 2f3a63ba49..b5c92d3080 100644 --- a/en/gnome/includes.sgml +++ b/en/gnome/includes.sgml @@ -1,7 +1,7 @@ - + - + &email@FreeBSD.org
    ©right;'> diff --git a/en/gnome/index.xsl b/en/gnome/index.xsl index b257f9c4e5..6910213908 100644 --- a/en/gnome/index.xsl +++ b/en/gnome/index.xsl @@ -1,4 +1,4 @@ - + - +
    · GNOME on FreeBSD Home
    · Installation Instructions
    + · Upgrade Instructions
    · Available Applications
    · How to Help
    · Reporting a Bug
    @@ -50,7 +51,7 @@

    Documentation
    · FAQ
    - · Development Branch FAQ
    + · 2.4 to 2.6 Upgrade FAQ
    · Creating Ports
    · Known Issues

    @@ -91,27 +92,23 @@ +

    GNOME 2.6 Released!

    + +

    GNOME 2.6 has hit the ports tree! Read the + Upgrade FAQ for upgrade + instructions. Be sure to use the + upgrade script!

    +

    What is GNOME?

    GNOME Logo -

    The GNOME project was born to create an entirely free - desktop environment for free systems. From the start, the main - objective of GNOME has been to provide a user-friendly suite of - applications and an easy-to-use desktop environment. The FreeBSD GNOME - Project brings GNOME to the FreeBSD user.

    +

    The GNOME project has created an entirely free, easy-to-use + desktop environment and a user-friendly suite of applications, available + for many different free systems. The FreeBSD GNOME Project brings + GNOME to FreeBSD.

    -

    As with most GNU programs, GNOME has been designed to run on all - modern Unix-like operating systems. Through the efforts of the - FreeBSD GNOME Project and countless volunteers, GNOME is fully - supported on FreeBSD.

    - -

    The GNOME project has expanded its objectives over the past few - months to address a number of problems in the existing - infrastructure.

    - -

    The GNOME project acts as an umbrella. The major components of - GNOME are:

    +

    The major components of GNOME Project are: