1 |
On Tuesday, August 25, 2015 7:58:44 PM Alan McKinnon wrote: |
2 |
> On 25/08/2015 19:43, Fernando Rodriguez wrote: |
3 |
> > On Tuesday, August 25, 2015 12:30:09 PM Alan McKinnon wrote: |
4 |
> >> On 25/08/2015 04:28, Fernando Rodriguez wrote: |
5 |
> >>> On Monday, August 24, 2015 9:31:38 PM Alan McKinnon wrote: |
6 |
> >>>> Does anyone have an opinion to offer on bug 501468? |
7 |
> >>>> |
8 |
> >>>> https://bugs.gentoo.org/show_bug.cgi?id=501468 |
9 |
> >>>> |
10 |
> >>>> It's been annoying me for a week now with this message: |
11 |
> >>>> |
12 |
> >>>> !!! existing preserved libs: |
13 |
> >>>>>>> package: www-client/firefox-40.0.2 |
14 |
> >>>> * - /usr/lib64/firefox/libmozalloc.so |
15 |
> >>>> * used by /usr/lib64/thunderbird/components/libdbusservice.so |
16 |
> >>>> (mail-client/thunderbird-38.2.0) |
17 |
> >>>> * used by /usr/lib64/thunderbird/components/libmozgnome.so |
18 |
> >>>> (mail-client/thunderbird-38.2.0) |
19 |
> >>>> * used by |
20 |
> >>>> /usr/lib64/thunderbird/distribution/extensions/{e2fda1a4-762b-4020- |
21 |
b5ad- |
22 |
> >>> a41df1933103}/components/libcalbasecomps.so |
23 |
> >>>> (mail-client/thunderbird-38.2.0) |
24 |
> >>>> * used by 4 other files |
25 |
> >>>> |
26 |
> >>>> |
27 |
> >>>> Both Mozilla products ship this file: |
28 |
> >>>> |
29 |
> >>>> $ locate libmozalloc |
30 |
> >>>> /usr/lib64/firefox/libmozalloc.so |
31 |
> >>>> /usr/lib64/thunderbird/libmozalloc.so |
32 |
> >>>> |
33 |
> >>>> and according to preserved libs, thunderbird linked to the firefox copy. |
34 |
> >>>> The only offered solution on the bug is to use a MASK variable, which |
35 |
> >>>> seems to me an ugly hammer to swat a fly. |
36 |
> >>>> |
37 |
> >>>> I was wondering if there's a better way been developed in the last |
38 |
year. |
39 |
> >>> |
40 |
> >>> Actually, now I have a general idea of what's going on and that sounds |
41 |
> > like an |
42 |
> >>> acceptable solution but perhaps I could be better. This is what happens: |
43 |
> >>> |
44 |
> >>> 1. revdep-rebuild uses ldd to find breakage. It finds breakage in |
45 |
> >>> libdbusservice.so because firefox uses tricks to preload the library from |
46 |
> > it's |
47 |
> >>> directory. |
48 |
> >>> 2. revdep-rebuild find that thunderbird provides the library and thinks |
49 |
it |
50 |
> >>> needs to be rebuild. (And wrongly tells you that firefox links against |
51 |
it). |
52 |
> >>> |
53 |
> >>> A better way would be: |
54 |
> >>> |
55 |
> >>> 1. same as step 1 above |
56 |
> >>> 2. revdep-rebuild checks the package that provides the broken binary (in |
57 |
> > this |
58 |
> >>> case the firefox package), if this package also provides the missing |
59 |
> > library |
60 |
> >>> then it's safe to ignore the problem. |
61 |
> >>> 3. same as step 2 above. |
62 |
> >>> |
63 |
> >>> Another solution is to make patch firefox to use RPATH so ldd can find the |
64 |
> >>> labraries, this would also make prelink work better with firefox but it's |
65 |
> >>> probably not ideal to mantain. |
66 |
> >> |
67 |
> >> |
68 |
> >> that does make sense. In my case, it's not revdep-rebuild causing |
69 |
> >> problems, it's the preserved-rebuild message at the end of emerge -v |
70 |
> >> |
71 |
> >> At this level is there a difference? |
72 |
> > |
73 |
> > I don't know the details but it seems to me that portage either uses |
74 |
revdep- |
75 |
> > rebuild to find breakage (without scanning the whole system) before |
76 |
deleting |
77 |
> > the old libs for good or duplicates some of it's logic. Come to think of |
78 |
it, |
79 |
> > the SEARCH_DIR_MASK may not be ideal because if I understand what it does |
80 |
> > correctly then real breakage in firefox won't be detected. |
81 |
> > |
82 |
> |
83 |
> My thought too. To me, SEARCH_DIR_MASK is fine for things like |
84 |
> /opt/skype because it's binary and either works or it doesn't, and when |
85 |
> it doesn't there's not much I can do about it. |
86 |
> |
87 |
> It may be the least sucky of all available solutions, but it's still |
88 |
> swatting a fly with a hammer |
89 |
|
90 |
Maybe the bug should be filed against portage to get the right people to look |
91 |
at it. The fix should be simple, just check the package with the broken binary |
92 |
first. It seems to use lexical order so it finds firefox before thunderbird. |
93 |
|
94 |
It would benefit binary packages too. You cannot rebuild skype but you can |
95 |
preserve the library until the vendor releases a new binary. You would get an |
96 |
endless preseved-libs loop for it but that's preferable to a broken skype. |
97 |
|
98 |
-- |
99 |
Fernando Rodriguez |