Last time I upgraded my system I got some message about old version of 'gdbm' package. So I upgraded it in a standard way (see pasted text below) but after that it complained about outdated 'libgdbm.so.2' library. I tried to run suggested 'revdep-rebuild' but in the end it told me to run 'libperl_rebuilder'. And this tool gave me strange errors, regarding missing '/var/cache/edb/world' file. All of this happened to me by the first time. ===== perl-trouble.txt BEGIN ===== # emerge -auv gdbm ... strip: usr/lib/libgdbm.so.3.0.0 usr/lib/libgdbm_compat.so.3.0.0 usr/lib/libgdbm.so.2 making executable: /usr/lib/libgdbm_compat.so.3.0.0 making executable: /usr/lib/libgdbm.so.2 making executable: /usr/lib/libgdbm.so.3.0.0 >>> Completed installing into /var/tmp/portage/gdbm-1.8.3-r1/image/ * Please run revdep-rebuild --soname libgdbm.so.2 * After that completes, it will be safe to remove the old * library (//usr/lib/libgdbm.so.2). # revdep-rebuild --soname libgdbm.so.2 ... asm/vm86.h -> asm/vm86.ph asm/xor.h -> asm/xor.ph * * If this is an upgrade to a perl 5.6.1 system, * ~OR~ an upgrade to a previous Gentoo release * of perl 5.8.0, prior to -r8 * you may need to recompile applications that * were emerged against the old libperl.so * * /usr/portage/dev-lang/perl/files/libperl_rebuilder * is provided to assist with this. * PLEASE DO NOT INTERRUPT THE RUNNING OF THIS SCRIPT. * Part of the rebuilding of applications compiled against * your old libperl involves temporarily unmerging * them - interruptions could leave you with unmerged * packages before they can be remerged. * * If you have run the rebuilder and a package still gives * you trouble, and re-emerging it fails to correct * the problem, please check http://bugs.gentoo.org/ * for more information or to report a bug. * # bash /usr/portage/dev-lang/perl/files/libperl_rebuilder ... Done with dev-perl/SGMLSpm, pass 3 Preliminary Module Rebuild Complete. Now for rebuilding the rest... Finding broken packages... >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... Preliminary List: Rebuild list: cat: /var/cache/edb/world: Nie ma takiego pliku ani katalogu Complete rebuild list: [ dev-perl/SGMLSpm-1.03-r5 >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... Rebuilding: [ Calculating dependencies emerge: there are no ebuilds to satisfy "=[". emerge [ FAILED while in rebuild. >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... Rebuilding: dev-perl/SGMLSpm-1.03-r5 ... Ok... We're done (really)... The following packages merged successfully: dev-perl/SGMLSpm-1.03-r5 ------------------------------------------- Merging failed on the following packages: [ ----------------------------------------- All packages cleaned successfully. There were some issues... Check the log for details. :( Some or all of the failed packages may have been cause by a dependancy failing earlier. Don't assume EVERYTHING is broken. Start with the first one to fail. Log is: /tmp/perl-update.log # less /tmp/perl-update.log -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- Finding what perl modules you have installed... Preliminary Module List: dev-perl/SGMLSpm Cleaning Module List... Cleaning dev-perl/SGMLSpm >>> These are the packages that I would unmerge: >>> clean: No packages selected for removal. Rechecking what perl modules you have installed... Rebuilding: dev-perl/SGMLSpm, pass 1 Done with dev-perl/SGMLSpm, pass 1 Rebuilding: dev-perl/SGMLSpm, pass 2 Done with dev-perl/SGMLSpm, pass 2 Rebuilding: dev-perl/SGMLSpm, pass 3 Done with dev-perl/SGMLSpm, pass 3 Preliminary Module Rebuild Complete. Now for rebuilding the rest... Finding broken packages... Preliminary List: Rebuild list: Complete rebuild list: [ dev-perl/SGMLSpm-1.03-r5 Rebuilding: [ emerge [ FAILED while in rebuild. Rebuilding: dev-perl/SGMLSpm-1.03-r5 Cleaning after dev-perl/SGMLSpm-1.03-r5 >>> These are the packages that I would unmerge: >>> No outdated packages were found on your system. Done with dev-perl/SGMLSpm-1.03-r5 Rebuilding: dev-perl/SGMLSpm-1.03-r5 Done with dev-perl/SGMLSpm-1.03-r5 The following packages merged successfully: dev-perl/SGMLSpm-1.03-r5 Merging failed on the following packages: [ All packages cleaned successfully. # cat /usr/portage/dev-lang/perl/files/libperl_rebuilder | grep edb #cp /var/cache/edb/world /var/cache/edb/world.update_system_backup #mv /var/cache/edb/world.update_system_backup /var/cache/edb/world echo $LDD_LIST | sed 's:\([^ ]\+\):\\>\\=\1:g' | xargs emerge -np $(cat /var/cache/edb/world) | ===== perl-trouble.txt END ===== Reproducible: Always Steps to Reproduce: 1. emerge -auv gdbm 2. revdep-rebuild --soname libgdbm.so.2 3. bash /usr/portage/dev-lang/perl/files/libperl_rebuilder 4. less /tmp/perl-update.log Actual Results: In the '/tmp/perl-update.log' I found a line: emerge [ FAILED while in rebuild. Also, in the 'libperl_rebuilder' script there is a reference to an old-style world file location: # cat /usr/portage/dev-lang/perl/files/libperl_rebuilder | grep edb #cp /var/cache/edb/world /var/cache/edb/world.update_system_backup #mv /var/cache/edb/world.update_system_backup /var/cache/edb/world echo $LDD_LIST | sed 's:\([^ ]\+\):\\>\\=\1:g' | xargs emerge -np $(cat /var/cache/edb/world) | Expected Results: As far as I remember, in some recent profile update portage's world file has been moved to '/var/lib/portage'. I suppose that the 'libperl_rebuilder' script should contain a reference to a new-style world file location: echo $LDD_LIST | sed 's:\([^ ]\+\):\\>\\=\1:g' | xargs emerge -np $(cat /var/lib/portage/world) |
perl-cleaner is in the tree and about to replace libperl_rebuilder completely (no more access to /var/cache/edb/world file)
perl-cleaner has now replaced libperl_rebuilder. closing this bug out (no longer even acknowledge that there is a world file)
and now to actually click the fixed button...