I upgraded from perl-5.8.4 to perl-5.8.5 this weekend and spamassasin broke due to hardcoded links to the perl-5.8.4 binary. Since it wasn't the only package on the system that uses perl, I decided to run libperl_rebuilder to rebuild the modules and packages that depend on perl. After running the command, spamassasin still was broken. Looking at the log file I noticed the following: Preliminary List: app-pda/pilot-link-0.11.8 mail-filter/spamassassin-2.64 media-gfx/imagemagick-6.0.5.2 media-video/dvdrip-0.50.18 net-im/gaim-0.82.1 app-editors/vim-6.3 app-editors/vim-core-6.3-r1 Rebuild list: app-pda/pilot-link-0.11.8 mail-filter/spamassassin-2.64 media-gfx/imagemagick-6.0.5.2 media-video/dvdrip-0.50.18 net-im/gaim-0.82.1 app-editors/vim-6.3 app-editors/vim-core-6.3-r1 Complete rebuild list: dev-perl/DB_File-1.808 dev-perl/DateManip-5.42a-r1 dev-perl/Digest-HMAC-1.01-r1 dev-perl/Digest-MD5-2.33 dev-perl/Digest-SHA1-2.10 dev-perl/Event-1.00 dev-perl/File-Spec-0.87 dev-perl/HTML-Parser-3.36 dev-perl/HTML-Tagset-3.03-r2 dev-perl/IO-Socket-SSL-0.96 dev-perl/Locale-gettext-1.01-r1 dev-perl/MIME-Base64-3.01 dev-perl/Net-DNS-0.47 dev-perl/Net-SSLeay-1.23 dev-perl/PodParser-1.28 dev-perl/SGMLSpm-1.03-r5 dev-perl/Storable-2.12 dev-perl/TermReadKey-2.21 dev-perl/Test-1.25 dev-perl/Test-Harness-2.42 dev-perl/Test-Simple-0.47-r1 dev-perl/XML-Parser-2.34 dev-perl/XML-Writer-0.510 dev-perl/digest-base-1.05 dev-perl/gtk-perl-0.7009 You will notice that packages listed in the "Rebuild List" are missing from the "Complete Rebuild List" Looking through the script, I noticed that the portion of the code that unmerges the packages was commented out, however not all of the relevant code was commented out. Specifically, the part of the code that sets the list of packages to rebuild based upon the results of unmerging the packages. Commenting out the rest of the block of code fixed the problem, and I'm attaching a patch that fixes the problem. Reproducible: Always Steps to Reproduce: 1. emerge perl-5.8.4 2. emerge spamassassin (or other perl dependent package) 3. emerge perl-5.8.5 4. Notice breakage in spamassassin (optional) 5. run /usr/portage/dev-lang/perl/files/libperl_rebuilder Actual Results: Perl dependent packages were not re-emerged into the system. Expected Results: All perl dependent packages should have been re-emerged. Portage 2.0.51_pre20 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r0, 2.6.7-gentoo-r13 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz) ================================================================= System uname: 2.6.7-gentoo-r13 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz Gentoo Base System version 1.5.3 Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.14.90.0.8-r1 Headers: sys-kernel/linux26-headers-2.6.8.1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O2 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache fixpackages sandbox" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/ http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X acpi alsa apache2 arts artswrappersuid audiofile avi berkdb cdr crypt cups dvd encode fam fbcon foomaticdb gdbm gif gpm gtk gtk2 imlib java javascript jpeg kde libg++ libwww mad maildir mikmod mmx motif mozilla moznocompose moznoirc moznomail mpeg ncurses nls nptl oggvorbis opengl pam pda pdflib perl png ppds python qt quicktime readline sasl sdl slang spell sse ssl tcltk tcpd tiff truetype usb x86 xml2 xmms xv zlib linguas_en"
Created attachment 38543 [details, diff] Patch to fix libperl_rebuilder to rebuild dependent packages Also includes code to fix bug# 48024
http://dev.gentoo.org/~mcummings/perl-cleaner Intended to do the job that libperl_rebuilder does (but cleaner, with oneshots, and better determination of what specifically needs to be reinstalled) as well as some other perl tree maintenance. Feedback most welcome before it hits the tree :) This script does not unmerge packages (don't want to break your system if that ebuild is no longer available), instead it first attempts to do an inplace (=) emerge, then an (>=), and failing that skips it entirely. We want to leave removing packages completely to you ;) And yes, I've just pasted most of the above text into three bugs, so if your on the cc lists, sorry for the reps
I've been using perl-cleaner instead of libperl_rebuilder and so far it has been working well.
latest version in tree now (improved h2ph processing) and pointed to from the perl ebuild. Closing this out now :)