Gentoo Archives: gentoo-user

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

Replies

Subject Author
Re: [gentoo-user] Endless preserved-rebuild loop, libmozalloc & more Fernando Rodriguez <frodriguez.developer@×××××××.com>
Re: [gentoo-user] Endless preserved-rebuild loop, libmozalloc & more Fernando Rodriguez <frodriguez.developer@×××××××.com>