1 |
On Monday, August 24, 2015 9:31:38 PM Alan McKinnon wrote: |
2 |
> Does anyone have an opinion to offer on bug 501468? |
3 |
> |
4 |
> https://bugs.gentoo.org/show_bug.cgi?id=501468 |
5 |
> |
6 |
> It's been annoying me for a week now with this message: |
7 |
> |
8 |
> !!! existing preserved libs: |
9 |
> >>> package: www-client/firefox-40.0.2 |
10 |
> * - /usr/lib64/firefox/libmozalloc.so |
11 |
> * used by /usr/lib64/thunderbird/components/libdbusservice.so |
12 |
> (mail-client/thunderbird-38.2.0) |
13 |
> * used by /usr/lib64/thunderbird/components/libmozgnome.so |
14 |
> (mail-client/thunderbird-38.2.0) |
15 |
> * used by |
16 |
> /usr/lib64/thunderbird/distribution/extensions/{e2fda1a4-762b-4020-b5ad- |
17 |
a41df1933103}/components/libcalbasecomps.so |
18 |
> (mail-client/thunderbird-38.2.0) |
19 |
> * used by 4 other files |
20 |
> |
21 |
> |
22 |
> Both Mozilla products ship this file: |
23 |
> |
24 |
> $ locate libmozalloc |
25 |
> /usr/lib64/firefox/libmozalloc.so |
26 |
> /usr/lib64/thunderbird/libmozalloc.so |
27 |
> |
28 |
> and according to preserved libs, thunderbird linked to the firefox copy. |
29 |
> The only offered solution on the bug is to use a MASK variable, which |
30 |
> seems to me an ugly hammer to swat a fly. |
31 |
> |
32 |
> I was wondering if there's a better way been developed in the last year. |
33 |
|
34 |
Actually, now I have a general idea of what's going on and that sounds like an |
35 |
acceptable solution but perhaps I could be better. This is what happens: |
36 |
|
37 |
1. revdep-rebuild uses ldd to find breakage. It finds breakage in |
38 |
libdbusservice.so because firefox uses tricks to preload the library from it's |
39 |
directory. |
40 |
2. revdep-rebuild find that thunderbird provides the library and thinks it |
41 |
needs to be rebuild. (And wrongly tells you that firefox links against it). |
42 |
|
43 |
A better way would be: |
44 |
|
45 |
1. same as step 1 above |
46 |
2. revdep-rebuild checks the package that provides the broken binary (in this |
47 |
case the firefox package), if this package also provides the missing library |
48 |
then it's safe to ignore the problem. |
49 |
3. same as step 2 above. |
50 |
|
51 |
Another solution is to make patch firefox to use RPATH so ldd can find the |
52 |
labraries, this would also make prelink work better with firefox but it's |
53 |
probably not ideal to mantain. |
54 |
|
55 |
|
56 |
|
57 |
-- |
58 |
Fernando Rodriguez |