* [gentoo-dev] RFD : .ebuild is only bash
[not found] <CAATnKFD=9VEkpUcABbhHbAu96Qn+dP+YEuUu2YCqDUNKUxe+Cw@mail.gmail.com>
@ 2012-03-12 15:57 ` Kent Fredric
2012-03-12 15:59 ` Ciaran McCreesh
` (3 more replies)
0 siblings, 4 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-12 15:57 UTC (permalink / raw
To: gentoo-dev
On 12 March 2012 22:37, Brian Harring <ferringb@gmail.com> wrote:
> Ebuilds *are* bash. There isn't ever going to be a PMS labeled
> xml format that is known as ebuilds... that's just pragmatic reality
> since such a beast is clearly a seperate format (thus trying to call
> it an 'ebuild' is dumb, confusing, and counter productive).
I think this notion should be concluded before we continue debating as
to how best to implement EAPI declarations.
Is it really so fixed that ".ebuild" will only ever be bash ?
If thats the case, then G55 ( or something similar ) is practically
guaranteed as soon as we want something non-bash.
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 15:57 ` [gentoo-dev] RFD : .ebuild is only bash Kent Fredric
@ 2012-03-12 15:59 ` Ciaran McCreesh
2012-03-12 16:51 ` Rich Freeman
2012-03-12 16:56 ` Ulrich Mueller
` (2 subsequent siblings)
3 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 15:59 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 451 bytes --]
On Tue, 13 Mar 2012 04:57:04 +1300
Kent Fredric <kentfredric@gmail.com> wrote:
> I think this notion should be concluded before we continue debating as
> to how best to implement EAPI declarations.
>
> Is it really so fixed that ".ebuild" will only ever be bash ?
What version of bash are we talking about here? It's not the case that
ebuilds will always be bash 3, which is enough to make GLEP 55 the safe
option.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 15:59 ` Ciaran McCreesh
@ 2012-03-12 16:51 ` Rich Freeman
2012-03-12 17:05 ` Ulrich Mueller
0 siblings, 1 reply; 65+ messages in thread
From: Rich Freeman @ 2012-03-12 16:51 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 11:59 AM, Ciaran McCreesh
<ciaran.mccreesh@googlemail.com> wrote:
> On Tue, 13 Mar 2012 04:57:04 +1300
> Kent Fredric <kentfredric@gmail.com> wrote:
>> I think this notion should be concluded before we continue debating as
>> to how best to implement EAPI declarations.
>>
>> Is it really so fixed that ".ebuild" will only ever be bash ?
>
> What version of bash are we talking about here? It's not the case that
> ebuilds will always be bash 3, which is enough to make GLEP 55 the safe
> option.
Well, we do always have the option of keeping the EAPI= syntax but
making it more strict per the proposals, and then grepping it out
rather than sourcing the ebuild. That seems likely to always work
with bash. Then if we ever switched to some other format we'd have to
reconsider whether we want to tweak this approach further or adopt
GLEP 55.
If you envision a future where big changes are inevitable over the
long term, then just going with GLEP 55 is probably the cleanest
solution. If you envision a future where we are likely to never move
away from bash, or if we do it is so far off that we're content to let
our children deal with it, then other approaches may seem nicer.
I guess the question is whether we need to future-proof against a
future that may never come. Then again, as we're seeing from systemd
a lot of stuff that "always" was done in bash doesn't necessarily have
to stay that way.
Rich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 15:57 ` [gentoo-dev] RFD : .ebuild is only bash Kent Fredric
2012-03-12 15:59 ` Ciaran McCreesh
@ 2012-03-12 16:56 ` Ulrich Mueller
2012-03-12 18:04 ` Michał Górny
2012-03-13 6:29 ` Richard Yao
3 siblings, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 16:56 UTC (permalink / raw
To: gentoo-dev
>>>>> On Tue, 13 Mar 2012, Kent Fredric wrote:
> Is it really so fixed that ".ebuild" will only ever be bash ?
Certainly it would make sense to change the file extension when an
EAPI will require something different than bash. For example, some
editors (Emacs and XEmacs at least) recognise the .ebuild extension
and use corresponding syntax rules.
> If thats the case, then G55 ( or something similar ) is practically
> guaranteed as soon as we want something non-bash.
No, you just use a new extension once and you're done. And I guess
such drastic changes won't happen frequently. In the past 12 years
there hasn't been a single one. (If they will ever happen, this is a
pretty academic discussion.)
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 16:51 ` Rich Freeman
@ 2012-03-12 17:05 ` Ulrich Mueller
2012-03-12 17:12 ` Ciaran McCreesh
0 siblings, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 17:05 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Rich Freeman wrote:
> Well, we do always have the option of keeping the EAPI= syntax but
> making it more strict per the proposals, and then grepping it out
> rather than sourcing the ebuild. That seems likely to always work
> with bash. Then if we ever switched to some other format we'd have
> to reconsider whether we want to tweak this approach further or
> adopt GLEP 55.
As long as we stay with some textual format for ebuilds, the "header
comment" approach will always work, if its syntax is general enough.
(For example, requiring # as comment introducer would be stupid.)
And I don't expect that we will move away from bash within the next
two or three years, so there won't be any upgrade problems for systems
with old package managers.
> If you envision a future where big changes are inevitable over the
> long term, then just going with GLEP 55 is probably the cleanest
> solution. If you envision a future where we are likely to never move
> away from bash, or if we do it is so far off that we're content to
> let our children deal with it, then other approaches may seem nicer.
> I guess the question is whether we need to future-proof against a
> future that may never come. Then again, as we're seeing from systemd
> a lot of stuff that "always" was done in bash doesn't necessarily
> have to stay that way.
See above, even if we should ever move away from bash, GLEP 55 is
still not needed.
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:05 ` Ulrich Mueller
@ 2012-03-12 17:12 ` Ciaran McCreesh
2012-03-12 17:17 ` Michael Orlitzky
` (4 more replies)
0 siblings, 5 replies; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 17:12 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 442 bytes --]
On Mon, 12 Mar 2012 18:05:46 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> See above, even if we should ever move away from bash, GLEP 55 is
> still not needed.
...but we might as well go with GLEP 55 anyway, since GLEP 55
definitely works, whereas other solutions might work so long as we
don't do something unexpected.
This whole thing is just an exercise in trying to find excuses not to
use GLEP 55.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:12 ` Ciaran McCreesh
@ 2012-03-12 17:17 ` Michael Orlitzky
2012-03-12 17:22 ` Ciaran McCreesh
2012-03-12 17:30 ` Zac Medico
2012-03-12 17:22 ` Zac Medico
` (3 subsequent siblings)
4 siblings, 2 replies; 65+ messages in thread
From: Michael Orlitzky @ 2012-03-12 17:17 UTC (permalink / raw
To: gentoo-dev
On 03/12/12 13:12, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 18:05:46 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> See above, even if we should ever move away from bash, GLEP 55 is
>> still not needed.
>
> ...but we might as well go with GLEP 55 anyway, since GLEP 55
> definitely works, whereas other solutions might work so long as we
> don't do something unexpected.
>
> This whole thing is just an exercise in trying to find excuses not to
> use GLEP 55.
>
Not understanding any of the politics involved, what are the technical
arguments against it?
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:12 ` Ciaran McCreesh
2012-03-12 17:17 ` Michael Orlitzky
@ 2012-03-12 17:22 ` Zac Medico
2012-03-12 18:00 ` Ulrich Mueller
2012-03-12 18:01 ` [gentoo-dev] " Michał Górny
2012-03-12 17:53 ` Ulrich Mueller
` (2 subsequent siblings)
4 siblings, 2 replies; 65+ messages in thread
From: Zac Medico @ 2012-03-12 17:22 UTC (permalink / raw
To: gentoo-dev
On 03/12/2012 10:12 AM, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 18:05:46 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> See above, even if we should ever move away from bash, GLEP 55 is
>> still not needed.
>
> ...but we might as well go with GLEP 55 anyway, since GLEP 55
> definitely works, whereas other solutions might work so long as we
> don't do something unexpected.
>
> This whole thing is just an exercise in trying to find excuses not to
> use GLEP 55.
If we do go with a variant of GLEP 55, I'd prefer a variant that uses a
constant extension (like .eb) and places the EAPI string just after the
version component of the name. For example:
foo-1.0-r1-eapi5.ebuild
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:17 ` Michael Orlitzky
@ 2012-03-12 17:22 ` Ciaran McCreesh
2012-03-12 17:30 ` Zac Medico
1 sibling, 0 replies; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 17:22 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 393 bytes --]
On Mon, 12 Mar 2012 13:17:15 -0400
Michael Orlitzky <michael@orlitzky.com> wrote:
> > This whole thing is just an exercise in trying to find excuses not
> > to use GLEP 55.
> >
>
> Not understanding any of the politics involved, what are the technical
> arguments against it?
The person who wrote it is one of Satan's little minions. Also, change
is bad.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:17 ` Michael Orlitzky
2012-03-12 17:22 ` Ciaran McCreesh
@ 2012-03-12 17:30 ` Zac Medico
1 sibling, 0 replies; 65+ messages in thread
From: Zac Medico @ 2012-03-12 17:30 UTC (permalink / raw
To: gentoo-dev
On 03/12/2012 10:17 AM, Michael Orlitzky wrote:
> On 03/12/12 13:12, Ciaran McCreesh wrote:
>> On Mon, 12 Mar 2012 18:05:46 +0100
>> Ulrich Mueller <ulm@gentoo.org> wrote:
>>> See above, even if we should ever move away from bash, GLEP 55 is
>>> still not needed.
>>
>> ...but we might as well go with GLEP 55 anyway, since GLEP 55
>> definitely works, whereas other solutions might work so long as we
>> don't do something unexpected.
>>
>> This whole thing is just an exercise in trying to find excuses not to
>> use GLEP 55.
>>
>
> Not understanding any of the politics involved, what are the technical
> arguments against it?
I think the bulk of resistance has been due to its use of an infinite
series of extensions, like .ebuild-5, .ebuild-6 and so on. GLEP 55
itself has since been amended to include a "one time extension change"
option [1].
[1]
http://www.gentoo.org/proj/en/glep/glep-0055.html#eapi-in-the-filename-with-one-time-extension-change
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:12 ` Ciaran McCreesh
2012-03-12 17:17 ` Michael Orlitzky
2012-03-12 17:22 ` Zac Medico
@ 2012-03-12 17:53 ` Ulrich Mueller
2012-03-12 18:03 ` Kent Fredric
2012-03-13 0:46 ` Patrick Lauer
2012-03-13 6:41 ` Walter Dnes
4 siblings, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 17:53 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 18:05:46 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> See above, even if we should ever move away from bash, GLEP 55 is
>> still not needed.
> ...but we might as well go with GLEP 55 anyway, since GLEP 55
> definitely works, whereas other solutions might work so long as we
> don't do something unexpected.
> This whole thing is just an exercise in trying to find excuses not
> to use GLEP 55.
There are very good reasons not to embed this information in the
filename. That it makes the filename harder to parse for the human eye
and more difficult to type is one of them.
Besides, we already have a council decision about that GLEP.
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:22 ` Zac Medico
@ 2012-03-12 18:00 ` Ulrich Mueller
2012-03-12 18:04 ` Ciaran McCreesh
2012-03-12 18:01 ` [gentoo-dev] " Michał Górny
1 sibling, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 18:00 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Zac Medico wrote:
> If we do go with a variant of GLEP 55, I'd prefer a variant that uses a
> constant extension (like .eb) and places the EAPI string just after the
> version component of the name. For example:
> foo-1.0-r1-eapi5.ebuild
This is so ugly... I guess I'll retire the same day when such an
abomination gets accepted. ;-)
(Still better than the original variant of GLEP 55 though.)
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:22 ` Zac Medico
2012-03-12 18:00 ` Ulrich Mueller
@ 2012-03-12 18:01 ` Michał Górny
1 sibling, 0 replies; 65+ messages in thread
From: Michał Górny @ 2012-03-12 18:01 UTC (permalink / raw
To: gentoo-dev; +Cc: zmedico
[-- Attachment #1: Type: text/plain, Size: 931 bytes --]
On Mon, 12 Mar 2012 10:22:57 -0700
Zac Medico <zmedico@gentoo.org> wrote:
> On 03/12/2012 10:12 AM, Ciaran McCreesh wrote:
> > On Mon, 12 Mar 2012 18:05:46 +0100
> > Ulrich Mueller <ulm@gentoo.org> wrote:
> >> See above, even if we should ever move away from bash, GLEP 55 is
> >> still not needed.
> >
> > ...but we might as well go with GLEP 55 anyway, since GLEP 55
> > definitely works, whereas other solutions might work so long as we
> > don't do something unexpected.
> >
> > This whole thing is just an exercise in trying to find excuses not
> > to use GLEP 55.
>
> If we do go with a variant of GLEP 55, I'd prefer a variant that uses
> a constant extension (like .eb) and places the EAPI string just after
> the version component of the name. For example:
>
> foo-1.0-r1-eapi5.ebuild
Or .eapi5.ebuild, to make it more of a suffix and less of PV part.
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:53 ` Ulrich Mueller
@ 2012-03-12 18:03 ` Kent Fredric
0 siblings, 0 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-12 18:03 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 06:53, Ulrich Mueller <ulm@gentoo.org> wrote:
>
> There are very good reasons not to embed this information in the
> filename. That it makes the filename harder to parse for the human eye
> and more difficult to type is one of them.
>
> Besides, we already have a council decision about that GLEP.
Difficulty in typing them is not really much of an argument,
considering the present complexity with file-names already having
versions encoded in them.
And difficulty reading them isn't much of an argument really either.
But difficulty identifying the format systematically seems a
reasonable enough objection, and for this, I can see the translation
of
abz-123.ebuild-5 to -> abz-123.eapi5.eb
Being a more practical change ( or something of that nature ).
At least that way, its easier to have a way to find "all ebuilds"
without needing extension permutation.
Another thought: Presently we have versions encoded in the file name.
If we ever decide we need to change our versioning syntax or
versioning semantics, we might be up the creek without a paddle, and
EAPI being *in* the file will probably make that harder, and I'd
probably prefer some sort of out-of-band location for EAPI in that
situation too.
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 15:57 ` [gentoo-dev] RFD : .ebuild is only bash Kent Fredric
2012-03-12 15:59 ` Ciaran McCreesh
2012-03-12 16:56 ` Ulrich Mueller
@ 2012-03-12 18:04 ` Michał Górny
2012-03-13 6:29 ` Richard Yao
3 siblings, 0 replies; 65+ messages in thread
From: Michał Górny @ 2012-03-12 18:04 UTC (permalink / raw
To: gentoo-dev; +Cc: kentfredric
[-- Attachment #1: Type: text/plain, Size: 1127 bytes --]
On Tue, 13 Mar 2012 04:57:04 +1300
Kent Fredric <kentfredric@gmail.com> wrote:
> On 12 March 2012 22:37, Brian Harring <ferringb@gmail.com> wrote:
> > Ebuilds *are* bash. There isn't ever going to be a PMS labeled
> > xml format that is known as ebuilds... that's just pragmatic reality
> > since such a beast is clearly a seperate format (thus trying to call
> > it an 'ebuild' is dumb, confusing, and counter productive).
>
>
> I think this notion should be concluded before we continue debating as
> to how best to implement EAPI declarations.
>
> Is it really so fixed that ".ebuild" will only ever be bash ?
>
> If thats the case, then G55 ( or something similar ) is practically
> guaranteed as soon as we want something non-bash.
Maybe instead of per-EAPI suffix change, we'd want to prepend the
suffix with something special whenever the actual format changes.
In other words, if EAPI 15 introduces XML-based syntax, we start
using .xml.ebuild. If EAPI 7 introduces bash4 in global scope (still
don't see much reason for it), we use .bash4.ebuild.
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:00 ` Ulrich Mueller
@ 2012-03-12 18:04 ` Ciaran McCreesh
2012-03-12 18:17 ` Ulrich Mueller
0 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 18:04 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 729 bytes --]
On Mon, 12 Mar 2012 19:00:32 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> >>>>> On Mon, 12 Mar 2012, Zac Medico wrote:
> > If we do go with a variant of GLEP 55, I'd prefer a variant that
> > uses a constant extension (like .eb) and places the EAPI string
> > just after the version component of the name. For example:
>
> > foo-1.0-r1-eapi5.ebuild
>
> This is so ugly... I guess I'll retire the same day when such an
> abomination gets accepted. ;-)
>
> (Still better than the original variant of GLEP 55 though.)
I'm sorry, we're down to "it's ugly and someone already said no and I'll
throw my toys out of the pram if I don't get my way" as the arguments
against GLEP 55 now?
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:04 ` Ciaran McCreesh
@ 2012-03-12 18:17 ` Ulrich Mueller
2012-03-12 18:28 ` Ciaran McCreesh
` (2 more replies)
0 siblings, 3 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 18:17 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 19:00:32 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> >>>>> On Mon, 12 Mar 2012, Zac Medico wrote:
>> > If we do go with a variant of GLEP 55, I'd prefer a variant that
>> > uses a constant extension (like .eb) and places the EAPI string
>> > just after the version component of the name. For example:
>>
>> > foo-1.0-r1-eapi5.ebuild
>>
>> This is so ugly... I guess I'll retire the same day when such an
>> abomination gets accepted. ;-)
> I'm sorry, we're down to "it's ugly and someone already said no and
> I'll throw my toys out of the pram if I don't get my way" as the
> arguments against GLEP 55 now?
Note the smiley in my posting. And yes, it _is_ ugly.
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> The person who wrote it is one of Satan's little minions. Also,
> change is bad.
And you think that this is better?
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:17 ` Ulrich Mueller
@ 2012-03-12 18:28 ` Ciaran McCreesh
2012-03-12 18:50 ` Ulrich Mueller
2012-03-13 0:51 ` Patrick Lauer
2012-03-12 18:29 ` Kent Fredric
2012-03-13 4:31 ` Brian Harring
2 siblings, 2 replies; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 18:28 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1038 bytes --]
On Mon, 12 Mar 2012 19:17:31 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> > The person who wrote it is one of Satan's little minions. Also,
> > change is bad.
>
> And you think that this is better?
Those *are* the arguments against GLEP 55 that we've had so far. You're
adding in "someone already said no" (and the people who said that were
discussing nonsense like using xattrs in its place, which should
immediately invalidate anything they said on the matter) and "it looks
ugly, but not just because I don't like the people who proposed it,
honest" to that. The only reason this discussion is going on is because
some people still think it's in their advantage politically to say no to
anything seen as coming from "the wrong people".
GLEP 55 is simple, it solves all the problems we have (including the
version issue, which everyone is conveniently ignoring), it doesn't
require us to guess what's going to happen next and it can be
implemented immediately. That's a rather big deal.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:17 ` Ulrich Mueller
2012-03-12 18:28 ` Ciaran McCreesh
@ 2012-03-12 18:29 ` Kent Fredric
2012-03-13 4:31 ` Brian Harring
2 siblings, 0 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-12 18:29 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 07:17, Ulrich Mueller <ulm@gentoo.org> wrote:
>
> Note the smiley in my posting. And yes, it _is_ ugly.
>
It may be ugly, but I'll take ugly over "doesn't work" and "serious
technical limitations" any day ;)
Binary executables are "ugly", you don't see many people complaining ;)
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:28 ` Ciaran McCreesh
@ 2012-03-12 18:50 ` Ulrich Mueller
2012-03-12 18:58 ` Ian Stakenvicius
` (2 more replies)
2012-03-13 0:51 ` Patrick Lauer
1 sibling, 3 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 18:50 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> GLEP 55 is simple, it solves all the problems we have (including the
> version issue, which everyone is conveniently ignoring), it doesn't
> require us to guess what's going to happen next and it can be
> implemented immediately. That's a rather big deal.
The "header comment" solution solves all these issues too, without
embedding unrelated information in the filename [1]. It can be
implemented immediately, too.
The argument that was always used against such solutions was that
it would "hurt performance". However, when the council asked for
benchmarks that would prove that point, nobody could provide them.
Ulrich
[1] <http://en.wikipedia.org/wiki/Filename> "The filename is metadata
about a file; a string used to uniquely identify a file stored on the
file system."
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:50 ` Ulrich Mueller
@ 2012-03-12 18:58 ` Ian Stakenvicius
2012-03-12 19:01 ` Ciaran McCreesh
2012-03-12 19:00 ` Ciaran McCreesh
2012-03-13 20:33 ` Brian Harring
2 siblings, 1 reply; 65+ messages in thread
From: Ian Stakenvicius @ 2012-03-12 18:58 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 12/03/12 02:50 PM, Ulrich Mueller wrote:
>>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
>> GLEP 55 is simple, it solves all the problems we have (including
>> the version issue, which everyone is conveniently ignoring), it
>> doesn't require us to guess what's going to happen next and it
>> can be implemented immediately. That's a rather big deal.
>
> The "header comment" solution solves all these issues too, without
> embedding unrelated information in the filename [1]. It can be
> implemented immediately, too.
>
> The argument that was always used against such solutions was that
> it would "hurt performance". However, when the council asked for
> benchmarks that would prove that point, nobody could provide them.
>
> Ulrich
Regarding the filename issue, and the potential in the future for
ebuilds that get parsed with other parsers:
Is there any particular reason why we would want multiple ebuilds for
a package to exist for the same version, but supporting different
EAPIs (ad therefore different parsers)?
If the answer to this is no, that there should always be only one
ebuild per package version, then chances are good that we should keep
the eapi (or other identifier) out of the file name. However, if the
answer is yes, then the filename method is probably the cleanest way
to do this.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
iF4EAREIAAYFAk9eRzkACgkQAJxUfCtlWe18WwD5AeXETH+J4X8d8P7TX76FPGPS
0vS2rrRZktpLp70TkcQA/0Cl2/OdSlfwi0CqC8IBJffsY3epXkqxhzPL8bwsNAoj
=Q5aK
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:50 ` Ulrich Mueller
2012-03-12 18:58 ` Ian Stakenvicius
@ 2012-03-12 19:00 ` Ciaran McCreesh
2012-03-12 19:38 ` Ulrich Mueller
2012-03-13 20:33 ` Brian Harring
2 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 19:00 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1654 bytes --]
On Mon, 12 Mar 2012 19:50:36 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> >>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> > GLEP 55 is simple, it solves all the problems we have (including the
> > version issue, which everyone is conveniently ignoring), it doesn't
> > require us to guess what's going to happen next and it can be
> > implemented immediately. That's a rather big deal.
>
> The "header comment" solution solves all these issues too, without
> embedding unrelated information in the filename [1].
No it doesn't. See the "conveniently ignoring" part you're conveniently
ignoring.
> It can be implemented immediately, too.
No it can't, since existing package managers don't handle it.
> The argument that was always used against such solutions was that
> it would "hurt performance". However, when the council asked for
> benchmarks that would prove that point, nobody could provide them.
No, the argument was that such solutions didn't solve the full problem.
Performance issues were secondary, and were picked up upon as a way of
avoiding the whole "nothing else solves all the problems" thing.
> [1] <http://en.wikipedia.org/wiki/Filename> "The filename is metadata
> about a file; a string used to uniquely identify a file stored on the
> file system."
By that argument, there's no point in having a ".ebuild" there either.
Please don't continue the bad trend of posting irrelevant Wikipedia
links as footnotes as though the primary issue should be anything other
than a comparison of solutions to a technical problem [1].
[1] http://en.wikipedia.org/wiki/Spork
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:58 ` Ian Stakenvicius
@ 2012-03-12 19:01 ` Ciaran McCreesh
2012-03-12 19:49 ` Ulrich Mueller
0 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 19:01 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Mon, 12 Mar 2012 14:58:01 -0400
Ian Stakenvicius <axs@gentoo.org> wrote:
> If the answer to this is no, that there should always be only one
> ebuild per package version
That's already not the way things work, since different version
strings can be equal versions (and it's illegal to do this), so it's
not relevant to the discussion.
- --
Ciaran McCreesh
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
iEYEARECAAYFAk9eSAwACgkQ96zL6DUtXhGpEwCfWS9u6S4oqNebnRrofwqWKFAy
tGMAoNX/2T7dyBqW+sSVO+O5nSMp5NKm
=Y5Tt
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 19:00 ` Ciaran McCreesh
@ 2012-03-12 19:38 ` Ulrich Mueller
2012-03-12 19:42 ` Ciaran McCreesh
0 siblings, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 19:38 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> The "header comment" solution solves all these issues too, without
>> embedding unrelated information in the filename [1].
>> It can be implemented immediately, too.
> No it can't, since existing package managers don't handle it.
It can be easily implemented in a way that existing package managers
would mask the ebuild by unrecognised EAPI. At least if we stay with
bash, and nobody expects that we switch to any other format within the
next few years.
>> The argument that was always used against such solutions was that
>> it would "hurt performance". However, when the council asked for
>> benchmarks that would prove that point, nobody could provide them.
> No, the argument was that such solutions didn't solve the full
> problem. Performance issues were secondary, and were picked up upon
> as a way of avoiding the whole "nothing else solves all the
> problems" thing.
The performance argument is in GLEP 55 itself:
| Easily fetchable EAPI inside the ebuild
|
| Properties:
| Can be used right away: no
| Hurts performance: yes
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 19:38 ` Ulrich Mueller
@ 2012-03-12 19:42 ` Ciaran McCreesh
0 siblings, 0 replies; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 19:42 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 585 bytes --]
On Mon, 12 Mar 2012 20:38:21 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> The performance argument is in GLEP 55 itself:
>
> | Easily fetchable EAPI inside the ebuild
> |
> | Properties:
> | Can be used right away: no
> | Hurts performance: yes
Sure. And it's a benefit, if your package mangler is carefully
designed to avoid doing unnecessary I/O. It's just not the primary
point. The primary point is that it handles whatever we feel like doing
in the future, even the "conveniently ignoring" stuff that you're
conveniently ignoring.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 19:01 ` Ciaran McCreesh
@ 2012-03-12 19:49 ` Ulrich Mueller
2012-03-12 20:10 ` Ciaran McCreesh
0 siblings, 1 reply; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 19:49 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 14:58:01 -0400
> Ian Stakenvicius <axs@gentoo.org> wrote:
>> If the answer to this is no, that there should always be only one
>> ebuild per package version
Right.
> That's already not the way things work, since different version
> strings can be equal versions (and it's illegal to do this),
> so it's not relevant to the discussion.
This is a design flaw in our versioning system, and it can only occur
in some corner cases where version components have leading zeros. It
would be much better if any two different version strings had a unique
order relation (as for example it is the case with strverscmp(3)).
But that's not an excuse for adding another such flaw to our naming
scheme.
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 19:49 ` Ulrich Mueller
@ 2012-03-12 20:10 ` Ciaran McCreesh
2012-03-12 20:21 ` James Broadhead
0 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-12 20:10 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 604 bytes --]
On Mon, 12 Mar 2012 20:49:22 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:
> > That's already not the way things work, since different version
> > strings can be equal versions (and it's illegal to do this),
> > so it's not relevant to the discussion.
>
> This is a design flaw in our versioning system, and it can only occur
> in some corner cases where version components have leading zeros.
You know, if we had GLEP 55, we could fix that. Although it's debatable
whether it's a flaw, since we're trying to match upstream version
formats where reasonably possible.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 20:10 ` Ciaran McCreesh
@ 2012-03-12 20:21 ` James Broadhead
2012-03-12 21:14 ` Ulrich Mueller
0 siblings, 1 reply; 65+ messages in thread
From: James Broadhead @ 2012-03-12 20:21 UTC (permalink / raw
To: gentoo-dev
On 12 March 2012 20:10, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote:
> On Mon, 12 Mar 2012 20:49:22 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> > That's already not the way things work, since different version
>> > strings can be equal versions (and it's illegal to do this),
>> > so it's not relevant to the discussion.
>>
>> This is a design flaw in our versioning system, and it can only occur
>> in some corner cases where version components have leading zeros.
>
> You know, if we had GLEP 55, we could fix that. Although it's debatable
> whether it's a flaw, since we're trying to match upstream version
> formats where reasonably possible.
>
> --
> Ciaran McCreesh
I'm sure that it's been considered already, but what are the arguments
against embedding the EAPI on a per-package (default) or per-version
basis in metadata.xml. It IS metadata after all.
Something like:
<eapi>6</eapi> <!-- Default EAPI unless a versioned tag exists. -->
<eapi version="=1.2.*">4</eapi>
<eapi version="<1.2">3</eapi>
Where the version attribute should presumably have the same syntax as
versions in package.* already.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 20:21 ` James Broadhead
@ 2012-03-12 21:14 ` Ulrich Mueller
2012-03-12 21:28 ` Kent Fredric
2012-03-12 22:06 ` James Broadhead
0 siblings, 2 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-12 21:14 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
> I'm sure that it's been considered already, but what are the arguments
> against embedding the EAPI on a per-package (default) or per-version
> basis in metadata.xml. It IS metadata after all.
You can find a recent discussion in bug 402167, comment #4 and
following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 21:14 ` Ulrich Mueller
@ 2012-03-12 21:28 ` Kent Fredric
2012-03-12 21:49 ` Alec Warner
2012-03-12 22:06 ` James Broadhead
1 sibling, 1 reply; 65+ messages in thread
From: Kent Fredric @ 2012-03-12 21:28 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 10:14, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
>
>> I'm sure that it's been considered already, but what are the arguments
>> against embedding the EAPI on a per-package (default) or per-version
>> basis in metadata.xml. It IS metadata after all.
>
> You can find a recent discussion in bug 402167, comment #4 and
> following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
I note that there is a link to the council minutes, with the reason
for voting "no" against GLEP55 being "it has issues that are
unsolved", but I don't see any reference to said issues.
Is the actual IRC transcript available? Because I'd hate for this
decision to have been made on the assumption of issues which didn't
really exist.
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 21:28 ` Kent Fredric
@ 2012-03-12 21:49 ` Alec Warner
2012-03-12 22:02 ` Mike Gilbert
2012-03-13 6:06 ` Ulrich Mueller
0 siblings, 2 replies; 65+ messages in thread
From: Alec Warner @ 2012-03-12 21:49 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 2:28 PM, Kent Fredric <kentfredric@gmail.com> wrote:
> On 13 March 2012 10:14, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
>>
>>> I'm sure that it's been considered already, but what are the arguments
>>> against embedding the EAPI on a per-package (default) or per-version
>>> basis in metadata.xml. It IS metadata after all.
>>
>> You can find a recent discussion in bug 402167, comment #4 and
>> following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
>
> I note that there is a link to the council minutes, with the reason
> for voting "no" against GLEP55 being "it has issues that are
> unsolved", but I don't see any reference to said issues.
>
> Is the actual IRC transcript available? Because I'd hate for this
> decision to have been made on the assumption of issues which didn't
> really exist.
The previous council's decision does not prevent this same glep from
going to the council again (decisions are not forever.)
Some folks seem to think that taking glep55 back to the council is not
allowed somehow (or is perhaps futile, but that is a different issue
;p) Having the full notes would be helpful in determining why it was
turned down back then; I'm sure a copy of the notes exist.
-A
>
>
>
> --
> Kent
>
> perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
> 3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
>
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 21:49 ` Alec Warner
@ 2012-03-12 22:02 ` Mike Gilbert
2012-03-12 22:37 ` Kent Fredric
2012-03-13 6:06 ` Ulrich Mueller
1 sibling, 1 reply; 65+ messages in thread
From: Mike Gilbert @ 2012-03-12 22:02 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 5:49 PM, Alec Warner <antarus@gentoo.org> wrote:
> On Mon, Mar 12, 2012 at 2:28 PM, Kent Fredric <kentfredric@gmail.com> wrote:
>> On 13 March 2012 10:14, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
>>>
>>>> I'm sure that it's been considered already, but what are the arguments
>>>> against embedding the EAPI on a per-package (default) or per-version
>>>> basis in metadata.xml. It IS metadata after all.
>>>
>>> You can find a recent discussion in bug 402167, comment #4 and
>>> following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
>>
>> I note that there is a link to the council minutes, with the reason
>> for voting "no" against GLEP55 being "it has issues that are
>> unsolved", but I don't see any reference to said issues.
>>
>> Is the actual IRC transcript available? Because I'd hate for this
>> decision to have been made on the assumption of issues which didn't
>> really exist.
>
> The previous council's decision does not prevent this same glep from
> going to the council again (decisions are not forever.)
> Some folks seem to think that taking glep55 back to the council is not
> allowed somehow (or is perhaps futile, but that is a different issue
> ;p) Having the full notes would be helpful in determining why it was
> turned down back then; I'm sure a copy of the notes exist.
http://www.gentoo.org/proj/en/council/
http://www.gentoo.org/proj/en/council/meeting-logs/20100823.txt
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 21:14 ` Ulrich Mueller
2012-03-12 21:28 ` Kent Fredric
@ 2012-03-12 22:06 ` James Broadhead
2012-03-12 22:17 ` Alec Warner
1 sibling, 1 reply; 65+ messages in thread
From: James Broadhead @ 2012-03-12 22:06 UTC (permalink / raw
To: gentoo-dev
On 12 March 2012 21:14, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
>
>> I'm sure that it's been considered already, but what are the arguments
>> against embedding the EAPI on a per-package (default) or per-version
>> basis in metadata.xml. It IS metadata after all.
>
> You can find a recent discussion in bug 402167, comment #4 and
> following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
>
> Ulrich
>
That makes sense (actually, it calls for metadata.xml to be converted
to json even without bundling EAPI in there).
If repoman validated metadata.json based on a clear definition in PMS,
that would be a valid solution to the problem (that wouldn't require
external libraries beyond python)
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 22:06 ` James Broadhead
@ 2012-03-12 22:17 ` Alec Warner
0 siblings, 0 replies; 65+ messages in thread
From: Alec Warner @ 2012-03-12 22:17 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 3:06 PM, James Broadhead
<jamesbroadhead@gmail.com> wrote:
> On 12 March 2012 21:14, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>>> On Mon, 12 Mar 2012, James Broadhead wrote:
>>
>>> I'm sure that it's been considered already, but what are the arguments
>>> against embedding the EAPI on a per-package (default) or per-version
>>> basis in metadata.xml. It IS metadata after all.
>>
>> You can find a recent discussion in bug 402167, comment #4 and
>> following. <https://bugs.gentoo.org/show_bug.cgi?id=402167#c4>
>>
>> Ulrich
>>
>
> That makes sense (actually, it calls for metadata.xml to be converted
> to json even without bundling EAPI in there).
>
> If repoman validated metadata.json based on a clear definition in PMS,
> that would be a valid solution to the problem (that wouldn't require
> external libraries beyond python)
>
I'm not really convinced 'external libraries' is a critical problem;
it just seems like a nice thing to (try to) avoid.
-A
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 22:02 ` Mike Gilbert
@ 2012-03-12 22:37 ` Kent Fredric
2012-03-12 22:53 ` Alec Warner
2012-03-12 22:55 ` [gentoo-dev] " James Broadhead
0 siblings, 2 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-12 22:37 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 11:02, Mike Gilbert <floppym@gentoo.org> wrote:
>> The previous council's decision does not prevent this same glep from
>> going to the council again (decisions are not forever.)
>> Some folks seem to think that taking glep55 back to the council is not
>> allowed somehow (or is perhaps futile, but that is a different issue
>> ;p) Having the full notes would be helpful in determining why it was
>> turned down back then; I'm sure a copy of the notes exist.
>
> http://www.gentoo.org/proj/en/council/
> http://www.gentoo.org/proj/en/council/meeting-logs/20100823.txt
>
Well that was insightful. As suspected,, there was a lot of people
saying "Yeaahh, I don't like it", and concluding there were problems
with it, but the actual technical issues still haven't been presented
to us.
While they're still batting for the alternative solutions, which there
are known potential issues with.
Or did I read it selectively?
Can somebody present a real ( or even theoretical ) problem that could
arise from having the EAPI in the filename that isn't some abstract
hand-waving?
Not trying to be a troll here, but really, I still haven't seen any.
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 22:37 ` Kent Fredric
@ 2012-03-12 22:53 ` Alec Warner
2012-03-13 6:31 ` [gentoo-dev] " Duncan
2012-03-12 22:55 ` [gentoo-dev] " James Broadhead
1 sibling, 1 reply; 65+ messages in thread
From: Alec Warner @ 2012-03-12 22:53 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 3:37 PM, Kent Fredric <kentfredric@gmail.com> wrote:
> On 13 March 2012 11:02, Mike Gilbert <floppym@gentoo.org> wrote:
>>> The previous council's decision does not prevent this same glep from
>>> going to the council again (decisions are not forever.)
>>> Some folks seem to think that taking glep55 back to the council is not
>>> allowed somehow (or is perhaps futile, but that is a different issue
>>> ;p) Having the full notes would be helpful in determining why it was
>>> turned down back then; I'm sure a copy of the notes exist.
>>
>> http://www.gentoo.org/proj/en/council/
>> http://www.gentoo.org/proj/en/council/meeting-logs/20100823.txt
>>
>
> Well that was insightful. As suspected,, there was a lot of people
> saying "Yeaahh, I don't like it", and concluding there were problems
> with it, but the actual technical issues still haven't been presented
> to us.
>
> While they're still batting for the alternative solutions, which there
> are known potential issues with.
>
> Or did I read it selectively?
>
> Can somebody present a real ( or even theoretical ) problem that could
> arise from having the EAPI in the filename that isn't some abstract
> hand-waving?
>
> Not trying to be a troll here, but really, I still haven't seen any.
In general there was the 'I don't like it crowd (I was one of these, I
care less these days ;p)'
There was the 'it is Ciaran crowd.' This concept is difficult to
describe without a fair bit of context in how the community was being
run at the time.
None of the above reasons are what I would term 'technical merits.'
However now (as then) not all decisions are made on their technical
merits. We have adopted (and continue to adopt) solutions that are
imperfect, technically silly, or otherwise lots of work because they
meet some goal we are trying to accomplish. I don't think Gentoo is
alone in this aspect of management.
The inherent problem of course is that these merits are not provable,
so one cannot 'win' an argument on 'aesthetically pleasing filenames';
thus we are doomed to discuss glep55 until someone makes a decision in
favor or the proponents of the GLEP stop trying to push it (which is
what happened last time.)
-A
>
>
> --
> Kent
>
> perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
> 3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
>
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 22:37 ` Kent Fredric
2012-03-12 22:53 ` Alec Warner
@ 2012-03-12 22:55 ` James Broadhead
1 sibling, 0 replies; 65+ messages in thread
From: James Broadhead @ 2012-03-12 22:55 UTC (permalink / raw
To: gentoo-dev
On 12 March 2012 22:37, Kent Fredric <kentfredric@gmail.com> wrote:
>
> Can somebody present a real ( or even theoretical ) problem that could
> arise from having the EAPI in the filename that isn't some abstract
> hand-waving?
>
> Not trying to be a troll here, but really, I still haven't seen any.
This isn't a real-world problem, but we're arguably over-loading too
much information into the filename already;
- package name
- package version
- ebuild revision
- (EAPI?)
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:12 ` Ciaran McCreesh
` (2 preceding siblings ...)
2012-03-12 17:53 ` Ulrich Mueller
@ 2012-03-13 0:46 ` Patrick Lauer
2012-03-13 6:41 ` Walter Dnes
4 siblings, 0 replies; 65+ messages in thread
From: Patrick Lauer @ 2012-03-13 0:46 UTC (permalink / raw
To: gentoo-dev
On 03/13/12 01:12, Ciaran McCreesh wrote:
> On Mon, 12 Mar 2012 18:05:46 +0100
> Ulrich Mueller <ulm@gentoo.org> wrote:
>> See above, even if we should ever move away from bash, GLEP 55 is
>> still not needed.
>
> ...but we might as well go with GLEP 55 anyway, since GLEP 55
> definitely works, whereas other solutions might work so long as we
> don't do something unexpected.
>
> This whole thing is just an exercise in trying to find excuses not to
> use GLEP 55.
>
That kind of circular reasoning makes my head hurt.
We discussed that ... topic ... to death about three times over the last
2 years, and the same arguments still apply.
Put an EAPI-marker in a well-defined position near the top of the
ebuild, problem solved. If it needs more it's not an ebuild anymore and
we should consider fixing all the other annoying glitches we have at the
same time, which causes a backwards-incompatible tree format change,
which means we need to plan the whole thing properly.
Trying to nail on GLEP55 is just trying to fix issues arising from not
fixing issues properly, so *if* we want to change things for no apparent
reason we should change them properly.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:28 ` Ciaran McCreesh
2012-03-12 18:50 ` Ulrich Mueller
@ 2012-03-13 0:51 ` Patrick Lauer
1 sibling, 0 replies; 65+ messages in thread
From: Patrick Lauer @ 2012-03-13 0:51 UTC (permalink / raw
To: gentoo-dev
On 03/13/12 02:28, Ciaran McCreesh wrote:
[snip lots of political rhetoric]
>
> GLEP 55 is simple,
No.
> it solves all the problems we have
No, it just tries to shove them under the carpet
> (including the
> version issue, which everyone is conveniently ignoring),
Say what?
> it doesn't require us to guess what's going to happen next and it can be
> implemented immediately.
So can migrating the tree to posix-only "ebuilds", but at what cost, and
what do we gain from it?
> That's a rather big deal.
So is switching to Arch Linux.
... why would we want to do such things?!
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:17 ` Ulrich Mueller
2012-03-12 18:28 ` Ciaran McCreesh
2012-03-12 18:29 ` Kent Fredric
@ 2012-03-13 4:31 ` Brian Harring
2012-03-13 5:14 ` Kent Fredric
2 siblings, 1 reply; 65+ messages in thread
From: Brian Harring @ 2012-03-13 4:31 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 07:17:31PM +0100, Ulrich Mueller wrote:
> >>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
>
> > On Mon, 12 Mar 2012 19:00:32 +0100
> > Ulrich Mueller <ulm@gentoo.org> wrote:
> >> >>>>> On Mon, 12 Mar 2012, Zac Medico wrote:
> >> > If we do go with a variant of GLEP 55, I'd prefer a variant that
> >> > uses a constant extension (like .eb) and places the EAPI string
> >> > just after the version component of the name. For example:
> >>
> >> > foo-1.0-r1-eapi5.ebuild
> >>
> >> This is so ugly... I guess I'll retire the same day when such an
> >> abomination gets accepted. ;-)
>
> > I'm sorry, we're down to "it's ugly and someone already said no and
> > I'll throw my toys out of the pram if I don't get my way" as the
> > arguments against GLEP 55 now?
>
> Note the smiley in my posting. And yes, it _is_ ugly.
Worse, it actually makes parsing _worse_ than it already is. What G55
had going for it was ease of filtering out unsupported eapi's.
Literally just filter the readdir results. This behemoth Zac is
proposing basically requires throwing regex at it, and *is* able to
be tripped up since eapi's aren't strictly integers (1-prefix,
4-python, 4-eapi3 if I wanted to intentionally be a dick and break
likely non-greedy implementations of the regex).
Same angle, embedding it into the version space means that there can
be conflicts w/ PN.
Basically... embedding it into the versioning like that, besides being
ugly as all hell, discards the main benefit g55 had- clear
identification of EAPI.
It ain't worth it.
~brian
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 4:31 ` Brian Harring
@ 2012-03-13 5:14 ` Kent Fredric
2012-03-13 6:22 ` Brian Harring
2012-03-13 7:11 ` [gentoo-dev] " Duncan
0 siblings, 2 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-13 5:14 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 17:31, Brian Harring <ferringb@gmail.com> wrote:
> Worse, it actually makes parsing _worse_ than it already is. What G55
> had going for it was ease of filtering out unsupported eapi's.
> Literally just filter the readdir results. This behemoth Zac is
> proposing basically requires throwing regex at it, and *is* able to
> be tripped up since eapi's aren't strictly integers (1-prefix,
> 4-python, 4-eapi3 if I wanted to intentionally be a dick and break
> likely non-greedy implementations of the regex).
Eh? How? If you make "." a forbidden character in an eapi
specificiation, and make "." the delimiter
dev-foo/foo-bar-2.3.4.eapi5.eb
^^^^
How does that require regex?
remove the .eb , and the last token remaining is the eapi .
it doesn't clash with the existing system for 2 reasons, 1) the .eb
extension and 2) "eapi5" is not a valid version token
> Same angle, embedding it into the version space means that there can
> be conflicts w/ PN.
I'm confused as to how, can you give one theoretical example?
dev-foo/foo-bar-2.3.4.eapi5.eb <-- eapi5 can't be a package name
here, because its got the .eb suffix which means an EAPI *MUST* be
specified
and eapi5 also can't be a package name there, because then you're
telling be it tokenizes as:
category=dev-foo
package=foo-bar-2.3.4.eapi5
version = undefined
eapi = undefined
Which is clearly illegal.
> Basically... embedding it into the versioning like that, besides being
> ugly as all hell, discards the main benefit g55 had- clear
> identification of EAPI.
It still seems "clear" to me.
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 21:49 ` Alec Warner
2012-03-12 22:02 ` Mike Gilbert
@ 2012-03-13 6:06 ` Ulrich Mueller
1 sibling, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-13 6:06 UTC (permalink / raw
To: gentoo-dev
>>>>> On Mon, 12 Mar 2012, Alec Warner wrote:
> The previous council's decision does not prevent this same glep from
> going to the council again (decisions are not forever.)
> Some folks seem to think that taking glep55 back to the council is
> not allowed somehow (or is perhaps futile, but that is a different
> issue ;p) Having the full notes would be helpful in determining why
> it was turned down back then; I'm sure a copy of the notes exist.
Of course, decisions can be reconsidered. However, GLEP 55 was first
posted in 2007. We've had five councils since then, and none of these
councils has accepted it.
Also, this is one of the most controversial GLEPs that we ever had.
Even if it solves the technical problem for the package manager, I
believe that embedding such metadata information in the filename is
misguided.
Then the argument that GLEP 55 would be the only solution which
doesn't require a waiting period. Instead, we've been discussing it
since more than four years now (so it looks like we were not in a
hurry, and the urgent matters from 2007 haven't been so urgent, after
all). If some of the other less controversial solutions had been
implemented in 2008 or 2009, this wouldn't be an issue today.
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 5:14 ` Kent Fredric
@ 2012-03-13 6:22 ` Brian Harring
2012-03-13 16:10 ` Wulf C. Krueger
2012-03-13 7:11 ` [gentoo-dev] " Duncan
1 sibling, 1 reply; 65+ messages in thread
From: Brian Harring @ 2012-03-13 6:22 UTC (permalink / raw
To: Kent Fredric; +Cc: gentoo-dev
On Tue, Mar 13, 2012 at 06:14:23PM +1300, Kent Fredric wrote:
> On 13 March 2012 17:31, Brian Harring <ferringb@gmail.com> wrote:
> > Worse, it actually makes parsing _worse_ than it already is. ??What G55
> > had going for it was ease of filtering out unsupported eapi's.
> > Literally just filter the readdir results. ??This behemoth Zac is
> > proposing basically requires throwing regex at it, and *is* able to
> > be tripped up since eapi's aren't strictly integers (1-prefix,
> > 4-python, 4-eapi3 if I wanted to intentionally be a dick and break
> > likely non-greedy implementations of the regex).
>
> Eh? How? If you make "." a forbidden character in an eapi
> specificiation, and make "." the delimiter
>
> dev-foo/foo-bar-2.3.4.eapi5.eb
>
> ^^^^
>
> How does that require regex?
That works; note however that wasn't what was proposed. ;)
Still is god awfuly fugly though, and reliant on digits as the first
character to be readable. Consider exheres:
dev-foo/foo-bar-2.3.4.eapiexheres.eb
Or arfrever's personal EAPI:
dev-foo/foo-bar-2.3.4.eapi4-python.eb
Etc. This isn't an improvement, it's a regression in readability
bordering on intentionally hating the developer who has to deal with
it.
> remove the .eb , and the last token remaining is the eapi .
>
> it doesn't clash with the existing system for 2 reasons, 1) the .eb
> extension and 2) "eapi5" is not a valid version token
>
> > Same angle, embedding it into the version space means that there can
> > be conflicts w/ PN.
>
> I'm confused as to how, can you give one theoretical example?
If you change the delimiter, it's not an issue; if it was left,
consider dev-foo/blah-eapi2-1-eapi2.ebuild . It's intentionally
breaking it, but the point is that the issue *exists*, a problem that
didn't before. Change the delimiter and you can duck most of it
although I suspect there still is a naggle or two.
That doesn't make parsing any prettier to implement however.
> dev-foo/foo-bar-2.3.4.eapi5.eb <-- eapi5 can't be a package name
> here, because its got the .eb suffix which means an EAPI *MUST* be
> specified
>
> and eapi5 also can't be a package name there, because then you're
> telling be it tokenizes as:
>
> category=dev-foo
> package=foo-bar-2.3.4.eapi5
> version = undefined
> eapi = undefined
>
> Which is clearly illegal.
Just a general point. You changed the delimiter- meaning the
failures mostly go away. My points were against Zac's original
proposal, thus arguing those points don't actually exist (swapping the
delimiter) is a bit of a wrong way to argue- argue "change the
delimiter and it goes away" rather than "nuh uh, there isn't an
issue". Way less confusing.
> > Basically... embedding it into the versioning like that, besides being
> > ugly as all hell, discards the main benefit g55 had- clear
> > identification of EAPI.
>
> It still seems "clear" to me.
"clear" means different things to different people. For example, this
code is actually clear to me:
class MockObject(dict):
locals().update(
('__%sattr__' % x, getattr(dict, '__%sitem__' % x) for x in
('get', 'set', 'del'))
That code for everyone else is basically akin to eye-gouging w/ a
follow up diddling of the new hole. 'Clear' is quite subjective being
hte point.
EAPI mechanisms have to be designed for functionality, *and* ease of
use for the general dev populace. Having
sys-apps/paludis-0.72.0-eapiexheres.ebuild
is *not* clearly parsable by the majority. Were it parsable for the
masses, that doesn't make it anything less than butt-fugly in my view.
If you really think it's great, convince others. Ulm/Myself seem to
view it fairly negatively, and I strongly doubt you're going to
convince either of us to change those views.
~brian
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 15:57 ` [gentoo-dev] RFD : .ebuild is only bash Kent Fredric
` (2 preceding siblings ...)
2012-03-12 18:04 ` Michał Górny
@ 2012-03-13 6:29 ` Richard Yao
2012-03-13 11:52 ` Rich Freeman
3 siblings, 1 reply; 65+ messages in thread
From: Richard Yao @ 2012-03-13 6:29 UTC (permalink / raw
To: gentoo-dev; +Cc: Kent Fredric
[-- Attachment #1: Type: text/plain, Size: 1346 bytes --]
On 03/12/12 11:57, Kent Fredric wrote:
> On 12 March 2012 22:37, Brian Harring <ferringb@gmail.com> wrote:
>> Ebuilds *are* bash. There isn't ever going to be a PMS labeled
>> xml format that is known as ebuilds... that's just pragmatic reality
>> since such a beast is clearly a seperate format (thus trying to call
>> it an 'ebuild' is dumb, confusing, and counter productive).
>
>
> I think this notion should be concluded before we continue debating as
> to how best to implement EAPI declarations.
>
> Is it really so fixed that ".ebuild" will only ever be bash ?
>
> If thats the case, then G55 ( or something similar ) is practically
> guaranteed as soon as we want something non-bash.
>
>
>
>
> --
> Kent
>
> perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
> 3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
>
I imagine that POSIX Shell is a possibility, although strict compliance
would mean abandoning a few extensions like the local keyword that are
probably rather useful in eclasses.
To make XML a viable substitute for bash, you will need to implement a
turing complete language in XML, which should probably preclude its use
in ebuilds. You would likely have better luck with a functional
programming language, although you are more than welcome to demonstrate
otherwise.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* [gentoo-dev] Re: RFD : .ebuild is only bash
2012-03-12 22:53 ` Alec Warner
@ 2012-03-13 6:31 ` Duncan
0 siblings, 0 replies; 65+ messages in thread
From: Duncan @ 2012-03-13 6:31 UTC (permalink / raw
To: gentoo-dev
Alec Warner posted on Mon, 12 Mar 2012 15:53:58 -0700 as excerpted:
> On Mon, Mar 12, 2012 at 3:37 PM, Kent Fredric <kentfredric@gmail.com>
> wrote:
>> On 13 March 2012 11:02, Mike Gilbert <floppym@gentoo.org> wrote:
>>>> The previous council's decision does not prevent this same glep from
>>>> going to the council again (decisions are not forever.) [...]
>>>> Having the full notes would be helpful in determining why
>>>> it was turned down back then; I'm sure a copy of the notes exist.
>>>
>>> http://www.gentoo.org/proj/en/council/
>>> http://www.gentoo.org/proj/en/council/meeting-logs/20100823.txt
>>>
>>>
>> Well that was insightful. As suspected,, there was a lot of people
>> saying "Yeaahh, I don't like it", and concluding there were problems
>> with it, but the actual technical issues still haven't been presented
>> to us.
>> Can somebody present a real ( or even theoretical ) problem that could
>> arise from having the EAPI in the filename that isn't some abstract
>> hand-waving?
> In general there was the 'I don't like it crowd (I was one of these, I
> care less these days ;p)'
> There was the 'it is Ciaran crowd.' This concept is difficult to
> describe without a fair bit of context in how the community was being
> run at the time.
Sometimes I wonder at how much more pleasant the dev-list in particular
is these days. It's as if people grew up and learned how to have a
reasonable discussion. Meanwhile, I doubt anyone who survived those days
wants to relive them, for sure! So let's just agree not to kick that
sleeping dog any more than we already have, lest he wake up! The posts
are after all archived for those newbies who wish to see for themselves
what the veterans of the era would rather leave well enough alone.
> None of the above reasons are what I would term 'technical merits.'
> However now (as then) not all decisions are made on their technical
> merits. We have adopted (and continue to adopt) solutions that are
> imperfect, technically silly, or otherwise lots of work because they
> meet some goal we are trying to accomplish. I don't think Gentoo is
> alone in this aspect of management.
IMO the real reason for the g55 "no" back then, was that whatever the
technical merits of the various solutions were, the discussion was simply
too politically and interpersonally poisoned to handle in any reasonable
way. Gentoo lost some good folks around that time, and if the council
had moved forward with ANY of the more forward looking proposals,
including g55 but not limited to it, it would have very likely triggered
a split of gentoo into at least two, likely three or four different
factions, and gentoo as we know it would have gone the way that the zynot
fork went... Honestly, as bad as things were at the time and knowing
that there ARE unstable folks like Hans Reiser around in the FLOSS
community, I wouldn't have been /that/ surprised if someone really DID
take it too far. Yes, things were THAT bad!
Tho it's worth noting that the 2010 date of the log above was, I think,
after the worst of it was over, but it was still too poisoned to deal
with in any reasonably sane way.
Luckily, the council had the wisdom to more or less punt, voting down g55
AND the other discussed solutions, basically sticking with what we had,
with minor tweaks, until things calmed down. It is my opinion that they
really did very possibly prevented the rather bad end of gentoo by doing
so. But they did leave the door open, calling for further study of the
issues.
When I saw this thread start, I wondered if enough time had passed...
The most encouraging thing about this current discussion for me as a list
veteran of that era, is that despite all the posts so far, the debate has
remained reasonably civil. People are debating hard for their
viewpoints, but nobody's crossing the line and making it personal as was
the unfortunate norm back then, and people approaching the line are
quickly nudged back away from it.
I honestly don't know if it's something that can be reasonably dealt
with, yet. I honestly don't know how pressing is the need to deal with
it /now/ vs perhaps punting it a couple more years.
Either way, the simple fact that we're discussing it as sane humans
instead of as a pack of wild dogs, viciously snarling and snapping at
each other, is progress.
For the record, I agree with someone else, sorry I don't remember who,
that said it seems that a lot of folks seem to want glep55 now, just not
by that name. Ultimately, I believe at least the one-shot variant,
possibly with additional later shots but with each one well debated on
its own merits to be SURE about it before moving forward (IOW, not an
open-ended forever increasing series), with intermediate updates keeping
the same filename structure in between, is about the best choice
available.
But whether now's the appropriate time for that one-shot, and its
details, I don't know. At least our discussion is on sane terms, these
days, something I don't believe could be honestly stated, before, and for
that reason, I 100% agree with the council's rejection of it back then.
Meanwhile, for issues such as this, where we'll be living with the
decision for some time to come, and especially where it has been going on
for years, so another year isn't going to be life or death, I have an
idea.
What about, for such issues, requiring, in effect, that two successive
councils approve it, with possibly a 5/7 or even 6/7 override. If the
majority is that strong, it's unlikely that a new council would see it
differently anyway. If not, conditionally approve a decision, with the
condition that the next year's council must also approve it.
Between the two approvals, any remaining implementation details can be
worked out, and for decisions such as one affecting future EAPIs like
this one does, implementation and testing can go into the PMs and if
desired/necessary, the alternate tree prepared, but it can't roll-out
"live" on the main gentoo tree (and any implementing overlays do so at a
known and calculated risk of having to roll-back) until the second
council approves the change as well. And the first council's approval
must be, say, a minimum of three months before council turnover. No
hasty post-election lame-duck sessions ramming stuff thru so the new
council can in just weeks finalize things, tho of course the supermajority
override still could, when really seen to be necessary by /that/ many
council members.
That way, devs get to vote for a new council in the middle, and if they
really dislike an action, they can simply vote in an opposing council.
Obviously, this only works for multi-year projects with multi-year
implications, not so well for, say, appeals to council of a forced
retirement or the like, but it seems to me that such a mechanism would
guard quite well against one council voting something thru with a slim
majority that's reverted the next year, for things with the long-term
implications something like this obviously has.
Based on my reading of the logs, that's actually been a council concern a
time or two, for at least a couple members. Formally having the two-
successive-councils option for the biggest and longest term issues would
remove that concern and allow the initial council to vote on the merits
as they saw them, and a second council will have then certainly taken
positions (even if it's an official "no position" position) on the issue,
either by being reelected after the first vote or by statement, so can
vote in confidence knowing that the larger gentoo developer pool backs
them in their vote.
--
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
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 17:12 ` Ciaran McCreesh
` (3 preceding siblings ...)
2012-03-13 0:46 ` Patrick Lauer
@ 2012-03-13 6:41 ` Walter Dnes
2012-03-13 6:56 ` Kent Fredric
` (2 more replies)
4 siblings, 3 replies; 65+ messages in thread
From: Walter Dnes @ 2012-03-13 6:41 UTC (permalink / raw
To: gentoo-dev
On Mon, Mar 12, 2012 at 05:12:28PM +0000, Ciaran McCreesh wrote
> This whole thing is just an exercise in trying to find excuses not to
> use GLEP 55.
A filename should not be (ab)used as a database. The main argument for
GLEP 55 is that it would make ebuild-processing generic. I.e. making
ebuild info available to whatever future ebuild processor replacement
for bash was used. A couple of comments...
1) Let's talk generic. Right now, we're talking about EAPI. In future,
what other (meta)data and characteristics will we need to know? What
else will be tacked onto the filename? EAPI, and any other critical
(meta)data should be declared early on in the ebuild. That's what the
ebuild is for.
2) Any potential ebuild processor that's incapable of looking for regex
"^EAPI=" in a textfile, amd parsing the numbers that follow, has no
business being used to process ebuilds.
--
Walter Dnes <waltdnes@waltdnes.org>
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 6:41 ` Walter Dnes
@ 2012-03-13 6:56 ` Kent Fredric
2012-03-13 7:03 ` Brian Harring
2012-03-13 7:30 ` Ciaran McCreesh
2 siblings, 0 replies; 65+ messages in thread
From: Kent Fredric @ 2012-03-13 6:56 UTC (permalink / raw
To: gentoo-dev
On 13 March 2012 19:41, Walter Dnes <waltdnes@waltdnes.org> wrote:
> On Mon, Mar 12, 2012 at 05:12:28PM +0000, Ciaran McCreesh wrote
>
>> This whole thing is just an exercise in trying to find excuses not to
>> use GLEP 55.
>
> A filename should not be (ab)used as a database. The main argument for
> GLEP 55 is that it would make ebuild-processing generic. I.e. making
> ebuild info available to whatever future ebuild processor replacement
> for bash was used. A couple of comments...
>
> 1) Let's talk generic. Right now, we're talking about EAPI. In future,
> what other (meta)data and characteristics will we need to know? What
> else will be tacked onto the filename? EAPI, and any other critical
> (meta)data should be declared early on in the ebuild. That's what the
> ebuild is for.
>
> 2) Any potential ebuild processor that's incapable of looking for regex
> "^EAPI=" in a textfile, amd parsing the numbers that follow, has no
> business being used to process ebuilds.
>
Yeah, the only other concept I wanted to see addressed for technical
concerns is a per-package metadata file ( that is *not* metadata.xml )
that intends to associate out-of-band metadata with files in the
package's directory.
Consider if it were in .json , just for ease of explaining the concept
category/package/
package-foo-1.2.ebuild
package-foo-1.2.3.ebuild
metamap.json
And in metamap.json :
{
"_metamap" : { "api-version" : 1 },
"package-foo-1.2.ebuild" : { "eapi" : "6" },
"package-foo-1.2.3.ebuild" : { "eapi" : "7" }
}
Yes, I'm aware this imposes some limitations on editing files somewhat.
But I don't think I've seen this specific concept has seen a proper
fleshing out/destruction yet.
Really, I've seen lots of interesting ideas thus far, but I'm having
trouble keeping the pros / cons of each variant of each approach in my
head, and Glep55 wins by default because it fits better in my
short-term-memory =).
( Yes, yes, I stuck a _metamap key with attached _metamap api version
subkey *just* in case the format of the metamap needs to change. If
you want to have a metametamap, well, I guess thats why we have
hallucinogens ;) )
--
Kent
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3,
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 6:41 ` Walter Dnes
2012-03-13 6:56 ` Kent Fredric
@ 2012-03-13 7:03 ` Brian Harring
2012-03-13 8:50 ` Ulrich Mueller
2012-03-13 15:52 ` Zac Medico
2012-03-13 7:30 ` Ciaran McCreesh
2 siblings, 2 replies; 65+ messages in thread
From: Brian Harring @ 2012-03-13 7:03 UTC (permalink / raw
To: Walter Dnes; +Cc: gentoo-dev
On Tue, Mar 13, 2012 at 02:41:13AM -0400, Walter Dnes wrote:
> On Mon, Mar 12, 2012 at 05:12:28PM +0000, Ciaran McCreesh wrote
>
> > This whole thing is just an exercise in trying to find excuses not to
> > use GLEP 55.
>
> A filename should not be (ab)used as a database. The main argument for
> GLEP 55 is that it would make ebuild-processing generic. I.e. making
> ebuild info available to whatever future ebuild processor replacement
> for bash was used. A couple of comments...
>
> 1) Let's talk generic. Right now, we're talking about EAPI. In future,
> what other (meta)data and characteristics will we need to know? What
> else will be tacked onto the filename? EAPI, and any other critical
> (meta)data should be declared early on in the ebuild. That's what the
> ebuild is for.
>
> 2) Any potential ebuild processor that's incapable of looking for regex
> "^EAPI=" in a textfile, amd parsing the numbers that follow, has no
> business being used to process ebuilds.
Perfectly valid, if stupid, bash:
EAPI=3
EAPI=4
Which is the PM to choose? Because if your answer is "the first",
then you need to keep in mind that any following code (including
eclasses that test eapi) will be seeing the second during sourcing.
Nice little gotcha, that one.
I'm aware people have suggested "make EAPI readonly" to try and deal
w/ this; that however means it'll break any PM that uses eval for
loading the ebuild, and means that every ebuild sourcing for phase
running will throw a complaint about EAPI being readonly.
I don't hugely expect PMs to screw up the ordering of which to chose,
although it exists; trying to ban secondary settings is also an
approach... but all of it points to the fact it's a fricking hack and
isn't really worth doing.
If we're going to redo EAPI, redo it right. Don't half ass it- this
time around we're not forced to make compromises.
Viewing it that way, this grep hack shouldn't be on the table as a
viable option.
~harring
^ permalink raw reply [flat|nested] 65+ messages in thread
* [gentoo-dev] Re: RFD : .ebuild is only bash
2012-03-13 5:14 ` Kent Fredric
2012-03-13 6:22 ` Brian Harring
@ 2012-03-13 7:11 ` Duncan
1 sibling, 0 replies; 65+ messages in thread
From: Duncan @ 2012-03-13 7:11 UTC (permalink / raw
To: gentoo-dev
Kent Fredric posted on Tue, 13 Mar 2012 18:14:23 +1300 as excerpted:
> Eh? How? If you make "." a forbidden character in an eapi
> specificiation,
> and make "." the delimiter
>
> dev-foo/foo-bar-2.3.4.eapi5.eb
>
> ^^^^
>
> How does that require regex?
>
> remove the .eb , and the last token remaining is the eapi .
>
> it doesn't clash with the existing system for 2 reasons, 1) the .eb
> extension and 2) "eapi5" is not a valid version token
That's logical, but as pointed out, the originally proposed delimiter was
-, so dev-foo/foo-bar-2.3.4-eapi5.eb, which is a bit different.
I've wondered about other delimiters, too. : seems obvious, but also
rather likely to screw stuff up. What about something like ^ :
dev-foo/foo-bar-2.3.4^eapi5.eb ? Or + dev-foo/foo-bar-2.3.4+eapi5.eb ?
But my real reason for this post, and mostly picking your post to reply
to as it's a convenient demonstration of .eb...
Someone raised the point about "eb" being taken as a swear word in
Russian. That might not be enough to derail it as the only choice, just
as .fuck if it was the only thing available shouldn't be derailed, but
surely there's other possible choices that aren't so objectionable.
I haven't seen these suggested yet:
.ebld .ebd .bld .dliube (backward, like xvid/vidx) .dlbe .be (ok, that's
a 2-letter national code, but is it a swear word anywhere? if not I'd say
it's still better).
We could even do an inside joke on eb/ebb and make it .flow ... or for
that matter, .eflow or .ebflow =:^)
Some of those might have their own negative connotations or indeed,
simply look too ugly, but that's the reason I'm asking.
--
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
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 6:41 ` Walter Dnes
2012-03-13 6:56 ` Kent Fredric
2012-03-13 7:03 ` Brian Harring
@ 2012-03-13 7:30 ` Ciaran McCreesh
2012-03-14 0:29 ` Walter Dnes
2 siblings, 1 reply; 65+ messages in thread
From: Ciaran McCreesh @ 2012-03-13 7:30 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1106 bytes --]
On Tue, 13 Mar 2012 02:41:13 -0400
"Walter Dnes" <waltdnes@waltdnes.org> wrote:
> On Mon, Mar 12, 2012 at 05:12:28PM +0000, Ciaran McCreesh wrote
> > This whole thing is just an exercise in trying to find excuses not
> > to use GLEP 55.
>
> A filename should not be (ab)used as a database.
You mean we shouldn't have name, version and format in there? Because
those are there already. All GLEP 55 does is make the format part more
specific.
> 1) Let's talk generic. Right now, we're talking about EAPI. In
> future, what other (meta)data and characteristics will we need to
> know? What else will be tacked onto the filename? EAPI, and any
> other critical (meta)data should be declared early on in the ebuild.
> That's what the ebuild is for.
EAPI is special. You need to know EAPI to be able to get the rest of
the metadata.
> 2) Any potential ebuild processor that's incapable of looking for
> regex "^EAPI=" in a textfile, amd parsing the numbers that follow,
> has no business being used to process ebuilds.
That doesn't get you the EAPI.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 7:03 ` Brian Harring
@ 2012-03-13 8:50 ` Ulrich Mueller
2012-03-13 15:52 ` Zac Medico
1 sibling, 0 replies; 65+ messages in thread
From: Ulrich Mueller @ 2012-03-13 8:50 UTC (permalink / raw
To: gentoo-dev; +Cc: Walter Dnes
>>>>> On Tue, 13 Mar 2012, Brian Harring wrote:
> Perfectly valid, if stupid, bash:
> EAPI=3
> EAPI=4
> Which is the PM to choose? Because if your answer is "the first",
> then you need to keep in mind that any following code (including
> eclasses that test eapi) will be seeing the second during sourcing.
> Nice little gotcha, that one.
> I'm aware people have suggested "make EAPI readonly" to try and deal
> w/ this; that however means it'll break any PM that uses eval for
> loading the ebuild, and means that every ebuild sourcing for phase
> running will throw a complaint about EAPI being readonly.
For the moment, let's assume that we go that route and specify the
EAPI in a comment in the first line of the ebuild. The EAPI variable
can be made readonly if we do one of the following:
- One time change of the ebuild's extension, so old package managers
won't see the new ebuilds.
- Specify the EAPI in the header, plus an assignment that is only seen
by old package managers (that don't get the EAPI variable from the
ebuild's header). All of the following should work:
: ${EAPI=5}
: ${EAPI=unsupported}
[[ ${EAPI} ]] || EAPI=-1
Any value for the EAPI can be used, as long as it's unknown to old
package managers.
- A variant of the above, if an EAPI would add features that make
sourcing of the ebuild with old package managers impossible:
[[ ${EAPI} ]] || { EAPI=-1; return; }
Testing this with current Portage (2.1.10.49) and two test ebuilds,
app-misc/foo-1 is EAPI 4, app-misc/foo-2 contains the above line:
# emerge -p app-misc/foo
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] app-misc/foo-1
foo-2 is masked by its unknown EAPI. No further warnings for the
user.
If I try to force installation of foo-2, I get the following:
# emerge -p =app-misc/foo-2
These are the packages that would be merged, in order:
Calculating dependencies... done!
!!! All ebuilds that could satisfy "=app-misc/foo-2" have been masked.
!!! One of the following masked packages is required to complete your
!!! request:
- app-misc/foo-2::x-ulm (masked by: missing keyword, invalid: SLOT: invalid value: '', SLOT: undefined)
The current version of portage supports EAPI '4'. You must upgrade to a
newer version of portage before EAPI masked packages can be installed.
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
One line of spurious warnings because of missing KEYWORDS and SLOT,
because the ebuild returns before these lines can be assigned.
Otherwise, a clear message that the user should upgrade Portage.
(Arguably, adding a line like [[ ${EAPI} ]] || { EAPI=-1; return; }
to ebuilds wouldn't look elegant. See the above as proof of concept
that a readonly EAPI variable is possible.)
> I don't hugely expect PMs to screw up the ordering of which to
> chose, although it exists; trying to ban secondary settings is also
> an approach... but all of it points to the fact it's a fricking hack
> and isn't really worth doing.
> If we're going to redo EAPI, redo it right. Don't half ass it- this
> time around we're not forced to make compromises.
> Viewing it that way, this grep hack shouldn't be on the table as a
> viable option.
Agreed, it's a hack if we try parsing the bash assignment statement.
I don't see it as a hack if we have a well defined syntax for the
ebuild's first line.
Ulrich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 6:29 ` Richard Yao
@ 2012-03-13 11:52 ` Rich Freeman
0 siblings, 0 replies; 65+ messages in thread
From: Rich Freeman @ 2012-03-13 11:52 UTC (permalink / raw
To: gentoo-dev; +Cc: Kent Fredric
On Tue, Mar 13, 2012 at 2:29 AM, Richard Yao <ryao@cs.stonybrook.edu> wrote:
> To make XML a viable substitute for bash, you will need to implement a
> turing complete language in XML, which should probably preclude its use
> in ebuilds. You would likely have better luck with a functional
> programming language, although you are more than welcome to demonstrate
> otherwise.
Well, a trivial solution to that is to embed bash code (or some other
language) into the content of the xml file. As I and others posted
earlier the advantage is that it makes all the key/value stuff easier
to manage than doing it in bash, but it makes editing the scripting
content harder and requires pre-processing before being fed into an
interpreter.
If you look at metadata.xml you could argue that we're already using
xml-based ebuilds to an extent, but we split the metadata across two
different files in different formats and call them different things.
In any case, my point in bringing up xml was that the whole point of
GLEP 55 was to future-proof the interpretation of ebuild files, and
xml is just one example of what the future could conceivably look
like.
Rich
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 7:03 ` Brian Harring
2012-03-13 8:50 ` Ulrich Mueller
@ 2012-03-13 15:52 ` Zac Medico
1 sibling, 0 replies; 65+ messages in thread
From: Zac Medico @ 2012-03-13 15:52 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 12:03 AM, Brian Harring wrote:
> On Tue, Mar 13, 2012 at 02:41:13AM -0400, Walter Dnes wrote:
>> 2) Any potential ebuild processor that's incapable of looking for regex
>> "^EAPI=" in a textfile, amd parsing the numbers that follow, has no
>> business being used to process ebuilds.
>
> Perfectly valid, if stupid, bash:
>
> EAPI=3
> EAPI=4
>
> Which is the PM to choose? Because if your answer is "the first",
> then you need to keep in mind that any following code (including
> eclasses that test eapi) will be seeing the second during sourcing.
> Nice little gotcha, that one.
>
> I'm aware people have suggested "make EAPI readonly" to try and deal
> w/ this; that however means it'll break any PM that uses eval for
> loading the ebuild, and means that every ebuild sourcing for phase
> running will throw a complaint about EAPI being readonly.
>
> I don't hugely expect PMs to screw up the ordering of which to chose,
> although it exists; trying to ban secondary settings is also an
> approach... but all of it points to the fact it's a fricking hack and
> isn't really worth doing.
>
> If we're going to redo EAPI, redo it right. Don't half ass it- this
> time around we're not forced to make compromises.
The "parse EAPI assignment" approach is more about fixing EAPI than
redoing it. It's the least invasive approach, and it would work
perfectly well in practice. Issues like the invalid double assignment
that you mentioned, which are pretty unlikely anyway, are easily handled
if package manager implements a feedback mechanism to assert that the
parsed EAPI is identical to the value obtained from bash [1].
[1] https://bugs.gentoo.org/show_bug.cgi?id=402167#c18
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 6:22 ` Brian Harring
@ 2012-03-13 16:10 ` Wulf C. Krueger
2012-03-13 19:08 ` Brian Harring
0 siblings, 1 reply; 65+ messages in thread
From: Wulf C. Krueger @ 2012-03-13 16:10 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 592 bytes --]
On 13.03.2012 07:22, Brian Harring wrote:
> Still is god awfuly fugly though, and reliant on digits as the first
> character to be readable. Consider exheres:
> dev-foo/foo-bar-2.3.4.eapiexheres.eb
Just for the record, your example is wrong. For exheres, it would be
foo-bar-2.3.4.exheres-0
"0" being the version. Simple, elegant, works.
Now please go on looking for a solution that takes (much) more effort
and/or is more complicated as it suits my personal goals better if you
choose something different, e. g. some kind of ebuild parsing. :-)
Best regards, Wulf
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 16:10 ` Wulf C. Krueger
@ 2012-03-13 19:08 ` Brian Harring
0 siblings, 0 replies; 65+ messages in thread
From: Brian Harring @ 2012-03-13 19:08 UTC (permalink / raw
To: Wulf C. Krueger; +Cc: gentoo-dev
On Tue, Mar 13, 2012 at 05:10:14PM +0100, Wulf C. Krueger wrote:
> On 13.03.2012 07:22, Brian Harring wrote:
> > Still is god awfuly fugly though, and reliant on digits as the first
> > character to be readable. Consider exheres:
> > dev-foo/foo-bar-2.3.4.eapiexheres.eb
>
> Just for the record, your example is wrong. For exheres, it would be
>
> foo-bar-2.3.4.exheres-0
>
> "0" being the version. Simple, elegant, works.
The example was right; you just didn't bother to read the thread.
The proposal was to jam EAPI into the version namespace, rather than
extension. Meaning they're proposing that foo-bar example be
foo-bar-2.3.4.eapiexheres-0.ebuild
As I said in the email you didn't bother to actually read, such a
proposal is fairly whacked and takes away the actual benefits of G55;
aka, do G55 before doing that attrocity.
I'll skip replying to the rest of the snark in the email; I will
however point out that toolish behaviour like above doesn't do G55 any
favors in trying to reverse 5 years of people saying "I don't like the
aesthetics".
That said, feel free to keep screaming into the wind about it.
~harring
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-12 18:50 ` Ulrich Mueller
2012-03-12 18:58 ` Ian Stakenvicius
2012-03-12 19:00 ` Ciaran McCreesh
@ 2012-03-13 20:33 ` Brian Harring
2 siblings, 0 replies; 65+ messages in thread
From: Brian Harring @ 2012-03-13 20:33 UTC (permalink / raw
To: Ulrich Mueller; +Cc: gentoo-dev
On Mon, Mar 12, 2012 at 07:50:36PM +0100, Ulrich Mueller wrote:
> >>>>> On Mon, 12 Mar 2012, Ciaran McCreesh wrote:
> > GLEP 55 is simple, it solves all the problems we have (including the
> > version issue, which everyone is conveniently ignoring), it doesn't
> > require us to guess what's going to happen next and it can be
> > implemented immediately. That's a rather big deal.
>
> The "header comment" solution solves all these issues too, without
> embedding unrelated information in the filename [1]. It can be
> implemented immediately, too.
>
> The argument that was always used against such solutions was that
> it would "hurt performance". However, when the council asked for
> benchmarks that would prove that point, nobody could provide them.
Just a note... it's effectively background noise if implemented even
halfway sanely, and that's clocking it from w/in pkgcore; for portage,
it will be purely in the noise.
That's not to say it's *efficient*- it's just not a real world
performance concern.
~brian
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-13 7:30 ` Ciaran McCreesh
@ 2012-03-14 0:29 ` Walter Dnes
2012-03-14 0:48 ` Michael Orlitzky
2012-03-14 1:42 ` Brian Harring
0 siblings, 2 replies; 65+ messages in thread
From: Walter Dnes @ 2012-03-14 0:29 UTC (permalink / raw
To: gentoo-dev
On Tue, Mar 13, 2012 at 07:30:22AM +0000, Ciaran McCreesh wrote
> EAPI is special. You need to know EAPI to be able to get the rest of
> the metadata.
>
> > 2) Any potential ebuild processor that's incapable of looking for
> > regex "^EAPI=" in a textfile, amd parsing the numbers that follow,
> > has no business being used to process ebuilds.
>
> That doesn't get you the EAPI.
On Tue, Mar 13, 2012 at 12:03:34AM -0700, Brian Harring wrote
> Perfectly valid, if stupid, bash:
>
> EAPI=3
> EAPI=4
>
> Which is the PM to choose? Because if your answer is "the first",
> then you need to keep in mind that any following code (including
> eclasses that test eapi) will be seeing the second during sourcing.
> Nice little gotcha, that one.
>
> I'm aware people have suggested "make EAPI readonly" to try and deal
> w/ this; that however means it'll break any PM that uses eval for
> loading the ebuild, and means that every ebuild sourcing for phase
> running will throw a complaint about EAPI being readonly.
>
> I don't hugely expect PMs to screw up the ordering of which to chose,
> although it exists; trying to ban secondary settings is also an
> approach... but all of it points to the fact it's a fricking hack and
> isn't really worth doing.
I'm answering Ciaran's and Brian's posts together, because the answer
is the same for both... namely, we need a 2-pass processor, regardless
of whether it's bash/perl/python/whatever. Pass 1 checks for syntax
errors and retrieves "special" variables, answering Ciaran's concern.
Today, it's EAPI. In future, there may be others. Pass 2 does the
build, assuming no errors detected in pass 1.
Under the heading of "syntax errors", I would include multiple EAPI
declarations. My response to Brian is that portage should not try to
outguess or fix or override an obviously broken ebuild. It should
return an error message (in this case "Multiple EAPI declarations not
allowed") and then halt. It is the ebuild-writer's job to come up with
a syntactically correct ebuild.
--
Walter Dnes <waltdnes@waltdnes.org>
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 0:29 ` Walter Dnes
@ 2012-03-14 0:48 ` Michael Orlitzky
2012-03-14 1:42 ` Brian Harring
1 sibling, 0 replies; 65+ messages in thread
From: Michael Orlitzky @ 2012-03-14 0:48 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 08:29 PM, Walter Dnes wrote:
>
> I'm answering Ciaran's and Brian's posts together, because the answer
> is the same for both... namely, we need a 2-pass processor, regardless
> of whether it's bash/perl/python/whatever. Pass 1 checks for syntax
> errors and retrieves "special" variables, answering Ciaran's concern.
> Today, it's EAPI. In future, there may be others. Pass 2 does the
> build, assuming no errors detected in pass 1.
>
Problem is, the only thing that can tell if there's a bash syntax error
is bash itself.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 0:29 ` Walter Dnes
2012-03-14 0:48 ` Michael Orlitzky
@ 2012-03-14 1:42 ` Brian Harring
2012-03-14 2:05 ` Zac Medico
1 sibling, 1 reply; 65+ messages in thread
From: Brian Harring @ 2012-03-14 1:42 UTC (permalink / raw
To: Walter Dnes; +Cc: gentoo-dev
On Tue, Mar 13, 2012 at 08:29:03PM -0400, Walter Dnes wrote:
> On Tue, Mar 13, 2012 at 07:30:22AM +0000, Ciaran McCreesh wrote
>
> > EAPI is special. You need to know EAPI to be able to get the rest of
> > the metadata.
> >
> > > 2) Any potential ebuild processor that's incapable of looking for
> > > regex "^EAPI=" in a textfile, amd parsing the numbers that follow,
> > > has no business being used to process ebuilds.
> >
> > That doesn't get you the EAPI.
>
> On Tue, Mar 13, 2012 at 12:03:34AM -0700, Brian Harring wrote
>
> > Perfectly valid, if stupid, bash:
> >
> > EAPI=3
> > EAPI=4
> >
> > Which is the PM to choose? Because if your answer is "the first",
> > then you need to keep in mind that any following code (including
> > eclasses that test eapi) will be seeing the second during sourcing.
> > Nice little gotcha, that one.
> >
> > I'm aware people have suggested "make EAPI readonly" to try and deal
> > w/ this; that however means it'll break any PM that uses eval for
> > loading the ebuild, and means that every ebuild sourcing for phase
> > running will throw a complaint about EAPI being readonly.
> >
> > I don't hugely expect PMs to screw up the ordering of which to chose,
> > although it exists; trying to ban secondary settings is also an
> > approach... but all of it points to the fact it's a fricking hack and
> > isn't really worth doing.
>
> I'm answering Ciaran's and Brian's posts together, because the answer
> is the same for both... namely, we need a 2-pass processor, regardless
> of whether it's bash/perl/python/whatever. Pass 1 checks for syntax
> errors and retrieves "special" variables, answering Ciaran's concern.
> Today, it's EAPI. In future, there may be others. Pass 2 does the
> build, assuming no errors detected in pass 1.
With respect, this statement carries no actual weight nor usefulness.
PMs, by nature of dep resolution/building, already have that effective
seperation.
The point of this whole discussion is how to get metadata out of the
ebuild w/out excessive burdens on future formats. This pass1/pass2
doesn't address that at all, nor actually relevant to the discussion
at hand. Not trying to be a complete dick here, but you completely
missed the points being discussed including actually responding to
ciaran's point.
I suggest you grab the sources of whichever PM you use, and audit how
it gets metadata- it would help for understanding and contributing to
this discussion. At the very least it would be useful having another
person besides the Ulm/3 PM authors who actually are familiar w/ how
this actually works at the core.
> Under the heading of "syntax errors", I would include multiple EAPI
> declarations. My response to Brian is that portage should not try to
> outguess or fix or override an obviously broken ebuild. It should
> return an error message (in this case "Multiple EAPI declarations not
> allowed") and then halt. It is the ebuild-writer's job to come up with
> a syntactically correct ebuild.
And it's the PMs responsibility to enforce the rules of the
environment; there in is part of the problem- portage is generally
pretty lax about any form of strictness there, and has historically
been that way. Even if one couldn't just point at portage, there
still would be the problem of 3 different managers all needing to
enforce the same tricky environment restrictions.
Leaving it such that the PM has to enforce things like "don't have
multiple EAPI assignments" means by default, one of them isn't going
to... leading to the ebuilds breaking... specifically the common case
being the ebuild becoming acclimated to some quirk of portage. EAPI
was started to try and address that sensitivity (including rolling out
new features), and the literal history of EAPI has involved dealing w/
quirks of portages past behaviour- including pre EAPI0.
Generally speaking, the less ways something can be screwed up means
less ways something *will* be screwed up.
My point was that this can be pretty easily screwed up, and isn't as
simple to enforce as people seem to think- that's not counting just
flat out issues w/ the actual usage of it.
~brian
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 1:42 ` Brian Harring
@ 2012-03-14 2:05 ` Zac Medico
2012-03-14 2:23 ` Michael Orlitzky
2012-03-14 2:38 ` Brian Harring
0 siblings, 2 replies; 65+ messages in thread
From: Zac Medico @ 2012-03-14 2:05 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 06:42 PM, Brian Harring wrote:
> Leaving it such that the PM has to enforce things like "don't have
> multiple EAPI assignments" means by default, one of them isn't going
> to... leading to the ebuilds breaking... specifically the common case
> being the ebuild becoming acclimated to some quirk of portage.
My intention is for PMS to specify the search algorithm that's used to
probe the EAPI, and also for it to specify that package managers must
treat an ebuild as invalid if the probed EAPI is not identical to the
one that's obtained from bash. If all package managers adhere strictly
to these two requirements, then we won't have any incompatibilities
between package managers here.
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 2:05 ` Zac Medico
@ 2012-03-14 2:23 ` Michael Orlitzky
2012-03-14 2:36 ` Zac Medico
2012-03-14 2:38 ` Brian Harring
1 sibling, 1 reply; 65+ messages in thread
From: Michael Orlitzky @ 2012-03-14 2:23 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 10:05 PM, Zac Medico wrote:
> On 03/13/2012 06:42 PM, Brian Harring wrote:
>> Leaving it such that the PM has to enforce things like "don't have
>> multiple EAPI assignments" means by default, one of them isn't going
>> to... leading to the ebuilds breaking... specifically the common case
>> being the ebuild becoming acclimated to some quirk of portage.
>
> My intention is for PMS to specify the search algorithm that's used to
> probe the EAPI, and also for it to specify that package managers must
> treat an ebuild as invalid if the probed EAPI is not identical to the
> one that's obtained from bash. If all package managers adhere strictly
> to these two requirements, then we won't have any incompatibilities
> between package managers here.
Someone should really throw up a table on wiki.g.o with a comparison of
the proposed methods. IIRC, the pros/cons of this in contrast to GLEP 55
are something like,
Pro:
* We don't need to change the filename, and "ebuild" is nice
* GLEP 55 pissed people off, and was already rejected
* Some people think the EAPI rightfully belongs in the ebuild
Cons:
* New features can't be implemented immediately because PMs
have to catch up first.
* Slight performance hit
* Old package managers on out-of-date systems will barf on it
* It involves using a magic identifier, e.g. a comment. Magic is
bad, and the fact that messing with a comment can break your PM
is counter-intuitive.
* Some people think the EAPI rightfully belongs in the filename
and the last one is worth the most points to everyone anyway.
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 2:23 ` Michael Orlitzky
@ 2012-03-14 2:36 ` Zac Medico
2012-03-14 2:38 ` Michael Orlitzky
0 siblings, 1 reply; 65+ messages in thread
From: Zac Medico @ 2012-03-14 2:36 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 07:23 PM, Michael Orlitzky wrote:
> Someone should really throw up a table on wiki.g.o with a comparison of
> the proposed methods.
We've got one already:
http://wiki.gentoo.org/wiki/Alternate_EAPI_mechanisms
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 2:36 ` Zac Medico
@ 2012-03-14 2:38 ` Michael Orlitzky
0 siblings, 0 replies; 65+ messages in thread
From: Michael Orlitzky @ 2012-03-14 2:38 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 10:36 PM, Zac Medico wrote:
> On 03/13/2012 07:23 PM, Michael Orlitzky wrote:
>> Someone should really throw up a table on wiki.g.o with a comparison of
>> the proposed methods.
>
> We've got one already:
>
> http://wiki.gentoo.org/wiki/Alternate_EAPI_mechanisms
>
*facepalm*
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 2:05 ` Zac Medico
2012-03-14 2:23 ` Michael Orlitzky
@ 2012-03-14 2:38 ` Brian Harring
2012-03-14 2:47 ` Zac Medico
1 sibling, 1 reply; 65+ messages in thread
From: Brian Harring @ 2012-03-14 2:38 UTC (permalink / raw
To: Zac Medico; +Cc: gentoo-dev
On Tue, Mar 13, 2012 at 07:05:57PM -0700, Zac Medico wrote:
> On 03/13/2012 06:42 PM, Brian Harring wrote:
> > Leaving it such that the PM has to enforce things like "don't have
> > multiple EAPI assignments" means by default, one of them isn't going
> > to... leading to the ebuilds breaking... specifically the common case
> > being the ebuild becoming acclimated to some quirk of portage.
>
> My intention is for PMS to specify the search algorithm that's used to
> probe the EAPI, and also for it to specify that package managers must
> treat an ebuild as invalid if the probed EAPI is not identical to the
> one that's obtained from bash.
*Now* is when you should be applying your KISS wikipedia links
(moreso, the principle applied to your proposal).
What you're talking about is requiring PMs to monitor what occured
and bail- rather than precluding it from even occuring. I repeat; try
to spot the situation and make things blow up, rather than disallowing
it from occuring in the first place.
It's really that simple; this is why the "grep the assignment" out of
the source is at its core, a well intentioned but fundamentally bad
idea. It's glue on a bad situation rather than just removing the bad
situation.
> If all package managers adhere strictly
> to these two requirements, then we won't have any incompatibilities
> between package managers here.
You're missing a lot of the point here; defining some search algo is
basically screwed at its core due to the flexibility of bash. Simple
example:
if [ "$PV" -eq 9999 ]; then
EAPI=3
else
EAPI=2
fi
The flexibility of bash means that your attempt to enforce simplistic
rules like "it must be greppable" are at loggerheads; if the rules
were "last is the one thats used", then I just invert the if check.
Yep, the above is stupid code. Frankly, the sort of stupid code
I'd expect out of a newbie ebuild dev. The EAPI bit there is
synthetic, but that sort of construct (putting everything into a
single file, then using symlinks to expose differing versions) is out
in the wild and used.
The fact that potential exists is a flat out sign the approach is
broken. Worse, it's a way to trip up people- specifically new devs
who don't know fun rules like "the PM has this lovely search algo for
getting EAPI that you must abide by".
~brian
^ permalink raw reply [flat|nested] 65+ messages in thread
* Re: [gentoo-dev] RFD : .ebuild is only bash
2012-03-14 2:38 ` Brian Harring
@ 2012-03-14 2:47 ` Zac Medico
0 siblings, 0 replies; 65+ messages in thread
From: Zac Medico @ 2012-03-14 2:47 UTC (permalink / raw
To: gentoo-dev
On 03/13/2012 07:38 PM, Brian Harring wrote:
> On Tue, Mar 13, 2012 at 07:05:57PM -0700, Zac Medico wrote:
>> If all package managers adhere strictly
>> to these two requirements, then we won't have any incompatibilities
>> between package managers here.
>
> You're missing a lot of the point here; defining some search algo is
> basically screwed at its core due to the flexibility of bash. Simple
> example:
>
> if [ "$PV" -eq 9999 ]; then
> EAPI=3
> else
> EAPI=2
> fi
>
> The flexibility of bash means that your attempt to enforce simplistic
> rules like "it must be greppable" are at loggerheads; if the rules
> were "last is the one thats used", then I just invert the if check.
>
> Yep, the above is stupid code. Frankly, the sort of stupid code
> I'd expect out of a newbie ebuild dev. The EAPI bit there is
> synthetic, but that sort of construct (putting everything into a
> single file, then using symlinks to expose differing versions) is out
> in the wild and used.
>
> The fact that potential exists is a flat out sign the approach is
> broken. Worse, it's a way to trip up people- specifically new devs
> who don't know fun rules like "the PM has this lovely search algo for
> getting EAPI that you must abide by".
It won't be a problem because the package manager can reject the ebuild
as soon as the dev tries to execute it the first time, and it will refer
the dev to the section of PMS that specifies the search algorithm.
As for ebuilds in the wild that already do stuff like that, it's not a
problem if we only require the search algorithm to work starting with
EAPI 5.
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 65+ messages in thread
end of thread, other threads:[~2012-03-14 2:47 UTC | newest]
Thread overview: 65+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAATnKFD=9VEkpUcABbhHbAu96Qn+dP+YEuUu2YCqDUNKUxe+Cw@mail.gmail.com>
2012-03-12 15:57 ` [gentoo-dev] RFD : .ebuild is only bash Kent Fredric
2012-03-12 15:59 ` Ciaran McCreesh
2012-03-12 16:51 ` Rich Freeman
2012-03-12 17:05 ` Ulrich Mueller
2012-03-12 17:12 ` Ciaran McCreesh
2012-03-12 17:17 ` Michael Orlitzky
2012-03-12 17:22 ` Ciaran McCreesh
2012-03-12 17:30 ` Zac Medico
2012-03-12 17:22 ` Zac Medico
2012-03-12 18:00 ` Ulrich Mueller
2012-03-12 18:04 ` Ciaran McCreesh
2012-03-12 18:17 ` Ulrich Mueller
2012-03-12 18:28 ` Ciaran McCreesh
2012-03-12 18:50 ` Ulrich Mueller
2012-03-12 18:58 ` Ian Stakenvicius
2012-03-12 19:01 ` Ciaran McCreesh
2012-03-12 19:49 ` Ulrich Mueller
2012-03-12 20:10 ` Ciaran McCreesh
2012-03-12 20:21 ` James Broadhead
2012-03-12 21:14 ` Ulrich Mueller
2012-03-12 21:28 ` Kent Fredric
2012-03-12 21:49 ` Alec Warner
2012-03-12 22:02 ` Mike Gilbert
2012-03-12 22:37 ` Kent Fredric
2012-03-12 22:53 ` Alec Warner
2012-03-13 6:31 ` [gentoo-dev] " Duncan
2012-03-12 22:55 ` [gentoo-dev] " James Broadhead
2012-03-13 6:06 ` Ulrich Mueller
2012-03-12 22:06 ` James Broadhead
2012-03-12 22:17 ` Alec Warner
2012-03-12 19:00 ` Ciaran McCreesh
2012-03-12 19:38 ` Ulrich Mueller
2012-03-12 19:42 ` Ciaran McCreesh
2012-03-13 20:33 ` Brian Harring
2012-03-13 0:51 ` Patrick Lauer
2012-03-12 18:29 ` Kent Fredric
2012-03-13 4:31 ` Brian Harring
2012-03-13 5:14 ` Kent Fredric
2012-03-13 6:22 ` Brian Harring
2012-03-13 16:10 ` Wulf C. Krueger
2012-03-13 19:08 ` Brian Harring
2012-03-13 7:11 ` [gentoo-dev] " Duncan
2012-03-12 18:01 ` [gentoo-dev] " Michał Górny
2012-03-12 17:53 ` Ulrich Mueller
2012-03-12 18:03 ` Kent Fredric
2012-03-13 0:46 ` Patrick Lauer
2012-03-13 6:41 ` Walter Dnes
2012-03-13 6:56 ` Kent Fredric
2012-03-13 7:03 ` Brian Harring
2012-03-13 8:50 ` Ulrich Mueller
2012-03-13 15:52 ` Zac Medico
2012-03-13 7:30 ` Ciaran McCreesh
2012-03-14 0:29 ` Walter Dnes
2012-03-14 0:48 ` Michael Orlitzky
2012-03-14 1:42 ` Brian Harring
2012-03-14 2:05 ` Zac Medico
2012-03-14 2:23 ` Michael Orlitzky
2012-03-14 2:36 ` Zac Medico
2012-03-14 2:38 ` Michael Orlitzky
2012-03-14 2:38 ` Brian Harring
2012-03-14 2:47 ` Zac Medico
2012-03-12 16:56 ` Ulrich Mueller
2012-03-12 18:04 ` Michał Górny
2012-03-13 6:29 ` Richard Yao
2012-03-13 11:52 ` Rich Freeman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox