--- xml/htdocs/proj/en/glep/glep-0055.html 2010/04/07 22:12:52 1.6 +++ xml/htdocs/proj/en/glep/glep-0055.html 2012/05/09 19:37:01 1.7 @@ -4,7 +4,7 @@ - + GLEP 55 -- Use EAPI-suffixed ebuilds (.ebuild-EAPI) @@ -33,7 +33,7 @@ Author:Piotr JaroszyƄski <peper at gentoo.org> -Status:Draft +Status:Rejected Type:Standards Track @@ -49,28 +49,29 @@

Contents

@@ -79,13 +80,19 @@ sobers us again."

—Alexander Pope, An Essay on Criticism

+
+

Status

+

This GLEP was voted down by the Council in its meeting on 2010-08-23. +The Council rejected it again in its meeting on 2012-05-08, in favour +of parsing the EAPI from the bash assignment statement in ebuilds.

+
-

Abstract

+

Abstract

This GLEP proposes usage of EAPI-suffixed file extensions for ebuilds (for example, foo-1.2.3.ebuild-1).

-

Problem

+

Problem

The current way of specifying the EAPI in ebuilds is flawed. In order to get the EAPI the package manager needs to source the ebuild, which itself needs the EAPI in the first place. Otherwise it imposes a serious limitation, namely every ebuild, @@ -104,11 +111,11 @@

-

Current behaviour

+

Current behaviour

Following subsections show what happens if you introduce any of the mentioned changes in an ebuild and try to install it with portage 2.1.6.13.

-

Incompatible change of inherit (e.g. make it look in the package dir too)

+

Incompatible change of inherit (e.g. make it look in the package dir too)

sys-apps/foo-1.ebuild:

 EAPI="5"
@@ -146,7 +153,7 @@
 - might be pretty confusing to users.

-

New global scope function

+

New global scope function

sys-apps/foo-1.ebuild:

 EAPI="5"
@@ -171,7 +178,7 @@
 

Not that bad as user is advised to upgrade portage.

-

New version format

+

New version format

sys-apps/foo-2-rc1.ebuild:

 Invalid ebuild name: /var/lib/gentoo/repositories/peper/sys-apps/foo/foo-2-rc1.ebuild
@@ -181,7 +188,7 @@
 

Not the best error message, especially if there are lots of them.

-

Use newer bash features

+

Use newer bash features

|& is a new type of redirection added in bash-4. It cannot be used even in local scope as bash still parses the whole ebuild.

sys-apps/foo-1.ebuild:

@@ -218,7 +225,7 @@
-

Abstract solution

+

Abstract solution

A solution to this problem has to lift those limitations and the only way to do it is to make the EAPI of an ebuild available to the package managers in a way that doesn't require them to source the ebuild. Another important requirement is @@ -228,7 +235,7 @@ issues listed on the common portage problems page - [2] - show.

-

Proposed solution

+

Proposed solution

The proposed solution is to use EAPI-suffixed file extensions for ebuilds. This allows package managers to trivially read the EAPI from the ebuild filename. It is also backwards compatible, because currently ebuilds are recognised by the @@ -236,7 +243,7 @@ the package managers.

-

Specification

+

Specification

Ebuild filename extension syntax: ebuild[-<EAPI>], where [] denotes an optional part, and <EAPI> is the EAPI of the ebuild.

The EAPI used by the ebuild is the EAPI included in the filename if it is set. @@ -281,9 +288,9 @@ with EAPI Y.

-

Summary of ideas

+

Summary of ideas

-

EAPI-suffixed ebuilds (proposed solution)

+

EAPI-suffixed ebuilds (proposed solution)

Properties:
    @@ -295,7 +302,7 @@

    Some say it is clear and simple, others that it is ugly and unintuitive.

-

EAPI in the filename with one-time extension change

+

EAPI in the filename with one-time extension change

One of the proposed filename formats: <PKG>-<VER>.eapi-<EAPI>.eb

@@ -310,7 +317,7 @@

Some say it is better because the extension is static.

-

Easily fetchable EAPI inside the ebuild

+

Easily fetchable EAPI inside the ebuild

Properties:
    @@ -364,7 +371,7 @@ (when only the lowest version is visible) is uncommon.

-

Easily fetchable EAPI inside the ebuild and one-time extension change

+

Easily fetchable EAPI inside the ebuild and one-time extension change

Properties:
    @@ -378,7 +385,7 @@ because of the arbitrary format restrictions in what is a bash script otherwise.

-

Use different subdirectories for different EAPIs, i.e. cat/pkg/eapiX/

+

Use different subdirectories for different EAPIs, i.e. cat/pkg/eapiX/

Properties:
    @@ -393,7 +400,7 @@
-

References

+

References

@@ -410,7 +417,7 @@
@@ -419,7 +426,7 @@