* [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
@ 2014-06-14 14:41 Michał Górny
2014-06-14 15:13 ` Ciaran McCreesh
` (4 more replies)
0 siblings, 5 replies; 25+ messages in thread
From: Michał Górny @ 2014-06-14 14:41 UTC (permalink / raw
To: gentoo-dev
[-- 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 --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
@ 2014-06-14 15:13 ` Ciaran McCreesh
2014-06-14 15:32 ` hasufell
2014-06-14 15:50 ` Alexandre Rostovtsev
2014-06-14 16:05 ` Ian Stakenvicius
` (3 subsequent siblings)
4 siblings, 2 replies; 25+ messages in thread
From: Ciaran McCreesh @ 2014-06-14 15:13 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 224 bytes --]
On Sat, 14 Jun 2014 16:41:51 +0200
Michał Górny <mgorny@gentoo.org> wrote:
> However, this means that we force much more rebuilds than necessary.
This shouldn't be considered to be a problem.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:13 ` Ciaran McCreesh
@ 2014-06-14 15:32 ` hasufell
2014-06-14 15:45 ` Ciaran McCreesh
2014-06-14 15:50 ` Alexandre Rostovtsev
1 sibling, 1 reply; 25+ messages in thread
From: hasufell @ 2014-06-14 15:32 UTC (permalink / raw
To: gentoo-dev
Ciaran McCreesh:
> On Sat, 14 Jun 2014 16:41:51 +0200
> Michał Górny <mgorny@gentoo.org> wrote:
>> However, this means that we force much more rebuilds than necessary.
>
> This shouldn't be considered to be a problem.
>
Why not?
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
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
0 siblings, 2 replies; 25+ messages in thread
From: Ciaran McCreesh @ 2014-06-14 15:45 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 455 bytes --]
On Sat, 14 Jun 2014 15:32:56 +0000
hasufell <hasufell@gentoo.org> wrote:
> Ciaran McCreesh:
> > On Sat, 14 Jun 2014 16:41:51 +0200
> > Michał Górny <mgorny@gentoo.org> wrote:
> >> However, this means that we force much more rebuilds than
> >> necessary.
> >
> > This shouldn't be considered to be a problem.
>
> Why not?
If "not having to do lots of compiling" is your goal, you're using the
wrong distribution.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:13 ` Ciaran McCreesh
2014-06-14 15:32 ` hasufell
@ 2014-06-14 15:50 ` Alexandre Rostovtsev
2014-06-14 15:56 ` Ciaran McCreesh
2014-06-14 23:41 ` Patrick Lauer
1 sibling, 2 replies; 25+ messages in thread
From: Alexandre Rostovtsev @ 2014-06-14 15:50 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 568 bytes --]
On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> On Sat, 14 Jun 2014 16:41:51 +0200
> Michał Górny <mgorny@gentoo.org> wrote:
> > However, this means that we force much more rebuilds than necessary.
>
> This shouldn't be considered to be a problem.
This would be suicide for Gentoo as a distro. Organizations that have a
dedicated build server and a standardized /etc/portage config tree
pushed to all user machines could rebuild half of @world once a week.
Individual users running Gentoo on a single workstation or server can't
and won't.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:50 ` Alexandre Rostovtsev
@ 2014-06-14 15:56 ` Ciaran McCreesh
2014-06-14 16:17 ` Alexandre Rostovtsev
2014-06-14 23:41 ` Patrick Lauer
1 sibling, 1 reply; 25+ messages in thread
From: Ciaran McCreesh @ 2014-06-14 15:56 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1036 bytes --]
On Sat, 14 Jun 2014 11:50:29 -0400
Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> > On Sat, 14 Jun 2014 16:41:51 +0200
> > Michał Górny <mgorny@gentoo.org> wrote:
> > > However, this means that we force much more rebuilds than
> > > necessary.
> >
> > This shouldn't be considered to be a problem.
>
> This would be suicide for Gentoo as a distro. Organizations that have
> a dedicated build server and a standardized /etc/portage config tree
> pushed to all user machines could rebuild half of @world once a week.
> Individual users running Gentoo on a single workstation or server
> can't and won't.
Then either Gentoo should ship binary packages, or the user should find
another distribution.
Gentoo *already* does a full rebuild for packages whose bumps or
revbumps just result in one text file changing. So long as there isn't
a mechanism and full ebuild support in place to prevent this, it's a
silly argument.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:45 ` Ciaran McCreesh
@ 2014-06-14 16:04 ` Georg Rudoy
2014-06-14 16:16 ` hasufell
1 sibling, 0 replies; 25+ messages in thread
From: Georg Rudoy @ 2014-06-14 16:04 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 707 bytes --]
14 июня 2014 г. 19:45 пользователь "Ciaran McCreesh" <
ciaran.mccreesh@googlemail.com> написал:
>
> On Sat, 14 Jun 2014 15:32:56 +0000
> hasufell <hasufell@gentoo.org> wrote:
> > Ciaran McCreesh:
> > > On Sat, 14 Jun 2014 16:41:51 +0200
> > > Michał Górny <mgorny@gentoo.org> wrote:
> > >> However, this means that we force much more rebuilds than
> > >> necessary.
> > >
> > > This shouldn't be considered to be a problem.
> >
> > Why not?
>
> If "not having to do lots of compiling" is your goal, you're using the
> wrong distribution.
Gentoo always seemed to me to have different goals than just compiling for
the sake of compiling. // pure user impression
[-- Attachment #2: Type: text/html, Size: 1082 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
2014-06-14 15:13 ` Ciaran McCreesh
@ 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
` (2 subsequent siblings)
4 siblings, 2 replies; 25+ messages in thread
From: Ian Stakenvicius @ 2014-06-14 16:05 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 14/06/14 10:41 AM, Michał Górny wrote:
> 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.
>
I vote that as primary policy/general practice, it only be bumped for
(2) -- the primary purpose of subslot rebuilds is to allow portage to
figure out the deptree order when a dependency upgrade is going to
break a package that may or may not be emerged later. "break" is the
key term here. If users want to re-emerge the rdeps of a package on
upgrade they can certainly do so, but I don't see this as something we
want to force on everybody just because we can...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iF4EAREIAAYFAlOccrEACgkQ2ugaI38ACPBu1AD+LNiTezb0nnGtGoVW4AHjAMk7
sMxoTYTvcYn2MLfYrrAA/iXLTPsTdGUSQcWnq40zz5yK09RljYMlI7f2bk5SlWIt
=x/MD
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 25+ messages in thread
* [gentoo-dev] Re: Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:05 ` Ian Stakenvicius
@ 2014-06-14 16:10 ` Michael Palimaka
2014-06-14 16:23 ` [gentoo-dev] " hasufell
1 sibling, 0 replies; 25+ messages in thread
From: Michael Palimaka @ 2014-06-14 16:10 UTC (permalink / raw
To: gentoo-dev
On 06/15/2014 02:05 AM, Ian Stakenvicius wrote:
> I vote that as primary policy/general practice, it only be bumped for
> (2) -- the primary purpose of subslot rebuilds is to allow portage to
> figure out the deptree order when a dependency upgrade is going to
> break a package that may or may not be emerged later. "break" is the
> key term here. If users want to re-emerge the rdeps of a package on
> upgrade they can certainly do so, but I don't see this as something we
> want to force on everybody just because we can...
I agree 100%.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
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
1 sibling, 1 reply; 25+ messages in thread
From: hasufell @ 2014-06-14 16:16 UTC (permalink / raw
To: gentoo-dev
Ciaran McCreesh:
> On Sat, 14 Jun 2014 15:32:56 +0000
> hasufell <hasufell@gentoo.org> wrote:
>> Ciaran McCreesh:
>>> On Sat, 14 Jun 2014 16:41:51 +0200
>>> Michał Górny <mgorny@gentoo.org> wrote:
>>>> However, this means that we force much more rebuilds than
>>>> necessary.
>>>
>>> This shouldn't be considered to be a problem.
>>
>> Why not?
>
> If "not having to do lots of compiling" is your goal, you're using the
> wrong distribution.
>
I cannot see an argument against avoiding useless rebuilds here.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:56 ` Ciaran McCreesh
@ 2014-06-14 16:17 ` Alexandre Rostovtsev
2014-06-14 16:31 ` Ciaran McCreesh
0 siblings, 1 reply; 25+ messages in thread
From: Alexandre Rostovtsev @ 2014-06-14 16:17 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1531 bytes --]
On Sat, 2014-06-14 at 16:56 +0100, Ciaran McCreesh wrote:
> On Sat, 14 Jun 2014 11:50:29 -0400
> Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> > On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> > > On Sat, 14 Jun 2014 16:41:51 +0200
> > > Michał Górny <mgorny@gentoo.org> wrote:
> > > > However, this means that we force much more rebuilds than
> > > > necessary.
> > >
> > > This shouldn't be considered to be a problem.
> >
> > This would be suicide for Gentoo as a distro. Organizations that have
> > a dedicated build server and a standardized /etc/portage config tree
> > pushed to all user machines could rebuild half of @world once a week.
> > Individual users running Gentoo on a single workstation or server
> > can't and won't.
>
> Then either Gentoo should ship binary packages, or the user should find
> another distribution.
>
> Gentoo *already* does a full rebuild for packages whose bumps or
> revbumps just result in one text file changing. So long as there isn't
> a mechanism and full ebuild support in place to prevent this, it's a
> silly argument.
You don't see the difference between unnecessarily rebuilding one
package (because a text file changed) and unnecessarily rebuilding a
hundred packages (because libfoo added a new function)? Especially since
maintainers of packages with long compile times understandably tend to
be a bit conservative with their revision bumps, but have no control
over when their package's dependencies get subslotbumped.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:16 ` hasufell
@ 2014-06-14 16:19 ` Ciaran McCreesh
2014-06-14 16:25 ` hasufell
0 siblings, 1 reply; 25+ messages in thread
From: Ciaran McCreesh @ 2014-06-14 16:19 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 861 bytes --]
On Sat, 14 Jun 2014 16:16:20 +0000
hasufell <hasufell@gentoo.org> wrote:
> Ciaran McCreesh:
> > On Sat, 14 Jun 2014 15:32:56 +0000
> > hasufell <hasufell@gentoo.org> wrote:
> >> Ciaran McCreesh:
> >>> On Sat, 14 Jun 2014 16:41:51 +0200
> >>> Michał Górny <mgorny@gentoo.org> wrote:
> >>>> However, this means that we force much more rebuilds than
> >>>> necessary.
> >>>
> >>> This shouldn't be considered to be a problem.
> >>
> >> Why not?
> >
> > If "not having to do lots of compiling" is your goal, you're using
> > the wrong distribution.
> >
>
> I cannot see an argument against avoiding useless rebuilds here.
They're not useless: they result in a change to VDB. That's all that
matters, as can be seen by Gentoo not supporting partial rebuilds for
revbumps where only a small text file is changed.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:05 ` Ian Stakenvicius
2014-06-14 16:10 ` [gentoo-dev] " Michael Palimaka
@ 2014-06-14 16:23 ` hasufell
1 sibling, 0 replies; 25+ messages in thread
From: hasufell @ 2014-06-14 16:23 UTC (permalink / raw
To: gentoo-dev
Ian Stakenvicius:
>
>
> I vote that as primary policy/general practice, it only be bumped for
> (2) -- the primary purpose of subslot rebuilds is to allow portage to
> figure out the deptree order when a dependency upgrade is going to
> break a package that may or may not be emerged later. "break" is the
> key term here. If users want to re-emerge the rdeps of a package on
> upgrade they can certainly do so, but I don't see this as something we
> want to force on everybody just because we can...
>
++
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:19 ` Ciaran McCreesh
@ 2014-06-14 16:25 ` hasufell
0 siblings, 0 replies; 25+ messages in thread
From: hasufell @ 2014-06-14 16:25 UTC (permalink / raw
To: gentoo-dev
Ciaran McCreesh:
> On Sat, 14 Jun 2014 16:16:20 +0000
> hasufell <hasufell@gentoo.org> wrote:
>> Ciaran McCreesh:
>>> On Sat, 14 Jun 2014 15:32:56 +0000
>>> hasufell <hasufell@gentoo.org> wrote:
>>>> Ciaran McCreesh:
>>>>> On Sat, 14 Jun 2014 16:41:51 +0200
>>>>> Michał Górny <mgorny@gentoo.org> wrote:
>>>>>> However, this means that we force much more rebuilds than
>>>>>> necessary.
>>>>>
>>>>> This shouldn't be considered to be a problem.
>>>>
>>>> Why not?
>>>
>>> If "not having to do lots of compiling" is your goal, you're using
>>> the wrong distribution.
>>>
>>
>> I cannot see an argument against avoiding useless rebuilds here.
>
> They're not useless: they result in a change to VDB. That's all that
> matters, as can be seen by Gentoo not supporting partial rebuilds for
> revbumps where only a small text file is changed.
>
If the change to VDB is useless, then the rebuild is useless.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
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
0 siblings, 2 replies; 25+ messages in thread
From: Ciaran McCreesh @ 2014-06-14 16:31 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1873 bytes --]
On Sat, 14 Jun 2014 12:17:52 -0400
Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> On Sat, 2014-06-14 at 16:56 +0100, Ciaran McCreesh wrote:
> > On Sat, 14 Jun 2014 11:50:29 -0400
> > Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> > > On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> > > > On Sat, 14 Jun 2014 16:41:51 +0200
> > > > Michał Górny <mgorny@gentoo.org> wrote:
> > > > > However, this means that we force much more rebuilds than
> > > > > necessary.
> > > >
> > > > This shouldn't be considered to be a problem.
> > >
> > > This would be suicide for Gentoo as a distro. Organizations that
> > > have a dedicated build server and a standardized /etc/portage
> > > config tree pushed to all user machines could rebuild half of
> > > @world once a week. Individual users running Gentoo on a single
> > > workstation or server can't and won't.
> >
> > Then either Gentoo should ship binary packages, or the user should
> > find another distribution.
> >
> > Gentoo *already* does a full rebuild for packages whose bumps or
> > revbumps just result in one text file changing. So long as there
> > isn't a mechanism and full ebuild support in place to prevent this,
> > it's a silly argument.
>
> You don't see the difference between unnecessarily rebuilding one
> package (because a text file changed) and unnecessarily rebuilding a
> hundred packages (because libfoo added a new function)? Especially
> since maintainers of packages with long compile times understandably
> tend to be a bit conservative with their revision bumps, but have no
> control over when their package's dependencies get subslotbumped.
So why isn't there a call for a feature to make ebuilds not recompile
the nine out of ten libraries and binaries that they provide that
haven't changed on a bump?
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:31 ` Ciaran McCreesh
@ 2014-06-14 16:35 ` Alexandre Rostovtsev
2014-06-14 20:00 ` Rich Freeman
1 sibling, 0 replies; 25+ messages in thread
From: Alexandre Rostovtsev @ 2014-06-14 16:35 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 2178 bytes --]
On Sat, 2014-06-14 at 17:31 +0100, Ciaran McCreesh wrote:
> On Sat, 14 Jun 2014 12:17:52 -0400
> Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> > On Sat, 2014-06-14 at 16:56 +0100, Ciaran McCreesh wrote:
> > > On Sat, 14 Jun 2014 11:50:29 -0400
> > > Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
> > > > On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> > > > > On Sat, 14 Jun 2014 16:41:51 +0200
> > > > > Michał Górny <mgorny@gentoo.org> wrote:
> > > > > > However, this means that we force much more rebuilds than
> > > > > > necessary.
> > > > >
> > > > > This shouldn't be considered to be a problem.
> > > >
> > > > This would be suicide for Gentoo as a distro. Organizations that
> > > > have a dedicated build server and a standardized /etc/portage
> > > > config tree pushed to all user machines could rebuild half of
> > > > @world once a week. Individual users running Gentoo on a single
> > > > workstation or server can't and won't.
> > >
> > > Then either Gentoo should ship binary packages, or the user should
> > > find another distribution.
> > >
> > > Gentoo *already* does a full rebuild for packages whose bumps or
> > > revbumps just result in one text file changing. So long as there
> > > isn't a mechanism and full ebuild support in place to prevent this,
> > > it's a silly argument.
> >
> > You don't see the difference between unnecessarily rebuilding one
> > package (because a text file changed) and unnecessarily rebuilding a
> > hundred packages (because libfoo added a new function)? Especially
> > since maintainers of packages with long compile times understandably
> > tend to be a bit conservative with their revision bumps, but have no
> > control over when their package's dependencies get subslotbumped.
>
> So why isn't there a call for a feature to make ebuilds not recompile
> the nine out of ten libraries and binaries that they provide that
> haven't changed on a bump?
I cannot speak for others, but I haven't called for such a feature
because it seems to be impossible to implement. If you have an idea for
how this can be done, I for one would love to hear.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
2014-06-14 15:13 ` Ciaran McCreesh
2014-06-14 16:05 ` Ian Stakenvicius
@ 2014-06-14 16:50 ` Alexandre Rostovtsev
2014-06-14 16:57 ` Alexandre Rostovtsev
` (2 more replies)
2014-06-15 19:13 ` Matt Turner
2014-06-16 9:44 ` Pacho Ramos
4 siblings, 3 replies; 25+ messages in thread
From: Alexandre Rostovtsev @ 2014-06-14 16:50 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1059 bytes --]
On Sat, 2014-06-14 at 16:41 +0200, Michał Górny wrote:
> 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.
The situation is more nuanced. I have also seen the following cases:
3) a package provides multiple libraries or entry points, and only some
of them have their ABI altered in a backwards-incompatible way.
Examples: xorg-server changes ABI for video drivers, but not for input
drivers; poppler changes ABI for libpoppler, but not libpoppler-glib.
4) a package alters a "private" ABI which matters for a small number of
closely-tied packages, but is transparent to normal users of the
library. Example: glib and gobject-introspection.
A solution to unnecessary rebuilds in these situations, as well as for
case (1), might be in the form of subslots as a key:value list, with
different users subscribing to be rebuilt for specific keys.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
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
2 siblings, 0 replies; 25+ messages in thread
From: Alexandre Rostovtsev @ 2014-06-14 16:57 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 146 bytes --]
On Sat, 2014-06-14 at 12:50 -0400, Alexandre Rostovtsev wrote:
> Example: glib and gobject-introspection.
s/gobject-introspection/dbus-glib/
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* [gentoo-dev] Re: Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:50 ` Alexandre Rostovtsev
2014-06-14 16:57 ` Alexandre Rostovtsev
@ 2014-06-14 17:13 ` Michael Palimaka
2014-06-16 9:47 ` [gentoo-dev] " Pacho Ramos
2 siblings, 0 replies; 25+ messages in thread
From: Michael Palimaka @ 2014-06-14 17:13 UTC (permalink / raw
To: gentoo-dev
On 06/15/2014 02:50 AM, Alexandre Rostovtsev wrote:
> On Sat, 2014-06-14 at 16:41 +0200, Michał Górny wrote:
>> 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.
>
> The situation is more nuanced. I have also seen the following cases:
>
> 3) a package provides multiple libraries or entry points, and only some
> of them have their ABI altered in a backwards-incompatible way.
> Examples: xorg-server changes ABI for video drivers, but not for input
> drivers; poppler changes ABI for libpoppler, but not libpoppler-glib.
It depends on the package, but with packages like poppler a consumer
should only use a sub-slot dependency operator if it's using the
unstable interface.
> 4) a package alters a "private" ABI which matters for a small number of
> closely-tied packages, but is transparent to normal users of the
> library. Example: glib and gobject-introspection.
Since the "normal" interface is stable I certainly hope no other
consumers are making use of that subslot.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 16:31 ` Ciaran McCreesh
2014-06-14 16:35 ` Alexandre Rostovtsev
@ 2014-06-14 20:00 ` Rich Freeman
1 sibling, 0 replies; 25+ messages in thread
From: Rich Freeman @ 2014-06-14 20:00 UTC (permalink / raw
To: gentoo-dev
On Sat, Jun 14, 2014 at 12:31 PM, Ciaran McCreesh
<ciaran.mccreesh@googlemail.com> wrote:
> On Sat, 14 Jun 2014 12:17:52 -0400
> Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
>> On Sat, 2014-06-14 at 16:56 +0100, Ciaran McCreesh wrote:
>> > On Sat, 14 Jun 2014 11:50:29 -0400
>> > Alexandre Rostovtsev <tetromino@gentoo.org> wrote:
>> > > On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
>> > > > On Sat, 14 Jun 2014 16:41:51 +0200
>> > > > Michał Górny <mgorny@gentoo.org> wrote:
>> > > > > However, this means that we force much more rebuilds than
>> > > > > necessary.
>> > > >
>> > > > This shouldn't be considered to be a problem.
>> > >
>> > > This would be suicide for Gentoo as a distro. Organizations that
>> > > have a dedicated build server and a standardized /etc/portage
>> > > config tree pushed to all user machines could rebuild half of
>> > > @world once a week. Individual users running Gentoo on a single
>> > > workstation or server can't and won't.
>> >
>> > Then either Gentoo should ship binary packages, or the user should
>> > find another distribution.
>> >
>> > Gentoo *already* does a full rebuild for packages whose bumps or
>> > revbumps just result in one text file changing. So long as there
>> > isn't a mechanism and full ebuild support in place to prevent this,
>> > it's a silly argument.
>>
>> You don't see the difference between unnecessarily rebuilding one
>> package (because a text file changed) and unnecessarily rebuilding a
>> hundred packages (because libfoo added a new function)? Especially
>> since maintainers of packages with long compile times understandably
>> tend to be a bit conservative with their revision bumps, but have no
>> control over when their package's dependencies get subslotbumped.
>
> So why isn't there a call for a feature to make ebuilds not recompile
> the nine out of ten libraries and binaries that they provide that
> haven't changed on a bump?
This argument basically amounts to Portage isn't perfect, therefore we
shouldn't make it better.
The fact that some events cause unnecessary rebuilds doesn't mean that
we need to accept that other events cause unnecessary rebuilds.
Otherwise, who needs subslots at all - just make portage rebuild every
installed package on every install and we'll never be inconsistent.
:)
Rich
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 15:50 ` Alexandre Rostovtsev
2014-06-14 15:56 ` Ciaran McCreesh
@ 2014-06-14 23:41 ` Patrick Lauer
1 sibling, 0 replies; 25+ messages in thread
From: Patrick Lauer @ 2014-06-14 23:41 UTC (permalink / raw
To: gentoo-dev
On Saturday 14 June 2014 11:50:29 Alexandre Rostovtsev wrote:
> On Sat, 2014-06-14 at 16:13 +0100, Ciaran McCreesh wrote:
> > On Sat, 14 Jun 2014 16:41:51 +0200
> >
> > Michał Górny <mgorny@gentoo.org> wrote:
> > > However, this means that we force much more rebuilds than necessary.
> >
> > This shouldn't be considered to be a problem.
>
> This would be suicide for Gentoo as a distro. Organizations that have a
> dedicated build server and a standardized /etc/portage config tree
> pushed to all user machines could rebuild half of @world once a week.
> Individual users running Gentoo on a single workstation or server can't
> and won't.
Well, you have to rebuild half of everything anyway. (And if you don't want to
do that - update less often)
Last updates on my notebook had on average half a dozen packages needing to be
rebuilt due to preserved-libs.
How is that better than automated rebuilds that actually reduce the
interaction I have with that machine?
I'd strongly prefer a coherent policy for this whole library versioning
situation, maybe per-library (so instead of forcing everything to use subslots
we say "all consumers of this lib have to, and ignore others for now)
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
` (2 preceding siblings ...)
2014-06-14 16:50 ` Alexandre Rostovtsev
@ 2014-06-15 19:13 ` Matt Turner
2014-06-16 9:44 ` Pacho Ramos
4 siblings, 0 replies; 25+ messages in thread
From: Matt Turner @ 2014-06-15 19:13 UTC (permalink / raw
To: gentoo-dev
On Sat, Jun 14, 2014 at 7:41 AM, Michał Górny <mgorny@gentoo.org> wrote:
> 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.
I think subslot should only change with SONAME. Packages depending on
a new API can use a versioned dependency to ensure the new API is
available.
I think this covers all of the cases and doesn't cause problems? Let
me know if I've misunderstood something.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
` (3 preceding siblings ...)
2014-06-15 19:13 ` Matt Turner
@ 2014-06-16 9:44 ` Pacho Ramos
4 siblings, 0 replies; 25+ messages in thread
From: Pacho Ramos @ 2014-06-16 9:44 UTC (permalink / raw
To: gentoo-dev
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)
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
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 ` Pacho Ramos
2014-06-16 10:54 ` Rich Freeman
2 siblings, 1 reply; 25+ messages in thread
From: Pacho Ramos @ 2014-06-16 9:47 UTC (permalink / raw
To: gentoo-dev
El sáb, 14-06-2014 a las 12:50 -0400, Alexandre Rostovtsev escribió:
[...]
> A solution to unnecessary rebuilds in these situations, as well as for
> case (1), might be in the form of subslots as a key:value list, with
> different users subscribing to be rebuilt for specific keys.
I guess https://bugs.gentoo.org/show_bug.cgi?id=462138 will interest you
too :)
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes?
2014-06-16 9:47 ` [gentoo-dev] " Pacho Ramos
@ 2014-06-16 10:54 ` Rich Freeman
0 siblings, 0 replies; 25+ messages in thread
From: Rich Freeman @ 2014-06-16 10:54 UTC (permalink / raw
To: gentoo-dev
On Mon, Jun 16, 2014 at 5:47 AM, Pacho Ramos <pacho@gentoo.org> wrote:
> El sáb, 14-06-2014 a las 12:50 -0400, Alexandre Rostovtsev escribió:
> [...]
>> A solution to unnecessary rebuilds in these situations, as well as for
>> case (1), might be in the form of subslots as a key:value list, with
>> different users subscribing to be rebuilt for specific keys.
>
> I guess https://bugs.gentoo.org/show_bug.cgi?id=462138 will interest you
> too :)
While the pain-vs-gain argument in that bug makes some sense, I don't
buy the argument that the purpose of subslots is to force necessary
rebuilds vs prevent unnecessary ones. Those are really equivalent,
since a crude algorithm would be to simply rebuild every package
anytime any package changes. Subslots prevent you from having to
rebuild unnecessary packages by identifying the packages that actually
need to be rebuilt.
The fact that we already have maintainers setting sublots on virtuals
suggests to me that this feature should be given more consideration.
Given a choice of a rats-nest of virtuals that need to be updated
anytime there is a bump and mapped to a main subslot that doesn't mean
anything or just having a dictionary on the packages that need it, the
latter seems simpler for everybody. In the case where a single
subslot is needed the whole thing reduces to EAPI5.
Rich
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2014-06-16 10:54 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-14 14:41 [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? Michał Górny
2014-06-14 15:13 ` 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox