[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ryan Hill
On Sun, 17 May 2009 15:19:17 -0600
Ryan Hill  wrote:

> On Sun, 17 May 2009 23:00:21 +0200
> Arfrever Frehtes Taifersar Arahesis  wrote:
> 
> > 2009-05-17 22:51:50 Ryan Hill napisał(a):
> > > On Sun, 17 May 2009 21:03:46 +0200
> > > Tiziano Müller  wrote:
> > > > So, unless you're doing a pkgmove
> > > > it's a dangerous thing since the PM can't reliably track reverse deps
> > > > when doing uninstalls since it has to use the vdb entry for that,
> > > > doesn't it?
> > > 
> > > Since when do we track reverse deps for uninstalls?
> > 
> > Portage supports `emerge --depclean ${package}` command which checks 
> > reverse dependencies.
> 
> But it also checks link level dependencies as well, doesn't it?

halo ~ # grep chmlib /var/db/pkg/app-text/xchm-1.16/*
halo ~ # cat /var/db/pkg/app-text/xchm-1.16/NEEDED
/usr/bin/xchm 
libwx_gtk2u_aui-2.8.so.0,libwx_gtk2u_html-2.8.so.0,libwx_gtk2u_core-2.8.so.0,libwx_baseu_net-2.8.so.0,libwx_baseu-2.8.so.0,libchm.so.0,libstdc++.so.6,libgcc_s.so.1,libpthread.so.0,libc.so.6
 
halo ~ # cat /var/db/pkg/app-text/xchm-1.16/NEEDED.ELF.2

X86_64;/usr/bin/xchm;;;libwx_gtk2u_aui-2.8.so.0,libwx_gtk2u_html-2.8.so.0,libwx_gtk2u_core-2.8.so.0,libwx_baseu_net-2.8.so.0,libwx_baseu-2.8.so.0,libchm.so.0,libstdc++.so.6,libgcc_s.so.1,libpthread.so.0,libc.so.6

halo ~ # emerge --depclean -pv chmlib

Calculating dependencies... done!
>>> Checking for lib consumers...
>>> Assigning files to packages...
 * In order to avoid breakage of link level dependencies, one or more
 * packages will not be removed. This can be solved by rebuilding the
 * packages that pulled them in.
 *
 *   dev-libs/chmlib-0.39-r1 pulled in by:
 * app-text/xchm-1.16
 *
>>> Adding lib providers to graph...
 -
Calculating dependencies... done!
  dev-libs/chmlib-0.39-r1 pulled in by:
app-text/xchm-1.16

>>> No packages selected for removal by depclean




-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ryan Hill
On Sun, 17 May 2009 23:00:21 +0200
Arfrever Frehtes Taifersar Arahesis  wrote:

> 2009-05-17 22:51:50 Ryan Hill napisał(a):
> > On Sun, 17 May 2009 21:03:46 +0200
> > Tiziano Müller  wrote:
> > > So, unless you're doing a pkgmove
> > > it's a dangerous thing since the PM can't reliably track reverse deps
> > > when doing uninstalls since it has to use the vdb entry for that,
> > > doesn't it?
> > 
> > Since when do we track reverse deps for uninstalls?
> 
> Portage supports `emerge --depclean ${package}` command which checks reverse 
> dependencies.

But it also checks link level dependencies as well, doesn't it?


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ryan Hill
On Sun, 17 May 2009 20:40:41 + (UTC)
Duncan <1i5t5.dun...@cox.net> wrote:

> Ryan Hill  posted
> 2009051752.133c7...@halo.dirtyepic.sk.ca, excerpted below, on  Sun, 17
> May 2009 11:11:52 -0600:
> 
> >> Do we want to document the following? (do we have already?) - When is
> >> it allowed to use an EAPI in the tree (given as offset to the release
> >> of portage supporting that eapi) - When is it allowed to use an EAPI in
> >> the stable tree (given as offset of when a portage version supporting
> >> that EAPI got stable)
> > 
> > As soon as a version of portage supporting that EAPI is available.
> 
> That's a dangerous position to take.  See "experimental" EAPIs for 
> instance, sometimes temporarily supported by portage, but NOT for use in 
> the tree.
> 
> But I think you knew that and simply made some assumptions with the 
> statement that not all readers may have.

Yes, viewers at home, I'm speaking technically not politically.  Technically
you could add ebuilds for any EAPI the PM supports to the tree without
affecting users.  Politically, your fellow developers would stone you to
death, put you in a sack, and drop you to the bottom of the sea.  They might
even revoke your commit access too.


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Arfrever Frehtes Taifersar Arahesis
2009-05-17 22:51:50 Ryan Hill napisał(a):
> On Sun, 17 May 2009 21:03:46 +0200
> Tiziano Müller  wrote:
> > So, unless you're doing a pkgmove
> > it's a dangerous thing since the PM can't reliably track reverse deps
> > when doing uninstalls since it has to use the vdb entry for that,
> > doesn't it?
> 
> Since when do we track reverse deps for uninstalls?

Portage supports `emerge --depclean ${package}` command which checks reverse 
dependencies.

-- 
Arfrever Frehtes Taifersar Arahesis


signature.asc
Description: This is a digitally signed message part.


[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ryan Hill
On Sun, 17 May 2009 21:03:46 +0200
Tiziano Müller  wrote:

> Am Sonntag, den 17.05.2009, 11:11 -0600 schrieb Ryan Hill:
> > On Fri, 15 May 2009 23:31:25 +0200
> > Tiziano Müller  wrote:
> > 
> > > Wrong. For example:
> > > - stuff like docompress may change the content being installed depending
> > > on the package manager
> > > - --disable-static (maybe in a later EAPI) changes content
> > > - slot-dep-operators change the rdepend of installed packages, so it
> > > changes how the package manager has to handle reverse packages on
> > > uninstall (in EAPI 3)
> > 
> > None of which are a problem when changing the EAPI from 0 to 1, which is the
> > situation here. The first two examples fall under the currently established
> > guideline of revbumping when content changes (and I emphasize guideline).  I
> > don't see how the third example is any different than adding or removing
> > dependencies, which also does not require a revbump.
>
> Which is mostly wrong as well since a change in dependency means that
> the currently installed stuff may break if a package (the new dependency
> for example) gets removed and since the package you changed does not
> reference it, it gets broken (for example if you had a magic dep before
> and add it now as an explicit dep).

I don't understand.  Removing a runtime dependency of a package will break it
regardless of whether or not it's referenced in the package's VDB.  We don't
prevent uninstalling dependencies, so how does having it referenced prevent
breakage?  The only case I can think of is depclean, but it already checks to
see if removing a package will break the linkage map of another installed
package.

> So, unless you're doing a pkgmove
> it's a dangerous thing since the PM can't reliably track reverse deps
> when doing uninstalls since it has to use the vdb entry for that,
> doesn't it?

Since when do we track reverse deps for uninstalls?

> >   So I'd argue that an
> > EAPI change does not require a revision bump in and of itself.
>
> EAPI may imply a decent implicit change to the ebuild and therefore
> needs a rev-bump as per the manual.

Exactly. :)

It's not the EAPI itself that requires the revbump, it's the changes the EAPI
makes.  That's all I'm saying.  And in the case of going from EAPI 0 to EAPI
1, the changes are not those that require a revbump.  If I were going from
EAPI 1 to 2, and I'm using the default src_compile, then yes, a revbump is in
order.

> > We may want to document a suggested waiting time before removing ebuilds
> > using older EAPI's.  For example, should we always keep an EAPI 0 ebuild in
> > stable as a fallback?  Or if the user tries to install or update a package
> > where all versions are masked by EAPI, should (does?) portage suggest 
> > updating
> > itself?
> It would maybe suggest to update to an unstable version of portage, not
> so good then?

If the user is installing a package that doesn't have a stable version with
an EAPI that their package manager supports, then it's no different than if
they are installing a package that doesn't have a stable version with their
KEYWORDS.  And when unmasking ~arch packages, you often have to unmask ~arch
dependencies.  Portage is just another of these dependencies.


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ciaran McCreesh
On Sun, 17 May 2009 20:40:41 + (UTC)
Duncan <1i5t5.dun...@cox.net> wrote:
> (See EAPI-3, now preapproved, but conditional on feature
> implementation, with removal of some feature or other possible before
> final approval if not all PMs support it in a timely manner.)

EAPI 3's approval is based upon implementation in Portage, not
implementation in every other package manager.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Duncan
Ryan Hill  posted
2009051752.133c7...@halo.dirtyepic.sk.ca, excerpted below, on  Sun, 17
May 2009 11:11:52 -0600:

>> Do we want to document the following? (do we have already?) - When is
>> it allowed to use an EAPI in the tree (given as offset to the release
>> of portage supporting that eapi) - When is it allowed to use an EAPI in
>> the stable tree (given as offset of when a portage version supporting
>> that EAPI got stable)
> 
> As soon as a version of portage supporting that EAPI is available.

That's a dangerous position to take.  See "experimental" EAPIs for 
instance, sometimes temporarily supported by portage, but NOT for use in 
the tree.

But I think you knew that and simply made some assumptions with the 
statement that not all readers may have.

> This is the entire point of the EAPI, that we don't have to wait X
> amount of time before using new features.  If the user hasn't updated
> portage yet, they simply won't see ebuilds which use the new EAPI.

Agreed.

As I've seen it stated, an EAPI must be approved by council before 
ebuilds using it are allowed in-tree at all.  Procedure there seems to be 
that final approval does not occur until all three PMs support it.  (See 
EAPI-3, now preapproved, but conditional on feature implementation, with 
removal of some feature or other possible before final approval if not 
all PMs support it in a timely manner.)

That's for in-tree.  For arch-stable, the qualifier is no longer all 
three PMs, but only portage, as the default PM at this time.  When a 
portage version supporting the approved EAPI is stable, ebuilds using it 
may be stabilized as well.

But I agree that the point of EAPIs is to avoid delay, and that once an 
EAPI has final approval (as I said, itself conditional on working 
implementation in ~ versions of the PMs), there's no need to wait longer 
to put it in-tree as masked or unstable.  And for stable, once a portage 
with the approved EAPI goes stable, so can packages using it.

That's my understanding of council and QA policy, anyway.  I'm open to 
correction just as I tried to correct the parent, if needed.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




Re: [gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Tiziano Müller
Am Sonntag, den 17.05.2009, 11:11 -0600 schrieb Ryan Hill:
> On Fri, 15 May 2009 23:31:25 +0200
> Tiziano Müller  wrote:
> 
> > Wrong. For example:
> > - stuff like docompress may change the content being installed depending
> > on the package manager
> > - --disable-static (maybe in a later EAPI) changes content
> > - slot-dep-operators change the rdepend of installed packages, so it
> > changes how the package manager has to handle reverse packages on
> > uninstall (in EAPI 3)
> 
> None of which are a problem when changing the EAPI from 0 to 1, which is the
> situation here. The first two examples fall under the currently established
> guideline of revbumping when content changes (and I emphasize guideline).  I
> don't see how the third example is any different than adding or removing
> dependencies, which also does not require a revbump.
Which is mostly wrong as well since a change in dependency means that
the currently installed stuff may break if a package (the new dependency
for example) gets removed and since the package you changed does not
reference it, it gets broken (for example if you had a magic dep before
and add it now as an explicit dep). So, unless you're doing a pkgmove
it's a dangerous thing since the PM can't reliably track reverse deps
when doing uninstalls since it has to use the vdb entry for that,
doesn't it?

>   So I'd argue that an
> EAPI change does not require a revision bump in and of itself.
EAPI may imply a decent implicit change to the ebuild and therefore
needs a rev-bump as per the manual.

>   That's not to
> say it shouldn't be done if the situation allows, or you have any doubts, or
> just because you want to. But unconditionally putting an ebuild through full
> ~arch to stable cycle because you added a simple SLOT dependency or a + to a
> USE flag is bureaucratic nonsense.
> 
> > And we also always said that a rev bump should be done on non trivial
> > changes or non-build-fixes and changing the EAPI is technical seen
> > mostly a non-trivial change.
> 
> As above, it depends on the situation.  0 -> 1 is a trivial change.
> 
> > Do we want to document the following? (do we have already?)
> > - When is it allowed to use an EAPI in the tree (given as offset to the
> > release of portage supporting that eapi)
> > - When is it allowed to use an EAPI in the stable tree (given as offset
> > of when a portage version supporting that EAPI got stable)
> 
> As soon as a version of portage supporting that EAPI is available.
And how much time a portage with a new EAPI got stabled?
(see for example early python eapi bumps)

> 
> This is the entire point of the EAPI, that we don't have to wait X amount of
> time before using new features.  If the user hasn't updated portage yet, they
> simply won't see ebuilds which use the new EAPI.
> 
> We may want to document a suggested waiting time before removing ebuilds
> using older EAPI's.  For example, should we always keep an EAPI 0 ebuild in
> stable as a fallback?  Or if the user tries to install or update a package
> where all versions are masked by EAPI, should (does?) portage suggest updating
> itself?
It would maybe suggest to update to an unstable version of portage, not
so good then?

-- 
Tiziano Müller
Gentoo Linux Developer, Council Member
Areas of responsibility:
  Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor
E-Mail   : dev-z...@gentoo.org
GnuPG FP : F327 283A E769 2E36 18D5  4DE2 1B05 6A63 AE9C 1E30


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


[gentoo-dev] Re: EAPI Changes

2009-05-17 Thread Ryan Hill
On Fri, 15 May 2009 23:31:25 +0200
Tiziano Müller  wrote:

> Wrong. For example:
> - stuff like docompress may change the content being installed depending
> on the package manager
> - --disable-static (maybe in a later EAPI) changes content
> - slot-dep-operators change the rdepend of installed packages, so it
> changes how the package manager has to handle reverse packages on
> uninstall (in EAPI 3)

None of which are a problem when changing the EAPI from 0 to 1, which is the
situation here. The first two examples fall under the currently established
guideline of revbumping when content changes (and I emphasize guideline).  I
don't see how the third example is any different than adding or removing
dependencies, which also does not require a revbump.  So I'd argue that an
EAPI change does not require a revision bump in and of itself.  That's not to
say it shouldn't be done if the situation allows, or you have any doubts, or
just because you want to. But unconditionally putting an ebuild through full
~arch to stable cycle because you added a simple SLOT dependency or a + to a
USE flag is bureaucratic nonsense.

> And we also always said that a rev bump should be done on non trivial
> changes or non-build-fixes and changing the EAPI is technical seen
> mostly a non-trivial change.

As above, it depends on the situation.  0 -> 1 is a trivial change.

> Do we want to document the following? (do we have already?)
> - When is it allowed to use an EAPI in the tree (given as offset to the
> release of portage supporting that eapi)
> - When is it allowed to use an EAPI in the stable tree (given as offset
> of when a portage version supporting that EAPI got stable)

As soon as a version of portage supporting that EAPI is available.

This is the entire point of the EAPI, that we don't have to wait X amount of
time before using new features.  If the user hasn't updated portage yet, they
simply won't see ebuilds which use the new EAPI.

We may want to document a suggested waiting time before removing ebuilds
using older EAPI's.  For example, should we always keep an EAPI 0 ebuild in
stable as a fallback?  Or if the user tries to install or update a package
where all versions are masked by EAPI, should (does?) portage suggest updating
itself?  How long should we keep core system packages at earlier EAPI's?


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: EAPI Changes

2009-05-16 Thread Petteri Räty
Duncan wrote:
> Petteri Räty  posted 4a0dd0ed.1070...@gentoo.org,
> excerpted below, on  Fri, 15 May 2009 23:30:37 +0300:
> 
>> Indeed there's no problem switching EAPIs as long as a stable Portage
>> supports the EAPI you are migrating to. Portage was buggy with this when
>> EAPI 2 was introduced but that has since been fixed.
> 
> The case at hand is EAPI-0 > EAPI-1.  I've no opinion there.
> 
> However, just this last week I tracked down and provided a patch for an 
> EAPI-0 > EAPI-2 conversion related bug[1] in an existing previously 
> working ebuild, converted without a bump.  It was and remained ~arch so 
> users should have been prepared to cope, but a bump would have been nice 
> and it would have been a SERIOUS mistake to try to do that as stable.
> 

Well even with EAPI 2 it's quite hard to introduce breakage if you
actually test the changes. If you don't do proper testing, then the only
way to prevent breakage is to kick that developer out, no policy is
going to help. (I am not implying we should start kicking people out for
small mistakes though)

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Re: EAPI Changes

2009-05-15 Thread Duncan
Petteri Räty  posted 4a0dd0ed.1070...@gentoo.org,
excerpted below, on  Fri, 15 May 2009 23:30:37 +0300:

> Indeed there's no problem switching EAPIs as long as a stable Portage
> supports the EAPI you are migrating to. Portage was buggy with this when
> EAPI 2 was introduced but that has since been fixed.

The case at hand is EAPI-0 > EAPI-1.  I've no opinion there.

However, just this last week I tracked down and provided a patch for an 
EAPI-0 > EAPI-2 conversion related bug[1] in an existing previously 
working ebuild, converted without a bump.  It was and remained ~arch so 
users should have been prepared to cope, but a bump would have been nice 
and it would have been a SERIOUS mistake to try to do that as stable.

So I agree with the earlier opinion that while it may not matter for 
EAPI-0 > EAPI-1, as a general policy and certainly for conversions to 
EAPI-2 and probably EAPI-3, a revision bump and ~arch keywording, thus 
forcing the package thru a new stabilizing process, should be strongly 
recommended at minimum -- enough that a tree change to dozens of stable 
ebuilds such as is being discussed simply wouldn't be possible, without 
assuming a bump and new stabilization process, thus, effectively 
requiring 60-days working minimum process time (30 no-bugs, 30 stable-
keywording).

[1] Bug #269691, kaffeine
plain:http://bugs.gentoo.org/show_bug.cgi?id=269691
secure:  https://bugs.gentoo.org/show_bug.cgi?id=269691

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman