Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 71287 - libperl_rebuilder is unable to find /var/cache/edb/world file
Summary: libperl_rebuilder is unable to find /var/cache/edb/world file
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-15 07:36 UTC by wiktorw
Modified: 2005-01-26 09:29 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wiktorw 2004-11-15 07:36:09 UTC
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) |
Comment 1 Michael Cummings (RETIRED) gentoo-dev 2005-01-26 07:54:48 UTC
perl-cleaner is in the tree and about to replace libperl_rebuilder completely (no more access to /var/cache/edb/world file)
Comment 2 Michael Cummings (RETIRED) gentoo-dev 2005-01-26 09:28:54 UTC
perl-cleaner has now replaced libperl_rebuilder. closing this bug out (no longer even acknowledge that there is a world file)
Comment 3 Michael Cummings (RETIRED) gentoo-dev 2005-01-26 09:29:11 UTC
and now to actually click the fixed button...