diff options
author | Ciaran McCreesh <ciaranm@ciaranm.org> | 2007-10-18 14:08:34 +0000 |
---|---|---|
committer | Ciaran McCreesh <ciaranm@ciaranm.org> | 2007-10-18 14:08:34 +0000 |
commit | 8957745aae9a629e0d91793573b9b6f8b145880c (patch) | |
tree | f3ed619d1e48f795c82d73172c75c1228f3565f5 | |
parent | Formatting (diff) | |
download | pms-8957745aae9a629e0d91793573b9b6f8b145880c.tar.gz pms-8957745aae9a629e0d91793573b9b6f8b145880c.tar.bz2 pms-8957745aae9a629e0d91793573b9b6f8b145880c.zip |
Add EAPI 1
git-svn-id: http://svn.repogirl.net/pms/trunk@169 a05a4626-2124-0410-b604-e6c5abf33261
-rw-r--r-- | dependencies.tex | 11 | ||||
-rw-r--r-- | ebuild-functions.tex | 16 | ||||
-rw-r--r-- | ebuild-vars.tex | 4 | ||||
-rw-r--r-- | introduction.tex | 25 |
4 files changed, 51 insertions, 5 deletions
diff --git a/dependencies.tex b/dependencies.tex index d92989d..7b09e7a 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -50,7 +50,7 @@ In particular, note that whitespace is not optional. \subsection{Package Dependency Specifications} -In EAPI-0, a package dependency can be in one of the following base formats: +A package dependency can be in one of the following base formats: \begin{bulletlist} \item A simple \t{category/package} name. @@ -58,6 +58,9 @@ In EAPI-0, a package dependency can be in one of the following base formats: followed by a version specification. \end{bulletlist} +In EAPI 1, either of the above formats may additionally be suffixed by a \t{:slot} +restriction. + The following operators are available: \begin{description} @@ -74,9 +77,9 @@ The following operators are available: \item[\t{>}] Strictly greater than the specified version. \end{description} -If the operator is prefixed with an exclamation mark, the named dependency is a block -rather than a requirement---that is to say, the specified package must not be -installed, except with the following exceptions: +If the specification is prefixed with an exclamation mark, the named dependency is a block rather +than a requirement---that is to say, the specified package must not be installed, except with the +following exceptions: \begin{bulletlist} \item Blocks on a package provided by the ebuild do not count. \label{provided-blocks} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 9139bd9..2fafeef 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -53,7 +53,8 @@ src_unpack() { The \t{src\_compile} function configures the package's build environment and builds the package. The initial working directory must be \t{S} if that exists, falling back to \t{WORKDIR} otherwise. -The default implementation used when the ebuild lacks the \t{src\_compile} function is: + +For EAPI 0, the default implementation used when the ebuild lacks the \t{src\_compile} function is: \begin{lstlisting} src_compile() { @@ -66,6 +67,19 @@ src_compile() { } \end{lstlisting} +For EAPI 1, the default implementation used when the ebuild lacks the \t{src\_compile} function is: + +\begin{lstlisting} +src_compile() { + if [ -x ${ECONF_SOURCE:-.}/configure ]; then + econf + fi + if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then + emake || die "emake failed" + fi +} +\end{lstlisting} + \subsection{src\_test} \label{src-test-function} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 9e14a30..f10d28d 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -40,6 +40,10 @@ All ebuilds must define at least the following variables: must list only flags used by the ebuild itself. Any eclass that works with \t{USE} flags must also set \t{IUSE}, listing only the variables used by that eclass. The package manager is responsible for merging these values. + + In EAPI 1, any use flag name in \t{IUSE} may be prefixed by at most one of a plus or a minus + sign. If such a prefix is present, the package manager may use it as a suggestion as to the + default value of the use flag if no other configuration overrides it. \item[KEYWORDS] A whitespace separated list of keywords for the ebuild. Each token must be a valid keyword name, as per section \ref{keyword-names}. May include $-*$, which indicates that the package will only work on explicitly listed archs. May include $-arch$, diff --git a/introduction.tex b/introduction.tex index 80c94b7..e54e67a 100644 --- a/introduction.tex +++ b/introduction.tex @@ -30,4 +30,29 @@ incompatibilities with any particular repository. Text in \t{teletype} is used for filenames or variable names. \i{Italic} text is used for terms with a particular technical meaning in places where there may otherwise be ambiguity. +\section{EAPIs} + +An EAPI can be thought of as a 'version' of this specification to which a package conforms. An EAPI +value is a string (all EAPIs defined by this specification currently use an integer, but package +managers must not assume that this will hold in the future, and package managers must not assume +that any kind of comparison other than equality between EAPI values makes sense). There are two +EAPIs 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'. +\end{description} + +Except where explicitly noted, everything in this specification applies to both EAPIs. + +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. + +EAPIs whose value consists purely of an integer are reserved for future versions of this +specification. EAPIs whose value starts with the string \t{paludis-} are reserved for experimental +use by the Paludis package manager. + % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : |