Created attachment 351070 [details, diff] db.eclass_preserve-rebuild-fix.diff db.eclass creates incorrect symlinks to libraries left behind by FEATURES="preserve-libs" Steps to reproduce: 1. emerge -1 db:4.6 db:4.7 db:4.8 2. emerge something that links to libdb.so (eg. USE="berkdb" emerge iproute2) 3. emerge -C db:4.8 # ls -l /usr/lib/libdb.so lrwxrwxrwx 1 root root /usr/lib/libdb.so -> libdb-4.8.so # ls -l /usr/include/db.h lrwxrwxrwx 1 root root /usr/include/db.h -> db4.7/db.h This causes 'emerge @preserved-rebuild' to be stuck in a loop as the packages being rebuilt, build against the preserved lib file. It also causes packages trying to build, to fail with db.h header file and db library version mismatch.
sys-libs/db is the only consumer of this eclass
*** Bug 520390 has been marked as a duplicate of this bug. ***
*** Bug 519092 has been marked as a duplicate of this bug. ***
We can't rely on Portage internals like that.