AFFECTS: users of x11/xorg AUTHOR: kris@FreeBSD.org Welcome, fearless user! You are about to embark upon a mystical journey to the world of xorg 7.2. This upgrade procedure is for users of portupgrade. Users of other upgrade tools should contact the author for the corresponding upgrade method for that tool. It is recommended that you run the xorg 7.2 upgrade inside a script(1) session. This way, if something goes wrong, you will have hopefully have saved enough information for the developers to debug the problem. Make sure you choose a filesystem with lots of space for the script output. # script xorg-upgrade You may wish to set BATCH=yes in the environment to avoid interactive dialogue boxes. You may want to consider using portupgrade-devel, which fixes some annoying bugs that cause upgrades to incorrectly be marked as failed when they actually completed successfully. To switch to portupgrade-devel: # portupgrade -f -o ports-mgmt/portupgrade-devel portupgrade # rm -f /usr/ports/INDEX*.db /var/db/pkg/pkgdb.db # pkgdb -fu # portsdb -fu If you are an upgrade-test user (big wave!) you were instructed to created a separate tree for the test. You shouldn't forgot to set your PORTSDIR variable to it, and to create INDEXes: # setenv PORTSDIR `realpath .` <- csh-like users # export PORTSDIR=`realpath .` <- sh-like users # portsdb -U But you should keep your old DISTDIR to prevent multiple downloads: # setenv DISTDIR /usr/ports/distfiles/ <- csh-like users # export DISTDIR=/usr/ports/distfiles/ <- sh-like users If you want to use the binary nvidia driver (i386-only), set WITH_NVIDIA_GL=yes. It is necessary to set the XORG_UPGRADE environment variable while updating from xorg 6.9 to 7.2. Once the upgrade is complete this is no longer be required. For users of csh-like shells: # setenv XORG_UPGRADE yes For users of sh-like shells: # export XORG_UPGRADE=yes Unfortunately portupgrade (nor portupgrade-devel) cannot yet handle the rigors of the xorg upgrade without a small bit of help: # portupgrade -Rf libXft Now you are ready to upgrade everything: # portupgrade -a When packages are available (wait for the announcement on ports@), you may prefer to use precompiled packages to speed up the process: # portupgrade -aP Once the upgrade completes successfully, you can delete the xorg-manpages package, which is now orphaned. # pkg_delete xorg-manpages\* The final step is to merge remaining files from /usr/X11R6 into /usr/local (/usr/X11R6 is no longer used with xorg 7.2) and replace /usr/X11R6 with a symlink. A script is provided for your convenience (or you may choose to do this by hand): it will first attempt to back up your /usr/X11R6 into /usr/tmp/mergebase in case something goes wrong, then look for conflicts (files in /usr/X11R6 that would overwrite files in /usr/local). Depending on your system configuration you may have to resolve some of these conflicts by hand first (if in doubt, ask for help on freebsd-x11@FreeBSD.org). You may also need to edit the script if the default locations are not correct on your system. # sh /usr/ports/Tools/scripts/mergebase.sh When the merge operation completes successfully, the /usr/X11R6 directory hierarchy will be removed and replaced by a symlink to /usr/local. This symlink is necessary because some binary ports (and some remaining source ports) have hard-coded references to /usr/X11R6. Congratulations, you are done! # exit IF YOU RUN INTO PROBLEMS: # uname -a # ls -l /var/db/pkg # exit and send an email to freebsd-x11@FreeBSD.org with a full description of the problem. Do not include the above typescript in your email, but bzip2 it and make it available to the developers (e.g. put it online or send it by private email upon request).
- Move XORG_UPGRADE before the upgrade of libXft
- Create new INDEX files when you're a test user
- Set DISTDIR properly when you're a test user