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 164 root root 4096 Aug  5 07:31 /usr/portage
drwxr-xr-x 161 root root 4096 Dec 15  2010 /usr/portage-2010-12-15
lrwxrwxrwx   1 root root   18 Feb 14 16:48 /usr/portage-ipp -> portage-2010-12-15

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/10.0 *
  [2]   default/linux/amd64/10.0/desktop
  [3]   default/linux/amd64/10.0/desktop/gnome
  [4]   default/linux/amd64/10.0/desktop/kde
  [5]   default/linux/amd64/10.0/developer
  [6]   default/linux/amd64/10.0/no-multilib
  [7]   default/linux/amd64/10.0/server
  [8]   hardened/linux/amd64
  [9]   hardened/linux/amd64/selinux
  [10]  hardened/linux/amd64/no-multilib
  [11]  hardened/linux/amd64/no-multilib/selinux
  [12]  selinux/2007.0/amd64
  [13]  selinux/2007.0/amd64/hardened
  [14]  selinux/v2refpolicy/amd64
  [15]  selinux/v2refpolicy/amd64/desktop
  [16]  selinux/v2refpolicy/amd64/developer
  [17]  selinux/v2refpolicy/amd64/hardened
  [18]  selinux/v2refpolicy/amd64/server

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
 [2] x86_64-pc-linux-gnu-4.4.4 *

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

Cleanup any old binpkgs that are laying around

qpkg -cp

ipp 0.6 update commands

# wipe out any extra packages that ended up in the world file
#cd to root as root
echo "sys-apps/ipp-node" > /var/lib/portage/world
emerge -K1 /data/portage/packages/All/portage-*
emerge -C dev-db/mysql dev-db/mysql-community app-text/poppler dev-libs/popplersys-apps/man-pages app-text/ghostscript-gpl dev-libs/poppler-glib app-text/poppler-utils dev-java/blackdown-jdk app-text/ghostscript-gpl sys-apps/slocate =app-arch/lzma-utils-4.32.7
rm -rf /usr/share/fonts/default/ghostscript

# required by net-ftp/ftpbase
rm /etc/ftpusers /etc/pam.d/ftp

# conflicts with texlive
emerge -C app-text/tetex

cd /
equery list -i  2> /dev/null | grep perl-gcpan | xargs emerge -C

emerge -K1 -O /data/portage/packages/All/*

# When bash-completion fails to build due to glibc-2.11
cd /
tar -xjvf /usr/portage/packages/All/glibc-2.11.2-r3.tbz2

# emerge --resume / emerge --resume --skipfirst throughout process due to file collision completes
# remove packages now outside the 'world' set
emerge -aC =app-editors/emacs-22.3-r2 =app-text/docbook-xml-dtd-4.1.2-r6 =app-text/docbook-xml-dtd-4.2-r2 =app-text/docbook-xml-dtd-4.3-r1 =app-text/docbook-xml-dtd-4.4-r2 =dev-libs/glib-1.2.10-r5 =dev-libs/libusb-0.1.12-r5 =media-libs/freetype-1.4_pre20080316-r2 =media-libs/lcms-1.19 =media-libs/musicbrainz-2.1.5 =sys-devel/autoconf-2.13 =sys-devel/automake-1.5 =sys-devel/automake-1.9.6-r2 =sys-devel/libtool-1.5.26 =sys-libs/db-4.5.20_p2-r1 =sys-libs/db-4.6.21_p4 =virtual/libusb-0 =x11-libs/gtk+-1.2.10-r12 =x11-libs/gtksourceview-1.8.5-r1

# After emerge --resume due to file collision completes
# manually emerge the following packages
emerge -1K /data/portage/packages/All/gcc-*
emerge -1K /data/portage/packages/All/glibc-2.11.2-r3.tbz2
emerge -1K /data/portage/packages/All/grub-0.97-r3.tbz2
emerge -1K /data/portage/packages/All/baselayout-2.0.1-r1.tbz2
emerge -1K /data/portage/packages/All/openrc-0.6.8.tbz2
emerge -1K /data/portage/packages/All/bash-4.1_p7.tbz2
emerge -1K /data/portage/packages/All/bash-completion-1.2.tbz2
emerge -1K /data/portage/packages/All/e2fsprogs-*
emerge -1K /data/portage/packages/All/ganglia-*
emerge -1K /data/portage/packages/All/SVN-Mirror-0.73.tbz2
emerge -1K /data/portage/packages/All/trac-*

# remove packages now outside the 'world' set
emerge --prune --nodeps
emerge --depclean --with-bdeps y

# verify that following services are in respective runlevels
rc-update add udev sysinit

# fix gcc links
gcc-config 2

# fix dbus -- needed by gvim
dbus-uuidgen --ensure

# cleanup dead symlinks
find /bin /usr/bin /sbin /usr/sbin -type l ! -xtype f ! -xtype d -exec rm -f {} \;

ERRORS - file collision; emerge fails

rm -rf /usr/share/bash-completion/svk

rm -rf /usr/lib32/libpixman-1.so
rm -rf /usr/lib32/libpixman-1.so.0

rm -rf /usr/bin/libtool
rm -rf /usr/bin/libtoolize
rm -rf /usr/include/ltdl.h
rm -rf /usr/lib64/libltdl.a
rm -rf /usr/lib64/libltdl.la
rm -rf /usr/share/aclocal/libtool.m4
rm -rf /usr/share/aclocal/ltdl.m4
rm -rf /usr/share/info/libtool.info.bz2
rm -rf /usr/share/libtool/libltdl/COPYING.LIB
rm -rf /usr/share/libtool/libltdl/Makefile.am
rm -rf /usr/share/libtool/libltdl/Makefile.in
rm -rf /usr/share/libtool/libltdl/README
rm -rf /usr/share/libtool/libltdl/aclocal.m4
rm -rf /usr/share/libtool/libltdl/config-h.in
rm -rf /usr/share/libtool/libltdl/configure
rm -rf /usr/share/libtool/libltdl/configure.ac
rm -rf /usr/share/libtool/libltdl/ltdl.c
rm -rf /usr/share/libtool/libltdl/ltdl.h
rm -rf /usr/share/man/man1/libtool.1.bz2
rm -rf /usr/share/man/man1/libtoolize.1.bz2
rm -rf /usr/lib64/libltdl.so

rm -rf /usr/include/X11/extensions/scrnsaver.h
rm -rf /usr/include/X11/extensions/MITMisc.h
rm -rf /usr/include/X11/extensions/XEVI.h
rm -rf /usr/include/X11/extensions/XLbx.h
rm -rf /usr/include/X11/extensions/XShm.h
rm -rf /usr/include/X11/extensions/Xag.h
rm -rf /usr/include/X11/extensions/Xcup.h
rm -rf /usr/include/X11/extensions/Xdbe.h
rm -rf /usr/include/X11/extensions/Xext.h
rm -rf /usr/include/X11/extensions/Xge.h
rm -rf /usr/include/X11/extensions/dpms.h
rm -rf /usr/include/X11/extensions/extutil.h
rm -rf /usr/include/X11/extensions/lbxbuf.h
rm -rf /usr/include/X11/extensions/lbxbufstr.h
rm -rf /usr/include/X11/extensions/lbximage.h
rm -rf /usr/include/X11/extensions/multibuf.h
rm -rf /usr/include/X11/extensions/security.h
rm -rf /usr/include/X11/extensions/shape.h
rm -rf /usr/include/X11/extensions/sync.h
rm -rf /usr/include/X11/extensions/xtestext1.h
rm -rf /usr/include/X11/extensions/Xinerama.h
rm -rf /usr/include/X11/extensions/panoramiXext.h
rm -rf /usr/include/X11/extensions/record.h
rm -rf /usr/include/X11/extensions/XTest.h
rm -rf /usr/include/X11/extensions/xf86dga1.h
rm -rf /usr/include/X11/extensions/xf86vmode.h

rm -rf /etc/init.d/device-mapper
rm -rf /etc/init.d/dmeventd
rm -rf /lib64/libdevmapper-event.so.1.02
rm -rf /lib64/libdevmapper.so.1.02
rm -rf /lib64/rcscripts/addons/dm-start.sh
rm -rf /sbin/dmeventd
rm -rf /sbin/dmsetup
rm -rf /usr/include/libdevmapper-event.h
rm -rf /usr/include/libdevmapper.h
rm -rf /usr/lib64/libdevmapper-event.a
rm -rf /usr/lib64/libdevmapper-event.so
rm -rf /usr/lib64/libdevmapper.a
rm -rf /usr/lib64/libdevmapper.so
rm -rf /usr/share/man/man8/dmsetup.8.bz2

rm -rf /usr/lib64/perl5/vendor_perl/5.12.2/Module/CoreList.pm

rm -rf /usr/bin/locate
rm -rf /usr/bin/updatedb
rm -rf /usr/share/man/man1/locate.1.bz2

rm -rf /usr/lib64/monodoc/monodoc.xml
rm -rf /usr/lib64/monodoc/sources/Mono.tree
rm -rf /usr/lib64/monodoc/sources/Mono.zip
rm -rf /usr/lib64/monodoc/sources/cs-errors.tree
rm -rf /usr/lib64/monodoc/sources/cs-errors.zip
rm -rf /usr/lib64/monodoc/sources/ecma334.tree
rm -rf /usr/lib64/monodoc/sources/mono-tools.source
rm -rf /usr/lib64/monodoc/sources/monoapi.source
rm -rf /usr/lib64/monodoc/sources/netdocs.tree
rm -rf /usr/lib64/monodoc/sources/netdocs.zip
rm -rf /usr/share/man/man1/mdassembler.1.bz2
rm -rf /usr/share/man/man1/mdoc-assemble.1.bz2
rm -rf /usr/share/man/man1/mdoc-export-html.1.bz2
rm -rf /usr/share/man/man1/mdoc-export-msxdoc.1.bz2
rm -rf /usr/share/man/man1/mdoc-update.1.bz2
rm -rf /usr/share/man/man1/mdoc-validate.1.bz2
rm -rf /usr/share/man/man1/mdoc.1.bz2
rm -rf /usr/share/man/man1/monodocer.1.bz2
rm -rf /usr/share/man/man1/monodocs2html.1.bz2
rm -rf /usr/share/man/man5/mdoc.5.bz2

rm -rf /usr/bin/mdassembler
rm -rf /usr/bin/mdoc
rm -rf /usr/bin/mdoc-assemble
rm -rf /usr/bin/mdoc-export-html
rm -rf /usr/bin/mdoc-export-msxdoc
rm -rf /usr/bin/mdoc-update
rm -rf /usr/bin/mdoc-validate
rm -rf /usr/bin/mdvalidater
rm -rf /usr/bin/mod
rm -rf /usr/bin/monodocer
rm -rf /usr/bin/monodocs2html
rm -rf /usr/bin/monodocs2slashdoc
rm -rf /usr/lib64/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll
rm -rf /usr/lib64/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll.config
rm -rf /usr/lib64/mono/gac/monodoc/1.0.0.0__0738eb9f132ed756/monodoc.dll.mdb
rm -rf /usr/lib64/mono/monodoc/monodoc.dll
rm -rf /usr/lib64/monodoc/sources/Mono.source
rm -rf /usr/lib64/monodoc/sources/ecma334.zip
rm -rf /usr/lib64/monodoc/sources/netdocs.source
rm -rf /usr/lib64/pkgconfig/monodoc.pc

rm -rf /usr/share/php/Archive/Tar.php
rm -rf /usr/share/php/Console/Getopt.php

rm -rf /usr/include/poppler/ErrorCodes.h
rm -rf /usr/include/poppler/GfxState.h
rm -rf /usr/include/poppler/GlobalParams.h
rm -rf /usr/include/poppler/PageTransition.h
rm -rf /usr/include/poppler/Stream.h
rm -rf /usr/include/poppler/UTF8.h
rm -rf /usr/include/poppler/UnicodeMap.h
rm -rf /usr/include/poppler/UnicodeMapTables.h
rm -rf /usr/include/poppler/XpdfPluginAPI.h
rm -rf /usr/lib64/pkgconfig/poppler-splash.pc
rm -rf /usr/lib64/pkgconfig/poppler.pc
rm -rf /usr/lib64/pkgconfig/poppler-cairo.pc
rm -rf /usr/lib64/pkgconfig/poppler-glib.pc
rm -rf /usr/share/man/man1/pdffonts.1.bz2
rm -rf /usr/share/man/man1/pdfimages.1.bz2
rm -rf /usr/share/man/man1/pdfinfo.1.bz2
rm -rf /usr/share/man/man1/pdftohtml.1.bz2
rm -rf /usr/share/man/man1/pdftoppm.1.bz2
rm -rf /usr/share/man/man1/pdftops.1.bz2
rm -rf /usr/share/man/man1/pdftotext.1.bz2

rm -rf /usr/bin/lzdiff
rm -rf /usr/bin/lzfgrep
rm -rf /usr/bin/lzgrep
rm -rf /usr/bin/lzless
rm -rf /usr/bin/lzmadec
rm -rf /usr/bin/lzmainfo
rm -rf /usr/bin/lzmore
rm -rf /usr/bin/unlzma
rm -rf /usr/share/man/man1/lzcat.1.bz2
rm -rf /usr/share/man/man1/lzcmp.1.bz2
rm -rf /usr/share/man/man1/lzdiff.1.bz2
rm -rf /usr/share/man/man1/lzegrep.1.bz2
rm -rf /usr/share/man/man1/lzfgrep.1.bz2
rm -rf /usr/share/man/man1/lzgrep.1.bz2
rm -rf /usr/share/man/man1/lzless.1.bz2
rm -rf /usr/share/man/man1/lzma.1.bz2
rm -rf /usr/share/man/man1/lzmadec.1.bz2
rm -rf /usr/share/man/man1/lzmainfo.1.bz2
rm -rf /usr/share/man/man1/lzmore.1.bz2
rm -rf /usr/share/man/man1/unlzma.1.bz2
rm -rf /usr/bin/lzma
rm -rf /usr/bin/lzcat
rm -rf /usr/bin/lzcmp
rm -rf /usr/bin/lzegrep
edit /etc/nagios/nrpe.cfg

# ALLOWED HOST ADDRESSES
allowed_hosts=127.0.0.1,128.171.227.75,128.171.160.220

# COMMAND DEFINITIONS
# The following examples use hardcoded command arguments...
command[check_users]=/usr/lib/nagios/plugins/check_users -w 32 -c 48
command[check_load]=/usr/lib/nagios/plugins/check_load --percpu -w 4,4,2 -c 8,8,4
command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 20% -c 10%
command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_disk2]=/usr/lib/nagios/plugins/check_disk -w 3% -c 2% --ereg-path='^/export/.*$'
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 500 -c 600
command[check_dns_default]=/usr/lib/nagios/plugins/check_dns -H conductor.ps1.ifa.hawaii.edu
command[check_ssh]=/usr/lib/nagios/plugins/check_ssh localhost