Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 225737 - revdep-rebuild fails to assign files to packages if symlinks are involved
Summary: revdep-rebuild fails to assign files to packages if symlinks are involved
Status: RESOLVED DUPLICATE of bug 93574
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Portage Tools Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-10 12:38 UTC by Skander Morgenthaler
Modified: 2009-01-01 01: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 Skander Morgenthaler 2008-06-10 12:38:02 UTC
using revdep-rebuild from gentoolkit-0.2.4_rc4 fails to correctly assign some broken files to ebuilds if symlinks are within the path. This occurs quite often with my amd64 multilib system (/usr/lib64 -> /usr/lib). The "broken files" are listet within /usr/lib/. If using "equery belongs" on parts of the path, a /usr/lib64 path is returned for the file (and package). Example:

balar skander # revdep-rebuild -i -p    
 * Configuring search environment for revdep-rebuild
 * Environment mismatch from previous run, deleting temporary files...

 * Checking reverse dependencies
 * Packages containing binaries and libraries broken by a package update
 * will be emerged.

 * Collecting system binaries and libraries                                   
 * Generated new /root/.revdep-rebuild.1_files

 * Collecting complete LD_LIBRARY_PATH
 * Generated new /root/.revdep-rebuild.2_ldpath

 * Checking dynamic linking consistency
[...]
[ 93% ]  *   broken /usr/lib/ruby/1.8/x86_64-linux/dbm.so (requires libdb-4.5.so)
[...]
 * Generated new /root/.revdep-rebuild.3_rebuild

 * Assigning files to packages
 *  !!! /usr/lib/ruby/1.8/x86_64-linux/dbm.so not owned by any package is broken !!!
 *   /usr/lib/ruby/1.8/x86_64-linux/dbm.so -> (none)
 * Generated new /root/.revdep-rebuild.4_packages_raw and /root/.revdep-rebuild.4_package_owners

 * Cleaning list of packages to rebuild
 * Generated new /root/.revdep-rebuild.4_packages

 * Assigning packages to ebuilds
 * Generated new /root/.revdep-rebuild.4_ebuilds

 * Evaluating package order
[...]
(dev-lang/ruby not among the listed packages)

balar skander # equery belongs ruby/1.8/x86_64-linux/dbm.so
[ Searching for file(s) ruby/1.8/x86_64-linux/dbm.so in *... ]
dev-lang/ruby-1.8.6_p114 (/usr/lib64/ruby/1.8/x86_64-linux/dbm.so)

Expected results:
dev-lang/ruby should be among the packages that are supposed to be rebuilt

Reproducible: Always

Steps to Reproduce:
1. emerge something that ruby (or perl or openoffice) links to, so that some of those libraries are broken
2. run revdep-rebuild
3. see that revdep-rebuild cannot assign some of the broken libraries to their packages

Actual Results:  
some of the broken libraries are not assigned to their packages

Expected Results:  
those broken libraries should be assigned to their packages

example:
balar skander # revdep-rebuild -i -p    
 * Configuring search environment for revdep-rebuild
 * Environment mismatch from previous run, deleting temporary files...

 * Checking reverse dependencies
 * Packages containing binaries and libraries broken by a package update
 * will be emerged.

 * Collecting system binaries and libraries                                   
 * Generated new /root/.revdep-rebuild.1_files

 * Collecting complete LD_LIBRARY_PATH
 * Generated new /root/.revdep-rebuild.2_ldpath

 * Checking dynamic linking consistency
[...]
[ 93% ]  *   broken /usr/lib/ruby/1.8/x86_64-linux/dbm.so (requires libdb-4.5.so)
[...]
 * Generated new /root/.revdep-rebuild.3_rebuild

 * Assigning files to packages
 *  !!! /usr/lib/ruby/1.8/x86_64-linux/dbm.so not owned by any package is broken !!!
 *   /usr/lib/ruby/1.8/x86_64-linux/dbm.so -> (none)
 * Generated new /root/.revdep-rebuild.4_packages_raw and /root/.revdep-rebuild.4_package_owners

 * Cleaning list of packages to rebuild
 * Generated new /root/.revdep-rebuild.4_packages

 * Assigning packages to ebuilds
 * Generated new /root/.revdep-rebuild.4_ebuilds

 * Evaluating package order
[...]
(dev-lang/ruby not among the listed packages)

balar skander # equery belongs ruby/1.8/x86_64-linux/dbm.so
[ Searching for file(s) ruby/1.8/x86_64-linux/dbm.so in *... ]
dev-lang/ruby-1.8.6_p114 (/usr/lib64/ruby/1.8/x86_64-linux/dbm.so)

emerge --info:
Portage 2.1.5.4 (default-linux/amd64/2007.0, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.24-gentoo-r5 x86_64)                
=================================================================                                                       
System uname: 2.6.24-gentoo-r5 x86_64 AMD Athlon(tm) 64 Processor 3000+                                                 
Timestamp of tree: Mon, 09 Jun 2008 10:34:01 +0000                                                                      
app-shells/bash:     3.2_p39                                                                                            
dev-java/java-config: 1.3.7, 2.1.6                                                                                      
dev-lang/python:     2.5.2-r4
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.5
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.62
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.25-r3
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -ftree-vectorize -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/svn/env /usr/kde/svn/share/config /usr/kde/svn/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -ftree-vectorize -pipe"
DISTDIR="/var/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LDFLAGS=""
LINGUAS="de en en_GB"
MAKEOPTS="-j2"
PKGDIR="/var/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/portage"
PORTDIR_OVERLAY="/var/local/portage/layman/kdesvn-portage /var/local/portage/skander"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X aac acl alsa amd64 apache2 arts avi bash-completion berkdb bzip2 cairo cli cracklib crypt cups curl dbus dri dvd dvdr encode exif ffmpeg flac fortran gdbm gif gpm hal iconv ipv6 isdnlog java jpeg kde kdeenablefinal kdehiddenvisibility mad midi mmx mmxext mp3 mpeg mudflap ncurses nls nodrm nptl nptlonly ntpl nvidia ogg opengl openmp pampcre pdf perl png postgres pppd python qt qt3 qt4 readline reflection sdl session speex spell spl sse sse2 ssl svg tcpdtetex theora tiff truetype unicode usb vorbis xcomposite xine xml xorg xv xvid xvmc zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connectproxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en en_GB" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Skander Morgenthaler 2008-06-10 12:51:21 UTC
sorry for not removing the example in the upper part (and thus mentioning it twice). Content of some of the /root/.revdep-rebuild* files:

.revdep-rebuild.3_rebuild
obj /usr/lib/apache2/modules/libphp5.so
obj /usr/lib/kde3/libkritapdfimport.so
obj /usr/lib/kde3/libkwordlatexexport.so
obj /usr/lib/librdf.la
obj /usr/lib/librdf.so.0.0.0
obj /usr/lib/openoffice/program/libdeploymentmisc680lx.so
obj /usr/lib/openoffice/program/libhelplinker680lx.so
obj /usr/lib/openoffice/program/libucpchelp1.so
obj /usr/lib/openoffice/program/libxmlsec1-nss.so.1.2.6
obj /usr/lib/openoffice/program/libxsec_xmlsec.so
obj /usr/lib/perl5/5.8.8/x86_64-linux/auto/DB_File/DB_File.so
obj /usr/lib/php5/bin/php
obj /usr/lib/python2.5/lib-dynload/_bsddb.so
obj /usr/lib/ruby/1.8/x86_64-linux/dbm.so
obj /usr/sbin/apache2

.revdep-rebuild.4_package_owners
/usr/lib/apache2/modules/libphp5.so -> (none)
/usr/lib/kde3/libkritapdfimport.so -> (none)
/usr/lib/kde3/libkwordlatexexport.so -> (none)
/usr/lib/librdf.la -> (none)
/usr/lib/librdf.so.0.0.0 -> (none)
/usr/lib/openoffice/program/libdeploymentmisc680lx.so -> (none)
/usr/lib/openoffice/program/libhelplinker680lx.so -> (none)
/usr/lib/openoffice/program/libucpchelp1.so -> (none)
/usr/lib/openoffice/program/libxmlsec1-nss.so.1.2.6 -> (none)
/usr/lib/openoffice/program/libxsec_xmlsec.so -> (none)
/usr/lib/perl5/5.8.8/x86_64-linux/auto/DB_File/DB_File.so -> (none)
/usr/lib/php5/bin/php -> (none)
/usr/lib/python2.5/lib-dynload/_bsddb.so -> (none)
/usr/lib/ruby/1.8/x86_64-linux/dbm.so -> (none)
/usr/sbin/apache2 -> www-servers/apache-2.2.8-r2

all the files listed unter /usr/lib/ do belong to installed ebuilds, but equery belongs lists all of those files under /usr/lib64/ 

Some examples:
balar ~ # equery belongs apache2/modules/libphp5.so
[ Searching for file(s) apache2/modules/libphp5.so in *... ]
dev-lang/php-5.2.6-r1 (/usr/lib64/apache2/modules/libphp5.so)
balar ~ # equery belongs kde3/libkritapdfimport.so
[ Searching for file(s) kde3/libkritapdfimport.so in *... ]
app-office/krita-1.6.3 (/usr/lib64/kde3/libkritapdfimport.so)
balar ~ # equery belongs librdf.la
[ Searching for file(s) librdf.la in *... ]
dev-libs/redland-1.0.7 (/usr/lib64/librdf.la)
Comment 2 Paul Varner (RETIRED) gentoo-dev 2008-06-10 16:20:02 UTC

*** This bug has been marked as a duplicate of bug 93574 ***
Comment 3 Jack 2008-12-31 22:17:21 UTC
I dont' think this is really a duplicate of bug 93574.  That one complained about revdep-rebuild searching twice if symlinks are involved.  This one is about revdep-rebuild not finding the owning package is symlinks are involved.  Since the resolution of 93574 is CANTFIX - with the reason that avoiding symlinks might miss packages - this seems to be not the same issue, even if it is related.  

I'm currently on gentoolkit-0.2.4.2.

Should this be reopened?
Comment 4 Paul Varner (RETIRED) gentoo-dev 2008-12-31 23:14:20 UTC
Before I reopen, please give me a specific example where you have run into this problem and revdep-rebuild failed to rebuild a package containing the broken links. Please show output from revdep-rebuild and attach the files from /var/cache/revdep-rebuild.
Comment 5 Jack 2008-12-31 23:58:13 UTC
In my case, all problem files are from gcc.  libgcjawt.la and libgij.la are assigned to gcc under /usr/lib, but are called not owned by a package under /usr/lib64.  This is definitely not the same bug as 93574, but since rebuilding gcc should fix all the found problem files, the only real problem is the misleading statement that the files are not owned by a package.

However, in this case, rebuilding gcc (I've now done it twice) doesn't seem to help - so I wonder if my problem is something completely different?

Output from revdep-rebuild:

 * Configuring search environment for revdep-rebuild

 * Checking reverse dependencies
 * Packages containing binaries and libraries broken by a package update
 * will be emerged.

 * Collecting system binaries and libraries
 * Generated new 1_files.rr
 * Collecting complete LD_LIBRARY_PATH
 * Generated new 2_ldpath.rr
 * Checking dynamic linking consistency
*   broken /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgcjawt.la (requires /usr/lib/../lib64/lib-gnu-java-awt-peer-gtk.la)
 *   broken /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)
*   broken /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgcjawt.la (requires /usr/lib/../lib64/lib-gnu-java-awt-peer-gtk.la)
 *   broken /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)

 * Generated new 3_broken.rr
 * Assigning files to packages
 *   /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgcjawt.la -> sys-devel/gcc
 *   /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la -> sys-devel/gcc
 *  !!! /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgcjawt.la not owned by any package is broken !!!
 *   /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgcjawt.la -> (none)
 *  !!! /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la not owned by any package is broken !!!
 *   /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la -> (none)
 * Generated new 4_raw.rr and 4_owners.rr
 * Cleaning list of packages to rebuild
 * Generated new 4_pkgs.rr
 * Assigning packages to ebuilds
 * Generated new 4_ebuilds.rr
 * Evaluating package order
 * Generated new 5_order.rr
 * All prepared. Starting rebuild
emerge --oneshot --pretend sys-devel/gcc:4.1

Comment 6 Paul Varner (RETIRED) gentoo-dev 2009-01-01 00:05:58 UTC
That is bug #125728.  The broken symlinks is bug #93574
Comment 7 Jack 2009-01-01 01:29:53 UTC
Thanks.  I am indeed seeing bug #125728.  However, that bug is about why those files are broken.  This one is about revdep-rebuild not finding the owner of the files because of the symlink.  However, if it will generally/always (?) find the correct package to rebuild, then it is a cosmetic issue only, and I'll go follow 125728 instead.

Happy New Year.