Start by making a static snapshot of the current state of the portage tree. On gentoo.ifa.hawaii.edu, {{{ rsync -avp /usr/portage/ /usr/portage-$DATE }}} then point the portage-ipp synlink to the new directory {{{ gentoo usr # ls -lad portage* drwxr-xr-x 162 root root 4096 Jun 30 07:38 portage drwxr-xr-x 159 root root 4096 Aug 27 2008 portage-2008-08-27 drwxr-xr-x 3 root root 4096 Apr 22 12:26 portage-2009-04-22 drwxr-xr-x 162 root root 4096 Jun 23 13:46 portage-2009-06-23 lrwxrwxrwx 1 root root 18 Jun 23 13:44 portage-ipp -> portage-2009-06-23 }}} On the binpkg build master (currently master.ipp), update the portage tree {{{ emerge --sync -q }}} Then make sure you have the latest version of portage installed {{{ emerge -1 portage }}} Update the kernel to the new deserved rev and make sure the /usr/src/linux symlink is correct. This is because some packages actually need a configured version of the kernel sources and not sure the linux headers package. # XXX Check to see if your using the latest Gentoo profile and switch to the latest if necessary {{{ master ~ # profile-config list Available profile symlink targets: [1] default/linux/amd64/2008.0 * [2] default/linux/amd64/2008.0/desktop [3] default/linux/amd64/2008.0/developer [4] default/linux/amd64/2008.0/no-multilib [5] default/linux/amd64/2008.0/server [6] hardened/amd64 [7] hardened/amd64/multilib [8] selinux/2007.0/amd64 [9] selinux/2007.0/amd64/hardened [10] hardened/linux/amd64 }}} Update packages (particular Perl packages) under /usr/src/portage_overlay as needed and check with the equery tool to see if you can remove entries from /etc/portage.* Then update the 'system' target to so the build tool chain is up to date. {{{ emerge -e system }}} Make sure the current stable version of gcc is being used. {{{ master ~ # gcc-config -l [1] x86_64-pc-linux-gnu-4.3.2 * }}} Start the world package rebuild. {{{ emerge -e world }}} You will have to deal with varius package build problems and failures during the build. It's highly recommended that you run this under `screen` as it may take over a day to do the complete build. When the build is finished, removed all orphaned packages {{{ emerge -p --prune }}} Then re-run the world build to make sure there are any phantom dependencies {{{ emerge -e world }}} ipp 0.5 update commands {{{ emerge -K1va /data/portage/packages/All/portage-2.1.6.13.tbz2 emerge -C sys-apps/man-pages dev-db/mysql emerge -K1 /data/portage/packages/All/mysql-5.0.tbz2 # required by net-ftp/ftpbase rm /etc/ftpusers /etc/pam.d/ftp # conflicts with texlive emerge -C app-text/tetex equery list -i 2> /dev/null | grep perl-gcpan | xargs emerge -C # nagios 2.x conficts with nagios 3.x emerge -C nagios emerge -K1va world # we just broke nagios so restart it /etc/init.d/nrpe restart # remove packages now outside the 'world' set emerge --prune # cleanup dead symlinks find /bin /usr/bin /sbin /usr/sbin -type l ! -xtype f ! -xtype d -exec rm -f {} \; }}}