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