revdep-rebuild searches in /usr/kde/*/lib/, but not in the KDE-bin, which seems to be missing from SEARCH_DIRS Due to a missing libXm.so.3 (something about downgrade from openmotif-2.2.2, I've read), I had several broken binaries which revdep-rebuild didn't find, so it didn't remerge kdebase, which I had to do manually. $ grep -rn libXm.so.3 /usr/kde/3.1/bin Binary file /usr/kde/3.1/bin/nspluginscan matches Binary file /usr/kde/3.1/bin/nspluginviewer matches Binary file /usr/kde/3.1/bin/timidity matches Reproducible: Didn't try Steps to Reproduce: 1. install openmotiv-2.2.2, emerge kde-base, then downgrade to openmotif-2.1.30-r3 (I'm not sure about this step) 2. use revdep-rebuild to repair binaries broken by missing libXm.so.3 Actual Results: broken nspluginscan, nspluginviewer and timidity in /usr/kde/3.1/bin/ are not found, kdebase not rebuilt Expected Results: remerge kdebase I have gentoolkit-0.1.38 installed, if this matters. Portage 2.0.49-r20 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r3, 2.4.22) ================================================================= System uname: 2.4.22 i686 AMD Athlon(tm) XP 2400+ Gentoo Base System version 1.4.3.10 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-mcpu=athlon-xp -O2 -pipe -fforce-addr -fomit-frame-pointer -ffast-math" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-mcpu=athlon-xp -O2 -pipe -fforce-addr -fomit-frame-pointer -ffast-math" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib apm arts avi berkdb cdr crypt cups encode esd foomaticdb gdbm gif gpm gtk gtk2 imlib java jpeg kde libg++ libwww libxine mad mikmod mmx motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pda pdflib png qt quicktime readline samba sasl scanner sdl slang spell sse ssl svga tcpd tetex truetype x86 xine xml2 xmms xv zlib"
I noticed that "timidity" doesn't belong to kdebase, but to kdemultimedia, which wasn't remerged either.
Created attachment 29817 [details, diff] patch for revdep-rebuild This fix is really trivial, can it be applied, thanks (gentoolkit-0.2.0_pre8).
Just found a broken tuxracer due to updated tk. When someone gets to fix this bug, could /usr/games/{bin,lib} also be added, please. Thanks!
better fix would be to go through $PATH and /etc/ld.so.conf
Created attachment 33976 [details, diff] patch to use /etc/ld.so.conf and PATH to search This patch replaces the hardcoded directories with the following: The directories searched by the script are derived from /etc/ld.so.conf, ROOTPATH from /etc/profile.env, SEARCH_DIRS entry in /etc/make.conf and SEARCH_DIRS in the environment executing the script. In both /etc/make.conf and the environment, SEARCH_DIRS is a space delimited list of directories. For the person asking that /usr/games/bin be searched, the file /etc/env.d/90games does not define a ROOTPATH variable. This means that games are not in root's PATH variable and still won't be searched by default. Adding SEARCH_DIRS="/usr/games/bin" to /etc/make.conf would resolve this.
Not sure that it makes a real difference, but the patch was generated against revdep-rebuild in gentoolkit-0.2.0_pre8.
/usr/games/bin/ does not appear in ROOTPATH because you shouldnt run games as root ;) why not just use ${ROOTPATH}:${PATH}
Created attachment 34016 [details, diff] patch to use /etc/ld.so.conf, PATH and ROOTPATH I didn't add it because I was trying to keep as much duplication of results out of the mix. Once I decided that was okay through the use of the environment and /etc/make.conf, I didn't follow through and add PATH as well as ROOTPATH.
In my testing of this patch, One of the drawbacks I found is that it won't find executibles that are installed in a location not in the path, but called through a script in the path. One such example is OpenOffice. (Which I don't consider a great loss since it always complains it is broken when it isn't) That is the reason that I added support for setting a SEARCH_DIRS variable in /etc/make.conf. Since revdep-rebuild is tied tightly to portage, I felt that was best location to place it. The Gentoo developers may disagree with me, so feel free to move it to a different location (or tell me and I will move it). I do feel strongly that it should be in a configuration file since modifications to the script itself get overwritten with updates.
Created attachment 36210 [details, diff] patch to use /etc/ld.so.conf, PATH and ROOTPATH Discovered a bug in the previous patch where /lib and /usr/lib were excluded from the search.
Can the trivial patch at least be applied? It can't do any harm. Thanks.
I went ahead and applied it to CVS.
Could the trivial patch go to the stable version? It would be very useful.
Reopening as this has not been fixed in a stable release of gentoolkit
*** Bug 110306 has been marked as a duplicate of this bug. ***
*** Bug 100694 has been marked as a duplicate of this bug. ***
Fixed in gentoolkit-0.2.1