/usr/X11R6 is (as of xorg-6.8.2 IIRC) a symbolic link to /usr, which means that searching it doubles the time it takes to run.
Created attachment 60603 [details, diff] revdep-rebuild-canonicalize-uniq.patch I've created this hack, it only depends on coreutils and bash.
*** Bug 95086 has been marked as a duplicate of this bug. ***
May be it just should not follow symlinks at all? Or(and) have command line switch to turn this feature on/off?
Created attachment 75634 [details] gentoolkit-0.2.1_rc4.ebuild --- /usr/portage/app-portage/gentoolkit/gentoolkit-0.2.1_rc4.ebuild 2005-12-19 23:22:19.000000000 +0100 +++ gentoolkit-0.2.1_rc4.ebuild 2005-12-27 21:48:59.000000000 +0100 @@ -21,6 +21,12 @@ >=sys-apps/grep-2.4 userland_GNU? ( sys-apps/debianutils )" +src_unpack() { + unpack ${A} + cd ${S}/src/revdep-rebuild/ + epatch $FILESDIR/revdep-rebuild-canonicalize-uniq.patch || die +} + src_install() { make DESTDIR=${D} install-gentoolkit || die }
*** Bug 117405 has been marked as a duplicate of this bug. ***
This was actually implemented and then removed since it causes revdep-rebuild to miss packages. From the gentoolkit ChangeLog 2005-06-05 Paul Varner <fuzzyray@gentoo.org> * revdep-rebuild: Removed symbolically linked directories from search (bug 93574) 2005-06-28 Paul Varner <fuzzyray@gentoo.org> * revdep-rebuild: Revert fix for bug 93574 as it can cause packages to be missed. (bug 97171) See bug 97171 for full details
*** Bug 119340 has been marked as a duplicate of this bug. ***
How about if it just skips /usr/X11 symlink or any symlink which points to /usr? Couldn't some logic be implemented which would protect the 64 bit libraries but ignore the /usr/X11 which points to /usr? This is a redundant symlink as opposed to the others. While I hate the idea of hard coding things, how about a test somewhere where symlinks are evaluated in revdep-rebuild like this: In pseudo code loop --- store current base dir... --- traverse-directory ------ is symlink? --------- yes? does link -> base dir? ------------ yes? then continue loop ------------ no? link ! -> base dir. keep going --------- no? not symlink. keep going ------ end is symlink? --- evaluate files... end loop This logic would evaluate any symlink in any part of the tree. The dev can decide to how many levels.
Adding the following, since I am still receiving requests to fix this. The reason that this bug is a CANTFIX is because when a package is merged, it may store the path using the symbolicly linked directory. For example, /usr/X11R6/bin/someXapp instead of /usr/bin/someXapp. If the symbolic link is removed from from the search, revdep-rebuild will be unable to locate the application and will not rebuild the broken application. Thus in order to ensure that revdep-rebuild can find the applications, the symbolically linked directories have to be searched as well.
*** Bug 140430 has been marked as a duplicate of this bug. ***
*** Bug 141293 has been marked as a duplicate of this bug. ***
*** Bug 169835 has been marked as a duplicate of this bug. ***
*** Bug 201319 has been marked as a duplicate of this bug. ***
*** Bug 225737 has been marked as a duplicate of this bug. ***