El sáb, 14-06-2014 a las 16:41 +0200, Michał Górny escribió:
> Hi,
> 
> Some time ago we've got bug #510780 [1] asking us to bump subslot
> on LLVM even though the new version was ABI-compatible with previous
> one. It was because it introduced new APIs which applications could
> make use of. Since I believe this is a wider issue, I would like to
> know the opinion of our community about this.
> 
> More specifically: do we want subslots to change only when backwards-
> incompatible ABI changes are done -- alike SONAME -- or whenever any
> ABI change is done? The problem seems a bit complex.
> 
> Considering the libtool versioning, there are two kinds of library
> bumps relevant to us:
> 
> 1) when ABI is altered in backwards-compatible way (so old stuff is not
> touched),
> 
> 2) when ABI is altered in backwards-incompatible way.
> 
> Option 1) corresponds to bumping minor libtool version, option 2) to
> bumping SONAME. I think most of the packages follow SONAME in subslots
> and therefore care only about 2).
> 
> If we decide to keep bumping subslots only when SONAME changes, this
> has two implications:
> 
> a) new features introduced libraries are not used by packages built
> prior to upgrading the library,
> 
> b) packages built after upgrading the library may be broken when it is
> downgraded (if they use the newer ABI).
> 
> I think a) is not *that* a big deal since usually new ABIs involve new
> APIs, and those involve code changes in the reverse dependency. Then we
> can usually assume that the new version of reverse dependency will be
> added (and therefore upgraded to) after the library in question.
> 
> I have no strong opinion about b). This is a known issue with SONAMEs,
> and I'm not sure if we really support people downgrading. It is worth
> noting, however, that sometimes we ourselves force downgrades due to
> issues with new versions.
> 
> If we decide to bump subslots to match major+minor ABI version, we
> force the reverse dependencies to always use the ABI corresponding to
> installed library version. However, this means that we force much more
> rebuilds than necessary.
> 
> For example, glib-2 often introduces new APIs while packages obviously
> don't use them immediately or at all. We will be forcing rebuild of
> every reverse dependency at glib-2 upgrade, while the user will most
> likely need to wait for another version bump (and rebuild) to get
> the new glib-2 features used.
> 
> What do you think?
> 
> [1]:https://bugs.gentoo.org/show_bug.cgi?id=510780
> 

I would opt for forcing rebuilds only when necessary, I mean, when not
rebuilding them will cause issues. If people want to force packages to
use latest glib-2 (for example), I guess they can do that "manually" (as
the case of people rebuilding everything on every major gcc update)


Reply via email to