Mailing List Archive

EAPI and system packages
(Yes, this has EAPI in the title, so that means everyone will chime in)

I'd like to clarify and (eventually) set in stone our ideas of best practices
when it comes to bumping EAPI for system packages. I was of the belief that
we had decided that system packages should remain at EAPI 0 for
backwards-compatibility reasons. It seems, however, that this was never
written down anywhere and today we find ourselves in a situation where it is
impossible to bootstrap a Gentoo system from a pre-EAPI-era liveCD due to all
python versions being EAPI 1 or later. Maybe we don't care anymore, but I'd
like to know what people think.

system packages* w/ EAPI != 0
----------------------------
app-shells/bash (EAPI 0 versions available)
dev-lang/python (all versions)
sys-apps/grep (EAPI 0 versions available)
sys-apps/util-linux (EAPI 0 versions available)
sys-fs/udev (EAPI 0 versions available)
sys-libs/ncurses (EAPI 0 versions available)

*(the list of system packages was determined by running emerge -ep --nodeps
@system. your concept of system packages may vary.)

also e2fsprogs-libs is exclusively EAPI 2, but there remains in the tree a
e2fsprogs ebuild from before the split that is EAPI 0.

So, should we always keep a working EAPI 0 version around? If not, when can
we drop support for old EAPIs? Your opinions please.


--
fonts, Character is what you are in the dark.
gcc-porting,
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662
Re: EAPI and system packages [ In reply to ]
Le 20/09/2009 02:31, Ryan Hill a écrit :
> If not, when can
> we drop support for old EAPIs? Your opinions please.

Let's drop it now. We've waited long enough. Portage with EAPI=2 has
been stable for more than a year.

Rémi
Re: EAPI and system packages [ In reply to ]
On Воскресенье 20 сентября 2009 11:47:30 Rémi Cardona wrote:
> Le 20/09/2009 02:31, Ryan Hill a écrit :
> > If not, when can
> > we drop support for old EAPIs? Your opinions please.
>
> Let's drop it now. We've waited long enough. Portage with EAPI=2 has
> been stable for more than a year.
>
> Rémi
>
Yes its good idea to drop EAPI<2 from tree, but we should provide a way to
upgrade for people that don't upgrades recently. So we can:
1 create a portage snapshot
2 write mini how to about upgrade
3 then drop EAPI=0 and EAPI=1 from tree to simplify tree
--

Alexey 'Alexxy' Shvetsov
Gentoo/KDE
Gentoo/MIPS
Gentoo Team Ru
Re: EAPI and system packages [ In reply to ]
Ryan Hill wrote:
> (Yes, this has EAPI in the title, so that means everyone will chime in)
>
> I'd like to clarify and (eventually) set in stone our ideas of best practices
> when it comes to bumping EAPI for system packages. I was of the belief that
> we had decided that system packages should remain at EAPI 0 for
> backwards-compatibility reasons. It seems, however, that this was never
> written down anywhere and today we find ourselves in a situation where it is
> impossible to bootstrap a Gentoo system from a pre-EAPI-era liveCD due to all
> python versions being EAPI 1 or later. Maybe we don't care anymore, but I'd
> like to know what people think.
>

I think the consensus was / is? that the upgrade path from EAPI 0 should
have existed until we decide to not support it anymore and the decision
should not have been made by for example python maintainers. The only
packages that matter are Portage dependencies not the full system
target. Basically you need to be able to upgrade your Portage and use
the new version.

Regards,
Petteri
Re: EAPI and system packages [ In reply to ]
On Sun, 20 Sep 2009 13:37:46 +0300
Petteri Räty <betelgeuse@gentoo.org> wrote:

> Ryan Hill wrote:
> > (Yes, this has EAPI in the title, so that means everyone will chime
> > in)
> >
> > I'd like to clarify and (eventually) set in stone our ideas of best
> > practices when it comes to bumping EAPI for system packages. I was
> > of the belief that we had decided that system packages should
> > remain at EAPI 0 for backwards-compatibility reasons. It seems,
> > however, that this was never written down anywhere and today we
> > find ourselves in a situation where it is impossible to bootstrap a
> > Gentoo system from a pre-EAPI-era liveCD due to all python versions
> > being EAPI 1 or later. Maybe we don't care anymore, but I'd like
> > to know what people think.
> >
>
> I think the consensus was / is? that the upgrade path from EAPI 0
> should have existed until we decide to not support it anymore and the
> decision should not have been made by for example python maintainers.
> The only packages that matter are Portage dependencies not the full
> system target. Basically you need to be able to upgrade your Portage
> and use the new version.

emerge -1O portage should still work, right? Not that I like python
being EAPI>0 and that kind of workarounds though...

Alexis.
Re: EAPI and system packages [ In reply to ]
Ryan Hill wrote:
> So, should we always keep a working EAPI 0 version around? If not, when can
> we drop support for old EAPIs? Your opinions please.
>

You might want to define what you mean by dropping support for old
EAPIs? Do you mean:

1. No longer ensuring that users who have pre-EAPI versions of portage
have a clean upgrade path.

or

2. No longer supporting EAPI=0/1 in package managers.

The former seems to be what we're talking about, but your question
sounds like it is suggesting the latter.

If we want to drop support for EAPI=0/1 then EVERY package in portage
needs to be updated to a more recent EAPI. I suspect we're not there
yet (at the very least all those system packages that are deliberately
held back need to change).

I can see why package managers would benefit from fewer cases to
support, however...
Re: EAPI and system packages [ In reply to ]
On Sun, 20 Sep 2009 07:28:40 -0400
Richard Freeman <rich0@gentoo.org> wrote:
> I can see why package managers would benefit from fewer cases to
> support, however...

Doesn't make any difference to package managers. Support for old EAPIs
has to remain around indefinitely to uninstall things anyway. Also, the
cost's mostly in implementing a feature, which is a one-shot thing; the
code that says which features are in which EAPIs is tiny.

--
Ciaran McCreesh
Re: EAPI and system packages [ In reply to ]
On Sunday 20 September 2009 13:28:40 Richard Freeman wrote:
> Ryan Hill wrote:
> > So, should we always keep a working EAPI 0 version around? If not, when
> > can we drop support for old EAPIs? Your opinions please.
>
> You might want to define what you mean by dropping support for old
> EAPIs? Do you mean:
>
> 1. No longer ensuring that users who have pre-EAPI versions of portage
> have a clean upgrade path.
>
> or
>
> 2. No longer supporting EAPI=0/1 in package managers.

I think he means neither. We should no longer tolerate pre-EAPI2 ebuilds being
added to the tree and should work on migrating all "old" ebuilds as the need
arises.

Having 3+x EAPIs around (depending on how you count you can end up with
twelve) makes things confusing for devs and introduces an unneeded source for
accidental errors.

> If we want to drop support for EAPI=0/1 then EVERY package in portage
> needs to be updated to a more recent EAPI. I suspect we're not there
> yet (at the very least all those system packages that are deliberately
> held back need to change).
It doesn't have to be a forced process. Just prevent "old" EAPIs from being
actively used, that'll pull up most packages to a newish EAPI soon. The rest
is undermaintained anyway, so if anyone feels bored he can migrate them.

> I can see why package managers would benefit from fewer cases to
> support, however...
I think we should care more about developers and the tools they have instead
of package manager developers and the things they may or may not do.

At the same time I consider the current development of having EAPI 3 mostly
finished, features for EAPI 4 discussed and ideas for EAPI 5 being thrown
around to be quite stupid. The whole process needs to slow down. Most devs
can't list you the differences between 0, 1 and 2 ... how do you expect them
to have any benefit from adding more stuff?

Just my 3 cents (inflation-corrected),

Patrick
Re: EAPI and system packages [ In reply to ]
Alexey Shvetsov wrote:
> On Воскресенье 20 сентября 2009 11:47:30 Rémi Cardona wrote:
>
>> Le 20/09/2009 02:31, Ryan Hill a écrit :
>>
>>> If not, when can
>>> we drop support for old EAPIs? Your opinions please.
>>>
>> Let's drop it now. We've waited long enough. Portage with EAPI=2 has
>> been stable for more than a year.
>>
>> Rémi
>>
>>
> Yes its good idea to drop EAPI<2 from tree, but we should provide a way to
> upgrade for people that don't upgrades recently. So we can:
> 1 create a portage snapshot
> 2 write mini how to about upgrade
> 3 then drop EAPI=0 and EAPI=1 from tree to simplify tree
>
EAPI isn't a question of the portage so much as the packages. So long
as there are no more EAPI=0 EAPI=1 ebuilds in the tree it could be
discussed, though I think that removing it is 1. going to require lots
of work 2. this reaps minimal benefit if it's even possible.

Andrew



Andrew
Re: EAPI and system packages [ In reply to ]
On Sun, 20 Sep 2009 15:07:23 +0200
Patrick Lauer <patrick@gentoo.org> wrote:

> On Sunday 20 September 2009 13:28:40 Richard Freeman wrote:
> > Ryan Hill wrote:
> > > So, should we always keep a working EAPI 0 version around? If not, when
> > > can we drop support for old EAPIs? Your opinions please.
> >
> > You might want to define what you mean by dropping support for old
> > EAPIs? Do you mean:
> >
> > 1. No longer ensuring that users who have pre-EAPI versions of portage
> > have a clean upgrade path.
> >
> > or
> >
> > 2. No longer supporting EAPI=0/1 in package managers.

Sorry for not being more clear. I meant the former. Should we keep an EAPI
0 version of system packages around indefinitely, and if not, what can we use
as a rule of thumb to decide when it's okay to raise the required minimum.

I'm not talking about dropping EAPI 0/1/etc support altogether, either from
the tree or from PMs.

> I think he means neither. We should no longer tolerate pre-EAPI2 ebuilds being
> added to the tree and should work on migrating all "old" ebuilds as the need
> arises.

No, that's a different discussion, though one that should also be had.
Personally I only bump the EAPI when I need to, but I wouldn't argue against
a policy that new ebuilds (bumps or new packages) should use EAPI 'x'.


--
fonts, Character is what you are in the dark.
gcc-porting,
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662
Re: EAPI and system packages [ In reply to ]
On Sun, 20 Sep 2009 13:55:55 +0400
Alexey Shvetsov <alexxy@gentoo.org> wrote:

> On Воскресенье 20 сентября 2009 11:47:30 Rémi Cardona wrote:
> > Le 20/09/2009 02:31, Ryan Hill a écrit :
> > > If not, when can
> > > we drop support for old EAPIs? Your opinions please.
> >
> > Let's drop it now. We've waited long enough. Portage with EAPI=2 has
> > been stable for more than a year.
> >
> > Rémi
> >
> Yes its good idea to drop EAPI<2 from tree, but we should provide a way to
> upgrade for people that don't upgrades recently. So we can:
> 1 create a portage snapshot
> 2 write mini how to about upgrade
> 3 then drop EAPI=0 and EAPI=1 from tree to simplify tree

We're talking about system packages, not the whole tree. There are 19951
ebuilds that don't declare EAPI and 1705 with EAPI=1 or EAPI="1". Even
with a policy that all new ebuilds need to be EAPI 2, converting the
entire tree would be several years of work IMO, at which point we'll be
at EAPI zillion+1.


--
fonts, Character is what you are in the dark.
gcc-porting,
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662