On Tuesday, August 25, 2015 12:30:09 PM Alan McKinnon wrote: > On 25/08/2015 04:28, Fernando Rodriguez wrote: > > On Monday, August 24, 2015 9:31:38 PM Alan McKinnon wrote: > >> Does anyone have an opinion to offer on bug 501468? > >> > >> https://bugs.gentoo.org/show_bug.cgi?id=501468 > >> > >> It's been annoying me for a week now with this message: > >> > >> !!! existing preserved libs: > >>>>> package: www-client/firefox-40.0.2 > >> * - /usr/lib64/firefox/libmozalloc.so > >> * used by /usr/lib64/thunderbird/components/libdbusservice.so > >> (mail-client/thunderbird-38.2.0) > >> * used by /usr/lib64/thunderbird/components/libmozgnome.so > >> (mail-client/thunderbird-38.2.0) > >> * used by > >> /usr/lib64/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad- > > a41df1933103}/components/libcalbasecomps.so > >> (mail-client/thunderbird-38.2.0) > >> * used by 4 other files > >> > >> > >> Both Mozilla products ship this file: > >> > >> $ locate libmozalloc > >> /usr/lib64/firefox/libmozalloc.so > >> /usr/lib64/thunderbird/libmozalloc.so > >> > >> and according to preserved libs, thunderbird linked to the firefox copy. > >> The only offered solution on the bug is to use a MASK variable, which > >> seems to me an ugly hammer to swat a fly. > >> > >> I was wondering if there's a better way been developed in the last year. > > > > Actually, now I have a general idea of what's going on and that sounds like an > > acceptable solution but perhaps I could be better. This is what happens: > > > > 1. revdep-rebuild uses ldd to find breakage. It finds breakage in > > libdbusservice.so because firefox uses tricks to preload the library from it's > > directory. > > 2. revdep-rebuild find that thunderbird provides the library and thinks it > > needs to be rebuild. (And wrongly tells you that firefox links against it). > > > > A better way would be: > > > > 1. same as step 1 above > > 2. revdep-rebuild checks the package that provides the broken binary (in this > > case the firefox package), if this package also provides the missing library > > then it's safe to ignore the problem. > > 3. same as step 2 above. > > > > Another solution is to make patch firefox to use RPATH so ldd can find the > > labraries, this would also make prelink work better with firefox but it's > > probably not ideal to mantain. > > > that does make sense. In my case, it's not revdep-rebuild causing > problems, it's the preserved-rebuild message at the end of emerge -v > > At this level is there a difference?
I don't know the details but it seems to me that portage either uses revdep- rebuild to find breakage (without scanning the whole system) before deleting the old libs for good or duplicates some of it's logic. Come to think of it, the SEARCH_DIR_MASK may not be ideal because if I understand what it does correctly then real breakage in firefox won't be detected. -- Fernando Rodriguez