Gentoo Archives: gentoo-dev

From: Davide Pesavento <pesa@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Policy for migrating library consumers to subslots
Date: Sat, 28 Sep 2013 13:35:10
Message-Id: CADfzvvb921W_D_aj5_rnc+7sHPUUe-H0bD10D0vFrDDvnvtwMA@mail.gmail.com
In Reply to: Re: [gentoo-dev] [RFC] Policy for migrating library consumers to subslots by Ian Stakenvicius
1 On Thu, Sep 26, 2013 at 7:39 PM, Ian Stakenvicius <axs@g.o> wrote:
2 > -----BEGIN PGP SIGNED MESSAGE-----
3 > Hash: SHA256
4 >
5 > On 26/09/13 11:24 AM, Davide Pesavento wrote:
6 >> On Thu, Sep 26, 2013 at 4:04 PM, Kent Fredric
7 >> <kentfredric@×××××.com> wrote:
8 >>>
9 >>> On 26 September 2013 19:53, Michał Górny <mgorny@g.o>
10 >>> wrote:
11 >>>>
12 >>>> How do we handle packages which install multiple libraries? I'm
13 >>>> afraid forcing such a policy and/or hurrying developers to
14 >>>> adapt will only cause more of poppler-like issues to occur.
15 >>>
16 >>>
17 >>> Can you give a an example package which:
18 >>>
19 >>> - installs multiple libraries - has an ABI that may change for
20 >>> only one of those libraries - it is sane / plausible to expect
21 >>> one downstream dependent *not* to forcibly rebuild as a result of
22 >>> a chane in one of those libaries - it is sane / plausible to
23 >>> expect a different downstream to forcibly rebuild as a result of
24 >>> changes in one of those libraries
25 >>>
26 >>
27 >> dev-python/PyQt4
28 >>
29 >> Each module is a separate library, and each has its own ABI that
30 >> can change independently from the others. Downstream projects that
31 >> rely only on PyQt4's python API are not affected by ABI changes,
32 >> but those (very few) that link against one or more modules (e.g.
33 >> kde-base/pykde4 I think) must be rebuilt.
34 >>
35 >
36 > To better round off this example, I assume that the API itself also
37 > changes as a whole, and slot-operators are the ideal means to force
38 > rebuilds on all rdeps when that occurrs?
39 >
40
41 Not sure what you mean by "the API also changes as a whole".
42
43 The ABI can change without the API changing, if that's what you're
44 asking, but I'm sure you already know that...
45
46 > Otherwise, I don't see why this example couldn't be satisfied by
47 > bumping subslot whenever any sub-ABI changes and only using
48 > slot-operators in *DEPEND atoms on those very few packages that link
49 > to the modules.
50 >
51
52 You'd force unnecessary rebuilds for reverse deps not using the
53 library that changed ABI, just like the poppler case.
54
55 And there's an additional "problem" here: from what I've seen, most
56 people blindly add subslot operators in *DEPEND when they see that the
57 dep has gained a subslot, even when it's not needed at all (e.g.
58 python-only packages in the PyQt4 case).
59
60 Thanks,
61 Davide