--- xml/htdocs/proj/en/glep/glep-0055.html 2009/05/17 17:00:30 1.4 +++ xml/htdocs/proj/en/glep/glep-0055.html 2009/05/17 20:56:53 1.5 @@ -11,8 +11,8 @@ /* :Author: David Goodger :Contact: goodger@users.sourceforge.net -:date: $Date: 2009/05/17 17:00:30 $ -:version: $Revision: 1.4 $ +:date: $Date: 2009/05/17 20:56:53 $ +:version: $Revision: 1.5 $ :copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the PEP HTML output of Docutils. @@ -270,9 +270,9 @@ Title:Use EAPI-suffixed ebuilds (.ebuild-EAPI) -Version:1.3 +Version:1.4 -Last-Modified:2009/05/17 15:50:27 +Last-Modified:2009/05/17 17:00:30 Author:Piotr JaroszyƄski <peper at gentoo.org> @@ -518,6 +518,10 @@ second is ensuring that all the ebuilds for a single category/package-version are equivalent, i.e. installing any of them has exactly the same effect on a given system.

+

Also note that it is not a new restriction. It is already possible to illegally +have multiple versions with different EAPIs as e.g. 1.0 == 1.00 == 1.00-r0 +and hence you could have foo-1.0.ebuild with EAPI X and foo-1.00.ebuild +with EAPI Y.

Summary of ideas

@@ -564,6 +568,43 @@ picture package managers need EAPI to parse the ebuild's version. That means that merely picking the best version of a package requires loading EAPI (from cache or the ebuild) for each available ebuild.

+

Here is more or less how the package manager figures out the best available +version for a package with N versions available.

+
+ +
+

The difference is in for how many versions the package manager needs to hit +cache. With EAPI in the ebuild it needs to do that for all versions, with EAPI +in the filename it depends on versions visibility. +For example, package foo has versions 1, 2, 3, 4, 5 and 6. 6 is masked, 5 is +~arch and 1,2,3 and 4 are arch. Say, the user accepts only arch for this +package. With EAPI in the filename it will read metadata only for versions +6, 5 and 4. With EAPI in the ebuild it needs to load metadata for all versions.

+

It's hard to say what's the avarage case, but surely the worst case scenario +(when only the lowest version is visible) is uncommon.

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

@@ -621,7 +662,7 @@