From: "Michał Górny" <mgorny@gentoo.org>
To: <gentoo-dev@lists.gentoo.org>
Subject: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
Date: Sat, 14 Jun 2014 16:41:51 +0200 [thread overview]
Message-ID: <20140614164151.45afb5ca@pomiot.lan> (raw)
[-- Attachment #1: Type: text/plain, Size: 2443 bytes --]
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
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 949 bytes --]
next reply other threads:[~2014-06-14 14:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-14 14:41 Michał Górny [this message]
2014-06-14 15:13 ` [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Ciaran McCreesh
2014-06-14 15:32 ` hasufell
2014-06-14 15:45 ` Ciaran McCreesh
2014-06-14 16:04 ` Georg Rudoy
2014-06-14 16:16 ` hasufell
2014-06-14 16:19 ` Ciaran McCreesh
2014-06-14 16:25 ` hasufell
2014-06-14 15:50 ` Alexandre Rostovtsev
2014-06-14 15:56 ` Ciaran McCreesh
2014-06-14 16:17 ` Alexandre Rostovtsev
2014-06-14 16:31 ` Ciaran McCreesh
2014-06-14 16:35 ` Alexandre Rostovtsev
2014-06-14 20:00 ` Rich Freeman
2014-06-14 23:41 ` Patrick Lauer
2014-06-14 16:05 ` Ian Stakenvicius
2014-06-14 16:10 ` [gentoo-dev] " Michael Palimaka
2014-06-14 16:23 ` [gentoo-dev] " hasufell
2014-06-14 16:50 ` Alexandre Rostovtsev
2014-06-14 16:57 ` Alexandre Rostovtsev
2014-06-14 17:13 ` [gentoo-dev] " Michael Palimaka
2014-06-16 9:47 ` [gentoo-dev] " Pacho Ramos
2014-06-16 10:54 ` Rich Freeman
2014-06-15 19:13 ` Matt Turner
2014-06-16 9:44 ` Pacho Ramos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140614164151.45afb5ca@pomiot.lan \
--to=mgorny@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox