On Fri, 20 Feb 2009 00:11:32 +0300
Peter Volkov <firstname.lastname@example.org> wrote:
> That said, technically there are other solutions for this problem,
> e.g. 1) it is possible to read one line of defined format from any
> file 2) it is possible to make eapi inside ebuild name
> (foo-1.0-eapi2.ebuild), but not as extension. Any solution, even
> breaking compatibility solution, we could already start using if we
> had forgotten about GLEP 55 long time ago...
I really don't understand why foo-0.1.eapi3.ebuild is considered an
acceptable solution and foo-0.1.ebuild.eapi3 is not.
They have the same advantages, arguments about aesthetics aside, and
seem to be a much cleaner solution than any other that has been
proposed. But the former has one distinct disadvantage that the latter
does not: any currently released version of portage does not work
correctly with ebuilds having version suffixes it does not recognize.
For example, you cannot currently create a Manifest in a package
directory containing a file named package-1.0.eapi3.ebuild.
We can modify portage, of course, to recognize this suffix, and then
wait long enough for that release to trickle down. But later, if we
want to add another suffix, -scm perhaps, or something we
haven't considered yet, we again have to go through the same process. I
thought the reason we introduced EAPI was to free us from this.
It may seem a minor gripe, but it doesn't take much imagination to come
up with other scenarios where this could become a bigger problem.
With a format such as .ebuild.eapiX we would avoid these issues.
Portage (without any modifications) will not recognize these files as
ebuilds (which is exactly the behaviour we want if it doesn't
understand the EAPI), so the format of the version string is moot. We
could introduce -scm (or whatever) in EAPI X, and be able to use it
Your argument that the .ebuild file suffix is required by convention
does not hold water. Ebuilds are not bash scripts. They are
specialized scripts for package management that happen to be written
in bash ;). You make the point yourself that if you wanted to implement
a new ebuild format or change the language ebuilds are written in, you
would change the extension to something else. I'd like to argue that
we've already done so twice and I hear number 3 is coming real soon now.
> Putting GLEP 55 infinite number of times on council agenda makes me
> feel that this issue has something common with perpetuum mobile. At
> least I'd like similar resolution from our council as the Royal
> Academy of Sciences in Paris did in 1775. It's hard to tell anything
> new about GLEP 55 but people still don't like it, so, council,
> please, ban it forever and let something else arise.
I'm sorry, but until you come up with a better reason than "it's
tradition", I'm afraid this will continue to be submitted indefinitely.
You will have to provide technical objections why this approach is
unacceptable before anyone can come up with something that is.
Here is an example, to get you started:
If a Manifest is generated using a portage version that supports an
EAPI and recognizes a package atom containing a version suffix that
was added in that EAPI as an ebuild and thus categorizes it as EBUILD in
the Manifest, do portage versions that do not support the EAPI have
trouble when they see the entry marked EBUILD for a package atom they
think is invalid?
gcc-porting, by design, by neglect
treecleaner, for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662