On Thu, Sep 26, 2013 at 7:39 PM, Ian Stakenvicius <a...@gentoo.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> On 26/09/13 11:24 AM, Davide Pesavento wrote:
>> On Thu, Sep 26, 2013 at 4:04 PM, Kent Fredric
>> <kentfred...@gmail.com> wrote:
>>>
>>> On 26 September 2013 19:53, Michał Górny <mgo...@gentoo.org>
>>> wrote:
>>>>
>>>> How do we handle packages which install multiple libraries? I'm
>>>> afraid forcing such a policy and/or hurrying developers to
>>>> adapt will only cause more of poppler-like issues to occur.
>>>
>>>
>>> Can you give a an example package which:
>>>
>>> - installs multiple libraries - has an ABI that may change for
>>> only one of those libraries - it is sane / plausible to expect
>>> one downstream dependent *not* to forcibly rebuild as a result of
>>> a chane in one of those libaries - it is sane / plausible to
>>> expect a different downstream to forcibly rebuild as a result of
>>> changes in one of those libraries
>>>
>>
>> dev-python/PyQt4
>>
>> Each module is a separate library, and each has its own ABI that
>> can change independently from the others. Downstream projects that
>> rely only on PyQt4's python API are not affected by ABI changes,
>> but those (very few) that link against one or more modules (e.g.
>> kde-base/pykde4 I think) must be rebuilt.
>>
>
> To better round off this example, I assume that the API itself also
> changes as a whole, and slot-operators are the ideal means to force
> rebuilds on all rdeps when that occurrs?
>

Not sure what you mean by "the API also changes as a whole".

The ABI can change without the API changing, if that's what you're
asking, but I'm sure you already know that...

> Otherwise, I don't see why this example couldn't be satisfied by
> bumping subslot whenever any sub-ABI changes and only using
> slot-operators in *DEPEND atoms on those very few packages that link
> to the modules.
>

You'd force unnecessary rebuilds for reverse deps not using the
library that changed ABI, just like the poppler case.

And there's an additional "problem" here: from what I've seen, most
people blindly add subslot operators in *DEPEND when they see that the
dep has gained a subslot, even when it's not needed at all (e.g.
python-only packages in the PyQt4 case).

Thanks,
Davide

Reply via email to