from /usr/ports/UPDATING 20070519: AFFECTS: users of 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 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 If you have changed your ports environment in /etc/make.conf, /usr/local/etc/pkgtools.conf or similar you need to rebuild INDEX: # cd /usr/ports && make index If you have not changed your ports environment you can save some time and just fetch the latest INDEX: # cd /usr/ports && make fetchindex 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 If your machine does NOT have any gstreamer ports installed, you can then run: # portupgrade -a However, if you DO have gstreamer ports installed, you must run: # portupgrade -a -x 'gstreamer*' Followed by: # portupgrade -Rr 'gstreamer*' 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. If your /usr/X11R6 is a file system, you will also need to modify the script to pause after /usr/X11R6 is backed up, but before the symlink is created. # 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 CAVEATS Make sure you have the x11/xorg meta-port installed. If you do not have this meta-port installed with X.Org 6.9, you will miss out on a lot of the new X.Org 7.2 sub-ports. If you plan on keeping your current /etc/X11/xorg.conf, make sure you change ModulePath to /usr/local/lib/xorg/modules prior to running X. If you run into problems running the new X server, try moving aside your /etc/X11/xorg.conf and allow X to run with default values. After that you can see the default values in a log file (e.g. /var/log/Xorg.0.log) and fix your xorg.conf according to the defaults. 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).