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.
This commit is contained in:
Adam Weinberger 2004-04-04 22:07:06 +00:00
parent 42507c7acb
commit 592e8534e2
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=20504
9 changed files with 714 additions and 43 deletions

View file

@ -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

View file

@ -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

View file

@ -18,7 +18,7 @@
<li> <a href="#q4">What is the best way to upgrade from GNOME
1.4 to GNOME 2?</a>
<li> <a href="#q5">What is the best way to upgrade from GNOME
2.2 to GNOME &gnomever;?</a>
2.4 to GNOME &gnomever;?</a>
<li> <a href="#q6">How do I keep my GNOME &gnomever; components
and applications up-to-date?</a>
<li> <a href="#q7">Can I install GNOME 1.4 applications under
@ -54,6 +54,8 @@
<a href="http://www.gnome.org/start/&gnomever;/notes/">
release notes</a>.</p>
<p><u>Install GNOME &gnomever; from packages.</u></p>
<p>To install GNOME &gnomever; from packages, use the command:</p>
<tt># pkg_add -r gnome2</tt>
@ -62,7 +64,13 @@
FreeBSD FTP site, and proceed to install them on your system.
</p>
<<<<<<< faq2.sgml
<p><u>Install GNOME &gnomever; from ports.</u></p>
<p>To build and install GNOME &gnomever; from ports, you should first
=======
<p>To build and install GNOME &gnomever; from ports, you should first
>>>>>>> 1.61
<a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">
cvsup</a> the latest ports tree. Then:</p>
@ -72,6 +80,9 @@
# make install clean
</pre>
<p><u>Add <b>FAM</b> and <b>LAME</b> support to your GNOME
&gnomever; desktop.</u></p>
<p>For the best GNOME &gnomever; experience, you should install from
ports, after adding the following macros to your
<tt>/etc/make.conf</tt> file:</p>
@ -111,6 +122,8 @@ WITH_LAME= yes
<p>These options may cause build errors on certain platforms, and
thus they are not enabled by default.</p>
<p><u>Make GNOME &gnomever; start when <tt>X</tt> starts.</u></p>
<p>Once you have the GNOME &gnomever; desktop installed,
GNOME &gnomever; can be started by adding the following line
to <tt>~/.xsession</tt> or <tt>~/.xinitrc</tt>, as appropriate:</p>
@ -128,22 +141,48 @@ exec gnome-session
<p>The majority of GNOME &gnomever; compilation problems can be solved
by making sure all the necessary GNOME &gnomever; components are
<a href="#q6">up-to-date</a>.</p>
<<<<<<< faq2.sgml
<p><u>Updating solves most problems</u></p>
<p>If you haven't yet followed <a href="#q6">FAQ #6</a>, do so, as
it will most likely fix the problem you are reading this document
to solve.</p>
<p>Please follow <a href="#q6">FAQ #6</a>. If you have not done so,
and you ask for help, you will be told to follow FAQ #6.</p>
<p><u><b>error</b>: Library requirements (etc.) not met</u></p>
=======
>>>>>>> 1.61
<p>In general, when a GNOME &gnomever; component is not up-to-date,
you will see an error similar to the following:</p>
<pre>
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: <b>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</b>; consider adjusting the PKG_CONFIG_PATH environment variable
if your libraries are in a nonstandard prefix so pkg-config can find them.
</pre>
<p>Simply keeping your ports tree <a href="#q6">up-to-date</a> will
prevent these errors.</p>
<<<<<<< faq2.sgml
<p><u><b>error</b>: *** pkg-config too old</u></p>
=======
>>>>>>> 1.61
<p>If the <tt>pkg-config</tt> program is out-of-date, you may see
a configure error similar to the following:</p>
@ -156,8 +195,15 @@ configure: error: *** pkg-config too old; version 0.14 or better required.
The pkg-config application is found in the
<tt>devel/pkgconfig</tt> port. By updating this port to
the latest version, this error will go away.</p>
<<<<<<< faq2.sgml
<p><u><b>error</b>: undefined reference to 'strerror_r'</u></p>
<p>You may see compiler errors relating to pthreads
=======
<p>You may see compiler errors relating to pthreads
>>>>>>> 1.61
(&posix; threads), such as:</p>
<pre>
@ -186,6 +232,8 @@ options _KPOSIX_PRIORITY_SCHEDULING
you remove them.
</p>
<p><u>Prevent two versions of the same library.</u></p>
<p>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 <tt>portupgrade</tt> use.
@ -301,20 +349,11 @@ ggv
<!-- Q5 -->
<li style="padding-bottom: 0.5em"><a name="q5"></a>
<p><b>What is the best way to upgrade from GNOME 2.2 to GNOME &gnomever;?</b></p>
<p><b>What is the best way to upgrade from GNOME 2.4 to GNOME &gnomever;?</b></p>
<!-- A5 -->
<p>We recommend that you use <tt>/usr/ports/sysutils/portupgrade</tt>
for this purpose. The following will do the job well:</p>
<pre>
# 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
</pre>
<p>The 2.4 to &gnomever; process is trickier than the 2.2 to 2.4 process. You are
strongly advised to read the <a href="faq26.html">upgrade FAQ</a> for detailed
instructions.</p>
</li>
<!-- Q6 -->
@ -326,6 +365,8 @@ to run the above command after each step below)
and <em>only</em> <tt>portupgrade</tt> -- to keep your GNOME
&gnomever; components and applications up-to-date.</p>
<p><u>Update your ports with <tt>portupgrade.</tt></u></p>
<p>Once you have updated your ports tree (presumably with
<tt>cvsup</tt>), the following two simple commands will update
what needs to be updated, and will prevent inconsistencies:</p>
@ -335,6 +376,8 @@ to run the above command after each step below)
# portupgrade -a
</pre>
<p><u>Start from scratch.</u></p>
<p>Despite consistent utilization of <tt>portupgrade</tt>, 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:</p>
<pre>
killall metacity; sawfish &
gnome-session-save --gui
# killall metacity; sawfish &
# gnome-session-save --gui
</pre>
<p>The <tt>gnome-session-save</tt> is important. Without it, the
window manager will revert back to the one previously configured

196
en/gnome/docs/faq26.sgml Normal file
View file

@ -0,0 +1,196 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
<!ENTITY base CDATA "../../">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD GNOME Project: GNOME &gnomever; Upgrading FAQ">
<!ENTITY % gnomeincludes SYSTEM "../includes.sgml"> %gnomeincludes;
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
]>
<html>
&header;
<h2>Contents</h2>
<ol>
<li> <a href="#q1">What is new in GNOME &gnomever;?</a>
<li> <a href="#q2">How do I upgrade to GNOME &gnomever;?</a>
<li> <a href="#q3">Oops! I ran <tt>portupgrade(1)</tt>! What do I do?</a>
<li> <a href="#q4">The upgrade failed; what do I do?</a>
<li> <a href="#q5">List of known GNOME &gnomever; problems and their solutions</a>
<li> <a href="#q6">I have found a bug; whom should I alert?</a>
<li> <a href="#q7">I want the fame and glory of the FreeBSD GNOME team! What
can I do to participate?</a>
</ol>
<h2>Full Text</h2>
<ol>
<!-- Q1 -->
<li style="padding-bottom: 0.5em"><a name="q1"></a>
<p><b>What is new in GNOME &gnomever;?</b></p>
<!-- A1 -->
<p>Although the canonical summary of new features can be found at
<a href="http://www.gnome.org/start/2.6/notes/rnwhatsnew.html">http://www.gnome.org/start/2.6/notes/rnwhatsnew.html</a>,
some of the most exciting new features of GNOME &gnomever; are:</p>
<ul>
<li>Spatial Nautilus interface, designed to better reflect the logical
organization of folders
<li>Open/Save dialog box now has the features one would expect in an
open/save dialog box
<li>Intuitive application to change keyboard layouts
<li>Sleek desktop background selector
<li>Many new applications, applets, and UI enhancements
<li>Extensive list of stability and speed increases
</ul>
</li>
<!-- Q2 -->
<li style="padding-bottom: 0.5em"><a name="q2"></a>
<p><b>How do I upgrade to GNOME &gnomever;?</b></p>
<!-- A2 -->
<p><b><i>NOTE: Do <u>not</u> run <tt>portupgrade(1)</tt> to upgrade to GNOME &gnomever;!</i></b></p>
<p>The simple answer is this:</p>
<ol>
<li><a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">CVSup
your ports tree</a>.
<li>Download the FreeBSD GNOME Project's <a href="http://www.FreeBSD.org/gnome/gnome_upgrade.sh">upgrade
script</a>.
<li>Run the script as <tt>root</tt>. Read a good-sized book.
</ol>
<p>More detailed instructions are as follows:</p>
<ol>
<li>CVSup your ports tree.
<p>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, <i>do not</i> run a typical
<tt>portupgrade(1)</tt>.</p>
</li>
<li>Obtain the upgrade script.
<p>It is not possible to upgrade from GNOME 2.4 to GNOME &gnomever; by simply running
<tt>portupgrade(1)</tt>. 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.</p>
<p>To work around these problems, and to provide an update mechanism as simple as
<tt>portupgrade(1)</tt>, the FreeBSD GNOME team has produced a comprehensive upgrade script.
The script can be downloaded from:</p>
<blockquote><a
href="http://www.FreeBSD.org/gnome/gnome_upgrade.sh">http://www.FreeBSD.org/gnome/gnome_upgrade.sh</a>
</blockquote>
<p>Simply download that script, and save it to disk.</p>
</li>
<li>Run the script.
<p>Once you have the script downloaded, run, as <tt>root</tt>:</p>
<pre>
# sh ./gnome_upgrade.sh
</pre>
<p>Hit <tt>ENTER</tt> to begin, answer any questions that pop up, and go watch an
<i>entire</i> Monty Python anthology. Right after hitting <tt>ENTER</tt> at the beginning,
you will be given the path to a logfile. By running:</p>
<pre>
$ tail -f /path/to/logfile
</pre>
<p>you can watch the entire upgrade process as it unfolds. It's hypnotic!</p>
</li>
</ol>
</li>
<!-- Q3 -->
<li style="padding-bottom: 0.5em"><a name="q3"></a>
<p><b>Oops! I ran <tt>portupgrade(1)</tt>! What do I do?</b></p>
<!-- A3 -->
<p>Do not worry; hope is not lost. Running <tt>portupgrade(1)</tt> 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 <tt>gnome_upgrade.sh</tt>
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!</p>
</li>
<!-- Q4 -->
<li style="padding-bottom: 0.5em"><a name="q4"></a>
<p><b>The upgrade failed; what do I do?</b></p>
<!-- A4 -->
<p>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.</p>
<p>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 <tt>gnome_upgrade.sh</tt>, and then
reinstall the port when the upgrade process is complete.</p>
</li>
<!-- Q5 -->
<li style="padding-bottom: 0.5em"><a name="q5"></a>
<p><b>List of GNOME &gnomever; problems and their solutions</b></p>
<!-- A5 -->
<p>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:</p>
<ul>
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=132154">
#132154</a>: [gnome-keyboard-properties] Keyboard repeat
rate and delay are saved as floats</li>
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=137388">
#137388</a>: [gnome-terminal] gnome-terminal has a problem
with the dynamic title and vim</li>
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=133690">
#133690</a>: [gnome-terminal] gnome-terminal does not exit
the shell correctly</li>
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=136966">
#136966</a>: [nautilus] Create Document -&gt; Empty File gets
wrong group</li>
<li>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.
<li>In order to install the GNOME 2.6 packages from the Tinderbox,
the <tt>sysutils/pkg_install</tt> port <i>must</i> 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.
<li>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 <tt>gnome-volume-control</tt> to change the
volume. The GNOME developers are aware of the issue, and a
solution is forthcoming.
</ul>
</li>
<!-- Q6 -->
<li style="padding-bottom: 0.5em"><a name="q6"></a>
<p><b>I have found a bug; whom should I alert?</b></p>
<!-- A6 -->
<p>Please read the FreeBSD GNOME Project's
<a href="http://www.FreeBSD.org/gnome/docs/bugging.html">documentation on reporting bugs</a>.
</p>
</li>
<!-- Q7 -->
<li style="padding-bottom: 0.5em"><a name="q7"></a>
<p><b>I want the fame and glory of the FreeBSD GNOME team! What can I
do to participate?</b></p>
<!-- A7 -->
<p>Please read our list of <a href="http://www.FreeBSD.org/gnome/docs/volunteering.html">ways
to get involved</a>!
</p>
</li>
</ol>
&footer;
</body>
</html>

View file

@ -17,7 +17,7 @@
<a href="http://www.gnome.org/start/&gnomever;/notes/rnknownissues.html">
list</a> of known issues that affect all platforms.</p>
<h3>1. Upgrading from GNOME 2.2 to &gnomever; is tricky</h3>
<h3>1. Upgrading from GNOME 2.4 to &gnomever; is tricky</h3>
<p> You should follow the
<a href="http://www.FreeBSD.org/gnome/docs/faq2.html#q5">

415
en/gnome/gnome_upgrade.sh Normal file
View file

@ -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 <freebsd-gnome@FreeBSD.org>
# 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 <ENTER> 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

View file

@ -1,7 +1,7 @@
<!-- $FreeBSD: www/en/gnome/includes.sgml,v 1.3 2003/09/20 18:53:02 marcus Exp $ -->
<!-- $FreeBSD: www/en/gnome/includes.sgml,v 1.4 2003/12/27 23:15:32 adamw Exp $ -->
<!ENTITY email 'freebsd-gnome'>
<!ENTITY gnomever '2.4'>
<!ENTITY gnomever '2.6'>
<!ENTITY gnomedevelver '2.5'>
<!ENTITY author '<a href="&base;/gnome/contact.html">&email@FreeBSD.org</a><br>
&copyright;'>

View file

@ -1,4 +1,4 @@
<!-- $FreeBSD: www/en/gnome/index.xsl,v 1.46 2004/01/13 04:13:08 marcus Exp $ -->
<!-- $FreeBSD: www/en/gnome/index.xsl,v 1.47 2004/02/16 22:39:49 adamw Exp $ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@ -9,7 +9,7 @@
<xsl:import href="includes.xsl"/>
<xsl:variable name="base" select="'..'"/>
<xsl:variable name="date" select="'$FreeBSD: www/en/gnome/index.xsl,v 1.46 2004/01/13 04:13:08 marcus Exp $'"/>
<xsl:variable name="date" select="'$FreeBSD: www/en/gnome/index.xsl,v 1.47 2004/02/16 22:39:49 adamw Exp $'"/>
<xsl:variable name="title" select="'FreeBSD GNOME Project'"/>
<xsl:output type="html" encoding="iso-8859-1"
@ -40,6 +40,7 @@
<small><br/>
&#183; <a href="http://www.FreeBSD.org/gnome/">GNOME on FreeBSD Home</a><br/>
&#183; <a href="docs/faq2.html#q1">Installation Instructions</a><br/>
&#183; <a href="docs/faq26.html#q2">Upgrade Instructions</a><br/>
&#183; <a href="../ports/gnome.html">Available Applications</a><br/>
&#183; <a href="docs/volunteer.html">How to Help</a><br/>
&#183; <a href="docs/bugging.html">Reporting a Bug</a><br/>
@ -50,7 +51,7 @@
<p><font size="+1" color="#990000"><b>Documentation</b></font>
<small><br/>
&#183; <a href="docs/faq2.html">FAQ</a><br/>
&#183; <a href="docs/develfaq.html">Development Branch FAQ</a><br/>
&#183; <a href="docs/faq26.html">2.4 to 2.6 Upgrade FAQ</a><br/>
&#183; <a href="docs/porting.html">Creating Ports</a><br/>
&#183; <a href="docs/knownissues.html">Known Issues</a><br/>
</small></p>
@ -91,27 +92,23 @@
<!-- Main body column -->
<td align="left" valign="top" rowspan="2">
<h2><font color="#990000">GNOME 2.6 Released!</font></h2>
<p>GNOME 2.6 has hit the ports tree! Read the
<a href="docs/faq26.html">Upgrade FAQ</a> for upgrade
instructions. Be sure to use the
<a href="gnome_upgrade.sh">upgrade script</a>!</p>
<h2><font color="#990000">What is GNOME?</font></h2>
<img src="{$base}/gnome/images/gnome.png" align="right"
border="0" alt="GNOME Logo"/>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>The GNOME project has expanded its objectives over the past few
months to address a number of problems in the existing
<xsl:value-of select="$unix"/> infrastructure.</p>
<p>The GNOME project acts as an umbrella. The major components of
GNOME are:</p>
<p>The major components of GNOME Project are:</p>
<ul>
<li>The <a href="http://www.gnome.org">GNOME desktop</a>: An easy
to use window-based environment for users.</li>
@ -124,7 +121,7 @@
<h2><font color="#990000">State of the port</font></h2>
<p>GNOME for FreeBSD is currently supported on 4.8, 4.9, 5.2,
<p>GNOME for FreeBSD is currently supported on 4.9, 5.2,
-STABLE, and -CURRENT. Most of GNOME has been ported to
FreeBSD; however, there is
<a href="docs/volunteer.html">plenty left to do</a>!</p>

View file

@ -27,6 +27,25 @@
<year>
<name>2004</name>
<month>
<name>April</name>
<day>
<name>4</name>
<event>
<title>GNOME 2.6 Release available for FreeBSD</title>
<p>After a delay stemming from GNOME server security compromises,
GNOME 2.6 Release is available for FreeBSD! There are
<a href="http://www.FreeBSD.org/gnome/docs/faq26.html">instructions</a>
for the upgrade process, and
<a href="http://www.marcuscom.com/tinderbox/">packages</a>
for all supported versions of FreeBSD!</p>
</event>
</day>
</month>
<month>
<name>March</name>