I had dev-libs/icu-3.6-r1 and app-office/openoffice-bin-2.3.1. I upgraded dev-libs/icu-3.6-r1 to dev-libs/icu-3.8.1 and some libraries have been incorrectly preserved because app-office/openoffice-bin contains similar libraries in another directory. !!! existing preserved libs: >>> package: dev-libs/icu-3.8.1 * - /usr/lib/libicudata.so.36 * - /usr/lib/libicudata.so.36.0 * - /usr/lib/libicui18n.so.36 * - /usr/lib/libicui18n.so.36.0 * - /usr/lib/libicule.so.36 * - /usr/lib/libicule.so.36.0 * - /usr/lib/libicuuc.so.36 * - /usr/lib/libicuuc.so.36.0 # portageq list_preserved_libs / dev-libs/icu-3.8.1 /usr/lib/libicudata.so.36 /usr/lib/libicudata.so.36.0 /usr/lib/libicui18n.so.36 /usr/lib/libicui18n.so.36.0 /usr/lib/libicule.so.36 /usr/lib/libicule.so.36.0 /usr/lib/libicuuc.so.36 /usr/lib/libicuuc.so.36.0 # emerge -ptv @preserved-rebuild These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild R ] app-office/openoffice-bin-2.3.1 USE="java kde -gnome" LINGUAS="en lt pl -af -ar -as_IN -be_BY -bg -br -bs -ca -cs -da -de -dz -el -en_GB -en_ZA -es -et -fi -fr -ga -gl -gu -he -hi_IN -hr -hu -it -ja -ka -km -ko -mk -ml_IN -mr_IN -nb -ne -nl -nn -nr -ns -or_IN -pa_IN -pt -rw -sh_YU -sk -sl -sr_CS -ss -st -sv -sw_TZ -ta -te_IN -tg -th -ti_ER -tr -ts -uk -ur_IN -ve -vi -xh -zh_CN -zh_TW -zu" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB # ls /usr/lib/libicu* /usr/lib/openoffice/program/libicu* lrwxrwxrwx 1 0 0 18 2008-01-12-16-51-15 /usr/lib/libicudata.so -> libicudata.so.38.1* lrwxrwxrwx 1 0 0 18 2008-01-12-16-51-11 /usr/lib/libicudata.so.36 -> libicudata.so.36.0* -rwxr-xr-x 1 0 0 9,7M 2007-10-25-07-50-14 /usr/lib/libicudata.so.36.0* lrwxrwxrwx 1 0 0 18 2008-01-12-16-51-15 /usr/lib/libicudata.so.38 -> libicudata.so.38.1* -rwxr-xr-x 1 0 0 11M 2008-01-12-16-49-22 /usr/lib/libicudata.so.38.1* lrwxrwxrwx 1 0 0 18 2008-01-12-16-51-15 /usr/lib/libicui18n.so -> libicui18n.so.38.1* lrwxrwxrwx 1 0 0 18 2008-01-12-16-49-46 /usr/lib/libicui18n.so.36 -> libicui18n.so.36.0* -rwxr-xr-x 1 0 0 1,3M 2007-10-25-07-50-14 /usr/lib/libicui18n.so.36.0* lrwxrwxrwx 1 0 0 18 2008-01-12-16-51-15 /usr/lib/libicui18n.so.38 -> libicui18n.so.38.1* -rwxr-xr-x 1 0 0 1,6M 2008-01-12-16-49-22 /usr/lib/libicui18n.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libicuio.so -> libicuio.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-49-46 /usr/lib/libicuio.so.38 -> libicuio.so.38.1* -rwxr-xr-x 1 0 0 50K 2008-01-12-16-49-22 /usr/lib/libicuio.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libicule.so -> libicule.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-49-44 /usr/lib/libicule.so.36 -> libicule.so.36.0* -rwxr-xr-x 1 0 0 263K 2007-10-25-07-50-14 /usr/lib/libicule.so.36.0* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-01 /usr/lib/libicule.so.38 -> libicule.so.38.1* -rwxr-xr-x 1 0 0 226K 2008-01-12-16-49-22 /usr/lib/libicule.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libiculx.so -> libiculx.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libiculx.so.38 -> libiculx.so.38.1* -rwxr-xr-x 1 0 0 50K 2008-01-12-16-49-22 /usr/lib/libiculx.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-11 /usr/lib/libicutu.so -> libicutu.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libicutu.so.38 -> libicutu.so.38.1* -rwxr-xr-x 1 0 0 114K 2008-01-12-16-49-22 /usr/lib/libicutu.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-01 /usr/lib/libicuuc.so -> libicuuc.so.38.1* lrwxrwxrwx 1 0 0 16 2008-01-12-16-49-46 /usr/lib/libicuuc.so.36 -> libicuuc.so.36.0* -rwxr-xr-x 1 0 0 1,2M 2007-10-25-07-50-14 /usr/lib/libicuuc.so.36.0* lrwxrwxrwx 1 0 0 16 2008-01-12-16-51-15 /usr/lib/libicuuc.so.38 -> libicuuc.so.38.1* -rwxr-xr-x 1 0 0 1,4M 2008-01-12-16-49-22 /usr/lib/libicuuc.so.38.1* lrwxrwxrwx 1 0 0 18 2007-12-06-20-29-36 /usr/lib/openoffice/program/libicudata.so.36 -> libicudata.so.36.0 lrwxrwxrwx 1 0 0 22 2007-12-06-20-29-34 /usr/lib/openoffice/program/libicudata.so.36.0 -> libicudata.so.36.0.1.1 -r--r--r-- 1 0 0 6,2M 2007-11-13-16-25-49 /usr/lib/openoffice/program/libicudata.so.36.0.1.1 lrwxrwxrwx 1 0 0 18 2007-12-06-20-28-44 /usr/lib/openoffice/program/libicui18n.so.36 -> libicui18n.so.36.0 lrwxrwxrwx 1 0 0 22 2007-12-06-20-29-31 /usr/lib/openoffice/program/libicui18n.so.36.0 -> libicui18n.so.36.0.1.1 -r--r--r-- 1 0 0 1,3M 2007-11-13-16-25-50 /usr/lib/openoffice/program/libicui18n.so.36.0.1.1 lrwxrwxrwx 1 0 0 16 2007-12-06-20-28-22 /usr/lib/openoffice/program/libicule.so.36 -> libicule.so.36.0 lrwxrwxrwx 1 0 0 20 2007-12-06-20-29-17 /usr/lib/openoffice/program/libicule.so.36.0 -> libicule.so.36.0.1.1 -r--r--r-- 1 0 0 248K 2007-11-13-16-25-50 /usr/lib/openoffice/program/libicule.so.36.0.1.1 lrwxrwxrwx 1 0 0 16 2007-12-06-20-29-17 /usr/lib/openoffice/program/libicuuc.so.36 -> libicuuc.so.36.0 lrwxrwxrwx 1 0 0 20 2007-12-06-20-29-29 /usr/lib/openoffice/program/libicuuc.so.36.0 -> libicuuc.so.36.0.1.1 -r--r--r-- 1 0 0 1,1M 2007-11-13-16-25-51 /usr/lib/openoffice/program/libicuuc.so.36.0.1.1
Created attachment 140825 [details] library_consumers.bz2
As a workaround, I manually deleted preserved libraries without reinstallation of app-office/openoffice-bin and preserved-rebuild set is now empty.
I think that library_consumers should contain only absolute paths.
(In reply to comment #3) > I think that library_consumers should contain only absolute paths. The NEEDED files used for generating library_consumers only contain base filenames (which is logical, as library paths are resolved at runtime, even if most of the time they stay constant).
This bug is probably also reproducible on amd64 with some emul-linux-x86-* packages.
Yeah, I'm checking if we can remove the relevant entries from the NEEDED files, waiting for solar atm.
Ok, r9275 contains some code that should prevent recording of NEEDED entries if they are satisfied by an internal library (if the DT_RUNPATH attribute contains $ORIGIN) That should fix this issue and others if packages make use of $ORIGIN (unfortunately you'll have to remerge openoffice to get rid of the relevant NEEDED entries)
(In reply to comment #7) > Ok, r9275 contains some code that should prevent recording of NEEDED entries > if they are satisfied by an internal library (if the DT_RUNPATH attribute > contains $ORIGIN) I've reverted that behavior, since the code from bug 289180 should handle it (along with similar cases): http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a0eb86870f1564b84f0b561013d8e597347727e4 *** This bug has been marked as a duplicate of bug 289180 ***