summaryrefslogtreecommitdiff
blob: f749f1e49eb7f80f6bbf191a74dbdbe1c40f4969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
\chapter{EAPIs}

\section{Definition}

An EAPI can be thought of as a `version' of this specification to which a package conforms. An EAPI
value is a string, and is part of an ebuild's metadata.

If a package manager encounters a package version with an unrecognised EAPI, it must not attempt to
perform any operations upon it. It could, for example, ignore the package version entirely (although
this can lead to user confusion), or it could mark the package version as masked. A package manager
must not use any metadata generated from a package with an unrecognised EAPI.

The package manager must not attempt to perform any kind of comparison test other than equality upon
EAPIs.

EAPIs are also used for profile directories, as described in section~\ref{sec:profile-eapi}.

\section{Defined EAPIs}

The following EAPIs are defined by this specification:

\begin{description}
\item[0] The `original' base EAPI.
\item[1] EAPI `1' contains a number of extensions to EAPI `0'. Except where explicitly noted, it is
    in all other ways identical to EAPI `0'.
\IFKDEBUILDELSE
{
    \item[kdebuild-1] A series of extensions to EAPI `1' used by the GenKDEsvn project and
        formerly by the Gentoo KDE project. Except where
        explicitly noted, it is in all other ways identical to EAPI `1'.
}{
}
\item[2] EAPI `2' contains a number of extensions to EAPI `1'. Except where explicitly noted, it is
    in all other ways identical to EAPI `1'.
\item[3] EAPI `3' contains a number of extensions to EAPI `2'. Except where explicitly noted, it is
    in all other ways identical to EAPI `2'.
\end{description}

\ifthenelse{\boolean{ENABLE-ALL-OPTIONS}\and\not\boolean{TEX4HT-HACKS}}
{
    \note We're not sure whether \t{kdebuild-1} will end up in the final version of this
    specification. For now, it's included but can easily be hidden using a switch in the master
    \t{pms.tex} file. To make editing easier, we also have a mode that shows the document both with
    and without the \t{kdebuild-1} stuff enabled. You currently have that mode enabled---
    \IFKDEBUILDELSE{
        text only shown when \t{kdebuild-1} is enabled looks like this,
    }{
        and text only shown when it is disabled looks like this.
    }
}{
}

Except where explicitly noted, everything in this specification applies to all of the above EAPIs.

\section{Reserved EAPIs}

\begin{compactitem}
\item EAPIs whose value consists purely of an integer are reserved for future versions of this
    specification.
\item EAPIs whose value starts with the string \t{paludis-} are reserved for experimental
    use by the Paludis package manager.
\item EAPIs whose value starts with the string \t{kdebuild-} are reserved for the GenKDEsvn
    project, and were formerly used by the Gentoo KDE project.
\end{compactitem}

% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "pms"
%%% End: