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 |