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. -- Fernando Rodriguez

