public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-07 13:27 Ciaran McCreesh
  0 siblings, 0 replies; 38+ messages in thread
From: Ciaran McCreesh @ 2012-05-07 13:27 UTC (permalink / raw
  To: gentoo-commits

commit:     7e269fed413aaae2ccfd7002cd17e443533c3611
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Mon May  7 13:24:47 2012 +0000
Commit:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
CommitDate: Mon May  7 13:24:47 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=7e269fed

find is not sed

---
 ebuild-env-commands.tex |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ebuild-env-commands.tex b/ebuild-env-commands.tex
index 2701122..1129fa6 100644
--- a/ebuild-env-commands.tex
+++ b/ebuild-env-commands.tex
@@ -29,7 +29,7 @@ The following commands must always be available in the ebuild environment:
 \item \t{sed} must be available, and must support all forms of invocations valid for GNU sed
     version 4 or later.
 \item \t{patch} must be available, and must support all inputs valid for GNU patch.
-\item \t{find} must be available, and must support all forms of invocations valid for GNU sed
+\item \t{find} must be available, and must support all forms of invocations valid for GNU find
     version 4.4 or later. Only for EAPIs listed in table~\ref{tab:system-commands-table} as
     requiring GNU find. \featurelabel{gnu-find}
 \end{compactitem}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-08 20:09 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-08 20:09 UTC (permalink / raw
  To: gentoo-commits

commit:     26fd47f592bf5e4419e4b34e84761d8b003e83c4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May  8 20:13:08 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May  8 20:13:08 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=26fd47f5

Merge branch 'master' into eapi-5


 ebuild-vars.tex |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)



^ permalink raw reply	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-10  7:00 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-10  7:00 UTC (permalink / raw
  To: gentoo-commits

commit:     2ecd7ef2714af39bd9066052e353be4b2becc11a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 06:56:50 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 10 06:56:50 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=2ecd7ef2

new* commands can read from standard input in EAPI 5.

See bug 263565.

---
 eapi-differences.tex |    4 ++++
 pkg-mgr-commands.tex |   23 +++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4cc1c3a..2c8d385 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -160,6 +160,9 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
     N/A & N/A & No & No & Yes & Yes \\
 
+\t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
+    No & No & No & No & Ni & Yes \\
+
 Controllable compression & \compactfeatureref{controllable-compress} &
     No & No & No & No & Yes & Yes \\
 
@@ -272,6 +275,7 @@ EAPI 5 is EAPI 4 with the following changes:
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
 \item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
+\item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 9fcb8de..711d295 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -387,8 +387,10 @@ that can be passed to \t{dohtml} are as follows:
 \item[fperms] Acts as for \t{chmod}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
-\item[newbin] As for \t{dobin}, but takes two parameters. The first is the file to install; the
-    second is the new filename under which it will be installed.
+\item[newbin] \featurelabel{newfoo-stdin} As for \t{dobin}, but takes two parameters. The first is
+    the file to install; the second is the new filename under which it will be installed. In EAPIs
+    specified by table~\ref{tab:newfoo-stdin-table}, standard input is read when the first
+    parameter is \t{-} (a hyphen). In this case, it is an error if standard input is a terminal.
 
 \item[newconfd] As for \t{doconfd}, but takes two parameters as for \t{newbin}.
 
@@ -470,6 +472,23 @@ that can be passed to \t{dohtml} are as follows:
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting stdin for \t{new*} commands} \label{tab:newfoo-stdin-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsubsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees, all relative to \t{\$\{ED\}} in
 offset-prefix aware EAPIs and relative to \t{\$\{D\}} in offset-prefix agnostic EAPIs, used by the



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-10  7:17 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-10  7:17 UTC (permalink / raw
  To: gentoo-commits

commit:     ccca5ee5665f30d606a6cae599a95e0006405177
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 07:20:59 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 10 07:20:59 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=ccca5ee5

Reformat paragraph.

---
 ebuild-vars.tex |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index b164d66..559291d 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -136,11 +136,11 @@ the assignment statement must match the following regular expression:
 ^[ \t]*EAPI=(['"]?)([A-Za-z0-9+_.-]*)\1[ \t]*(#.*)?$
 \end{verbatim}
 
-The package manager must determine the EAPI of an ebuild by parsing its first non-blank
-and non-comment line, using above regular expression. If a recognised EAPI has been determined
-such, then the package manager must make sure that the \t{EAPI} value obtained by sourcing the
-ebuild with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as
-invalid if these values are different.
+The package manager must determine the EAPI of an ebuild by parsing its first non-blank and
+non-comment line, using above regular expression. If a recognised EAPI has been determined such,
+then the package manager must make sure that the \t{EAPI} value obtained by sourcing the ebuild
+with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if
+these values are different.
 
 \subsection{\t{RDEPEND} value}
 \label{sec:rdepend-depend}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-10  7:17 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-10  7:17 UTC (permalink / raw
  To: gentoo-commits

commit:     460f6892c9f94f78d277c513a57dd7ca9b1eab2f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 07:19:08 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 10 07:19:08 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=460f6892

Make parsing of the EAPI assignment mandatory.

---
 ebuild-vars.tex |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 86c354e..b164d66 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -136,7 +136,7 @@ the assignment statement must match the following regular expression:
 ^[ \t]*EAPI=(['"]?)([A-Za-z0-9+_.-]*)\1[ \t]*(#.*)?$
 \end{verbatim}
 
-The package manager may optionally determine the EAPI of an ebuild by parsing its first non-blank
+The package manager must determine the EAPI of an ebuild by parsing its first non-blank
 and non-comment line, using above regular expression. If a recognised EAPI has been determined
 such, then the package manager must make sure that the \t{EAPI} value obtained by sourcing the
 ebuild with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-10  7:20 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-10  7:20 UTC (permalink / raw
  To: gentoo-commits

commit:     051d27e38e473519f740365bebc575e6ec2f642e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 07:24:42 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 10 07:24:42 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=051d27e3

Knights who say Ni? Fix typo.

---
 eapi-differences.tex |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2c8d385..d4c4611 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -161,7 +161,7 @@ Most utilities die & \compactfeatureref{die-on-failure} &
     N/A & N/A & No & No & Yes & Yes \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & No & No & Ni & Yes \\
+    No & No & No & No & No & Yes \\
 
 Controllable compression & \compactfeatureref{controllable-compress} &
     No & No & No & No & Yes & Yes \\



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-13  7:30 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-13  7:30 UTC (permalink / raw
  To: gentoo-commits

commit:     e69ae2bd1176549f45123d5b89a5276bd443dfd7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat May 12 18:01:58 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May 12 18:01:58 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=e69ae2bd

Merge branch 'master' into eapi-5


 ebuild-functions.tex |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)



^ permalink raw reply	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-13  7:48 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-13  7:48 UTC (permalink / raw
  To: gentoo-commits

commit:     1a3cff4237a0ee08f445e7b7fa9d0b5d5d3f2d7a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 13 07:52:05 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 13 07:52:05 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=1a3cff42

src_test supports parallel tests in EAPI 5.

---
 eapi-differences.tex |    4 ++++
 ebuild-functions.tex |   24 ++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d4c4611..2b2ae80 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -94,6 +94,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{src\_compile} style & \compactfeatureref{src-compile} &
     0 & 1 & 2 & 2 & 2 & 2 \\
 
+Parallel tests & \compactfeatureref{parallel-tests} &
+    No & No & No & No & No & Yes \\
+
 \t{src\_install} style & \compactfeatureref{src-install} &
     no-op & no-op & no-op & no-op & 4 & 4 \\
 
@@ -268,6 +271,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \begin{compactitem}
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
+\item \t{src\_test} supports parallel tests, \featureref{parallel-tests}.
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 318a732..9836e33 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -273,13 +273,33 @@ provided.
 
 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\_test} function must, if tests are
-enabled, run \t{emake -j1 check} if and only if such a target is available, or if not run
-\t{emake -j1 test} if and only if such a target is available. In both cases, if \t{emake} returns
+enabled, run \t{emake check} if and only if such a target is available, or if not run
+\t{emake test} if and only if such a target is available. In both cases, if \t{emake} returns
 non-zero the build must be aborted.
 
+\featurelabel{parallel-tests} For EAPIs listed in table~\ref{tab:src-test-table} as not supporting
+parallel tests, the \t{emake} command must be called with option \t{-j1}.
+
 The \t{src\_test} function may be disabled by \t{RESTRICT}. See section~\ref{sec:restrict}. It may
 be disabled by user too, using a PM-specific mechanism.
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{\t{src\_test} behaviour for EAPIs} \label{tab:src-test-table}
+    \begin{tabular}{ l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
+        \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{src\_install}
 \label{sec:src-install-function}
 



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 10:13 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 10:13 UTC (permalink / raw
  To: gentoo-commits

commit:     e212a0dca3c72979d06015e7802c12f037e26d02
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 17 10:17:15 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:17:15 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=e212a0dc

Merge branch 'master' into eapi-5

Conflicts:
	ebuild-vars.tex


 ebuild-vars.tex |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --cc ebuild-vars.tex
index 559291d,29b9dfa..a4586bf
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@@ -133,12 -129,13 +133,13 @@@ once. The assignment must not be preced
  with optional whitespace (spaces or tabs) followed by a \t{\#} character, and the line containing
  the assignment statement must match the following regular expression:
  \begin{verbatim}
- ^[ \t]*EAPI=(['"]?)([A-Za-z0-9+_.-]*)\1[ \t]*(#.*)?$
+ ^[ \t]*EAPI=(['"]?)([A-Za-z0-9+_.-]*)\1[ \t]*([ \t]#.*)?$
  \end{verbatim}
  
 -The package manager may optionally determine the EAPI of an ebuild by parsing its first non-blank
 -and non-comment line, using the above regular expression. If it matches, the EAPI is the substring
 +The package manager must determine the EAPI of an ebuild by parsing its first non-blank and
- non-comment line, using above regular expression. If a recognised EAPI has been determined such,
- then the package manager must make sure that the \t{EAPI} value obtained by sourcing the ebuild
++non-comment line, using the above regular expression. If it matches, the EAPI is the substring
+ matched by the capturing parentheses (\t{0} if empty), otherwise it is \t{0}. For a recognised
+ EAPI, the package manager must make sure that the \t{EAPI} value obtained by sourcing the ebuild
  with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if
  these values are different.
  



^ permalink raw reply	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     4630becfa4c792b96ddd2949536a8ccdba77ec91
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:03:49 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=4630becf

Add \ChangeWhenAddingAnEAPI command.

This gives us an easy way to grep and find every place that needs
updating when we add a new EAPI.

---
 dependencies.tex     |    4 ++++
 eapi-differences.tex |    3 +++
 eapis.tex            |    1 +
 ebuild-env-vars.tex  |    3 +++
 ebuild-functions.tex |    8 ++++++++
 ebuild-vars.tex      |    4 ++++
 merge.tex            |    1 +
 pkg-mgr-commands.tex |   11 +++++++++++
 pms.cls              |    5 +++++
 pms.tex              |    3 +++
 10 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 0f74b3b..54305c5 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -76,6 +76,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 In particular, note that whitespace is not optional.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{SRC\_URI} arrows} \label{tab:uri-arrows-table}
     \begin{tabular}{ l l }
         \toprule
@@ -147,6 +148,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
 
 \note Order is important. The slot restriction must come before use dependencies.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{SLOT} dependencies} \label{tab:slot-deps-table}
     \begin{tabular}{ l l }
         \toprule
@@ -162,6 +164,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies} \label{tab:use-deps-table}
     \begin{tabular}{ l l }
         \toprule
@@ -212,6 +215,7 @@ ignored by the package manager, so long as any blocked package will be uninstall
 strong block must not be ignored. The mapping from one or two exclamation marks to strength is
 described in table~\ref{tab:bang-strength-table}.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{Exclamation mark strengths for EAPIs} \label{tab:bang-strength-table}
     \begin{tabular}{ l l l }
         \toprule

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a451db1..33381e7 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -2,6 +2,7 @@
 
 \note This chapter is informative and for convenience only. Refer to the main text for specifics.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{landscape}
 \newcolumntype{P}[1]{>{\setlength{\rightskip}{0pt plus 1fil}}p{#1}}
 \begin{longtable}{llP{5em}P{5em}P{8em}P{8em}P{8em}}
@@ -235,6 +236,8 @@ EAPI 4 is EAPI 3 with the following changes:
 \item \t{use\_with} and \t{use\_enable} support empty third argument, \featureref{use-with}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{4}
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:

diff --git a/eapis.tex b/eapis.tex
index 5839768..5543988 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -19,6 +19,7 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 The following EAPIs are defined by this specification:
 
+\ChangeWhenAddingAnEAPI{4}
 \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

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 640547c..dc4e648 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -214,6 +214,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting various env variables} \label{tab:env-vars-table}
     \begin{tabular}{ l l l l l l }
         \toprule
@@ -233,6 +234,7 @@ variable.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{ l l l l }
@@ -317,6 +319,7 @@ variable shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall contai
 \subsection{Offset-prefix variables \t{EPREFIX}, \t{EROOT} and \t{ED}}
 \label{sec:offset-vars}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ l l }

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index fe32004..24f7d69 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,6 +44,7 @@ fallback to \t{WORKDIR} is used:
     in \t{DEFINED\_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
     \begin{tabular}{ l l }
         \toprule
@@ -77,6 +78,7 @@ before the next phase is executed.
 
 \t{pkg\_pretend} must not write to the filesystem.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{pkg\_pretend}} \label{tab:pkg-pretend-table}
     \begin{tabular}{ l l }
         \toprule
@@ -131,6 +133,7 @@ implementation does nothing.
 The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in
 section~\ref{sec:s-to-workdir-fallback}.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{src\_prepare}} \label{tab:src-prepare-table}
     \begin{tabular}{ l l }
         \toprule
@@ -166,6 +169,7 @@ src_configure() {
 }
 \end{verbatim}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{src\_configure}} \label{tab:src-configure-table}
     \begin{tabular}{ l l }
         \toprule
@@ -232,6 +236,7 @@ src_compile() {
 }
 \end{verbatim}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{\t{src\_compile} behaviour for EAPIs} \label{tab:src-compile-table}
     \begin{tabular}{ l l }
         \toprule
@@ -298,6 +303,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src\_install} function
 is a no-op.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{\t{src\_install} behaviour for EAPIs} \label{tab:src-install-table}
     \begin{tabular}{ l l }
         \toprule
@@ -372,6 +378,7 @@ that dependencies may not be installed.
 
 \t{pkg\_info} must not write to the filesystem.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{pkg\_info} on non-installed packages} \label{tab:pkg-info-table}
     \begin{tabular}{ l l }
         \toprule
@@ -405,6 +412,7 @@ named \t{default\_}(phase) that behaves as the default implementation for that E
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{default\_} phase functions} \label{tab:default-phase-function-table}
     \begin{tabular}{ l >{\setlength{\rightskip}{0pt plus 1fil}}p{30em} }
         \toprule

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 29b9dfa..0204c3a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -54,6 +54,7 @@ If any of these variables are undefined, or if any of these variables are set to
 the package manager's behaviour is undefined; ideally, an error in one ebuild should not prevent
 operations upon other ebuilds or packages.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults} \label{tab:iuse-defaults-table}
     \begin{tabular}{ l l }
         \toprule
@@ -93,6 +94,7 @@ Ebuilds may define any of the following variables:
     table~\ref{tab:optional-vars-table} as supporting \t{REQUIRED\_USE}.
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
 \label{tab:optional-vars-table}
     \begin{tabular}{ l l l }
@@ -152,6 +154,7 @@ any \t{DEPEND} or \t{RDEPEND} set in an eclass does not change the implicit \t{R
 the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treated as being part of
 \t{RDEPEND}.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} Default} \label{tab:rdepend-depend-table}
     \begin{tabular}{ l l }
         \toprule
@@ -196,6 +199,7 @@ this variable defined, and must treat an empty string as ``this information is n
 \note Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be defined
 based upon any variant condition.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{DEFINED\_PHASES}} \label{tab:defined-phases-table}
     \begin{tabular}{ l l }
         \toprule

diff --git a/merge.tex b/merge.tex
index 8b2648d..846e876 100644
--- a/merge.tex
+++ b/merge.tex
@@ -86,6 +86,7 @@ held under the original image directory.
 In other EAPIs, the behaviour with respect to file modification times
 is undefined.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ l l }

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 37c1b13..c2d8a9e 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -21,6 +21,7 @@ The following commands affect this behaviour:
     table~\ref{tab:commands-die-table} as supporting \t{nonfatal}.
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPI Command Failure Behaviour} \label{tab:commands-die-table}
     \begin{tabular}{ l l l }
         \toprule
@@ -43,6 +44,7 @@ The following commands affect this behaviour:
 \featurelabel{banned-commands} Some commands are banned in some EAPIs. If a banned command is
 called, the package manager must abort the build process indicating an error.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{Banned commands} \label{tab:banned-commands-table}
     \begin{tabular}{ l l l l }
         \toprule
@@ -145,6 +147,7 @@ has returned.
         string \t{disable-dependency-tracking} occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
+    \ChangeWhenAddingAnEAPI{4}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table}
         \begin{tabular}{ l l l }
             \toprule
@@ -407,6 +410,7 @@ that can be passed to \t{dohtml} are as follows:
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}} \label{tab:dodoc-table}
     \begin{tabular}{ l l }
         \toprule
@@ -422,6 +426,7 @@ that can be passed to \t{dohtml} are as follows:
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}} \label{tab:doins-table}
     \begin{tabular}{ l l }
         \toprule
@@ -437,6 +442,7 @@ that can be passed to \t{dohtml} are as follows:
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{ l l l }
@@ -539,6 +545,7 @@ exclusion list. Otherwise, add each argument to the inclusion list. Only availab
 in table~\ref{tab:compression-table} as supporting \t{docompress}.
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting controllable compression} \label{tab:compression-table}
     \begin{tabular}{ l l l }
         \toprule
@@ -582,6 +589,7 @@ either behaviour is undefined or it is an error as decided by table~\ref{tab:use
 instead of \t{-{}-with-} or \t{-{}-without-}.
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPI Behaviour for Use Queries not in IUSE\_EFFECTIVE} \label{tab:use-list-strictness}
     \begin{tabular}{ l l }
         \toprule
@@ -597,6 +605,7 @@ instead of \t{-{}-with-} or \t{-{}-without-}.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use\_with} and \t{use\_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ l l }
@@ -679,6 +688,7 @@ has returned.
     It is up to the ebuild to ensure that the relevant external utilities are available, whether by
     being in the system set or via dependencies.
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table}
     \begin{tabular}{ l l }
         \toprule
@@ -703,6 +713,7 @@ has returned.
     table~\ref{tab:default-function-table}.
 \end{description}
 
+\ChangeWhenAddingAnEAPI{4}
 \begin{centertable}{EAPIs supporting the \t{default} function} \label{tab:default-function-table}
     \begin{tabular}{ l l }
         \toprule

diff --git a/pms.cls b/pms.cls
index db2fd48..a37d78a 100644
--- a/pms.cls
+++ b/pms.cls
@@ -147,6 +147,11 @@
 % margin.
 \areaset[-30mm]{400pt}{700pt}
 
+% To find everywhere that needs updating when we add an EAPI
+\newcommand{\CurrentEAPIIs}[1]{\def\TheCurrentEAPI{#1}}
+\newcommand{\ChangeWhenAddingAnEAPI}[1]{\ifthenelse{\equal{\TheCurrentEAPI}{#1}}{}{\errmessage{This
+needs to be updated for EAPI \TheCurrentEAPI}}}
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:

diff --git a/pms.tex b/pms.tex
index 4ada8ec..1c9ed30 100644
--- a/pms.tex
+++ b/pms.tex
@@ -1,5 +1,8 @@
 \documentclass{pms}
 
+\CurrentEAPIIs{4}
+\ChangeWhenAddingAnEAPI{4}
+
 \begin{document}
 \maketitle
 



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     d9040ab3482af5f790368bac5d053bf1cd760ba8
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:46:45 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=d9040ab3

Profile IUSE injection is in EAPI 5.

This reverts commit 9d2b8ee57bf3be941cfdfe13650952d91b9edfdc.

---
 eapi-differences.tex  |    4 ++++
 ebuild-env-vars.tex   |   38 ++++++++++++++++++++++++++++++++++----
 profile-variables.tex |   42 +++++++++++++++++++++++++++++++++++++++---
 3 files changed, 77 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index edf70d0..e617811 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -40,6 +40,9 @@
 \bottomrule
 \endlastfoot
 
+Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
+    No & No & No & No & No & Yes \\
+
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
     No & Yes & Yes & Yes & Yes & Yes \\
 
@@ -247,6 +250,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \begin{compactitem}
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
+\item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 0d382d0..450542a 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -287,9 +287,13 @@ This section discusses the handling of four variables:
 In all cases, the values of \t{IUSE\_REFERENCEABLE} and \t{IUSE\_EFFECTIVE} are undefined during
 metadata generation.
 
-\t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value.
+For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined
+\t{IUSE} injection, \t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value. For EAPIs
+where profile defined \t{IUSE} injection is supported, \t{IUSE\_REFERENCEABLE} is equal to
+\t{IUSE\_EFFECTIVE}.
 
-\t{IUSE\_EFFECTIVE} contains the following values:
+For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined
+\t{IUSE} injection, \t{IUSE\_EFFECTIVE} contains the following values:
 
 \begin{compactitem}
 \item All values in the calculated \t{IUSE} value.
@@ -298,10 +302,36 @@ metadata generation.
     the profile \t{USE\_EXPAND} variable followed by an underscore.
 \end{compactitem}
 
+\featurelabel{profile-iuse-injection} For EAPIs listed in
+table~\ref{tab:profile-iuse-injection-table} as supporting profile defined \t{IUSE} injection,
+\t{IUSE\_EFFECTIVE} contains the following values:
+
+\begin{compactitem}
+\item All values in the calculated \t{IUSE} value.
+\item All values in the profile \t{IUSE\_IMPLICIT} variable.
+\item All values in the profile variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}}
+    is any value in the intersection of the profile \t{USE\_EXPAND\_UNPREFIXED} and
+    \t{USE\_EXPAND\_IMPLICIT} variables.
+\item All values for \t{\$\{lower\_v\}\_\$\{x\}}, where \t{\$\{x\}} is all values in the profile
+    variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}} is any value in the
+    intersection of the profile \t{USE\_EXPAND} and \t{USE\_EXPAND\_IMPLICIT} variables and
+    \t{\$\{lower\_v\}} is the lowercase equivalent of \t{\$\{v\}}.
+\end{compactitem}
+
 The \t{USE} variable is set by the package manager. For each value in \t{IUSE\_EFFECTIVE}, \t{USE}
 shall contain that value if the flag is to be enabled for the ebuild in question, and shall not
-contain that value if it is to be disabled. \t{USE} may contain other flag names that are not
-relevant for the ebuild.
+contain that value if it is to be disabled. In EAPIs listed in
+table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined \t{IUSE} injection,
+\t{USE} may contain other flag names that are not relevant for the ebuild.
+
+For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined
+\t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED} shall
+have their profile-provided values reduced to contain only those values that are present in
+\t{IUSE\_EFFECTIVE}.
+
+For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined
+\t{IUSE} injection, the package manager must save the calculated value of \t{IUSE\_EFFECTIVE} when
+installing a package. Details are beyond the scope of this specification.
 
 \subsection{\t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}}
 \label{sec:replacing-versions}

diff --git a/profile-variables.tex b/profile-variables.tex
index cb6e63f..cf8cac2 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -20,10 +20,36 @@ variables must be treated in this fashion:
 \item \t{CONFIG\_PROTECT\_MASK}
 \end{compactitem}
 
+If the package manager supports any EAPI listed in table~\ref{tab:profile-iuse-injection-table} as
+using profile-defined \t{IUSE} injection, the following variables must also be treated
+incrementally; otherwise, the following variables may or may not be treated incrementally:
+\begin{compactitem}
+\item \t{IUSE\_IMPLICIT}
+\item \t{USE\_EXPAND\_IMPLICIT}
+\item \t{USE\_EXPAND\_UNPREFIXED}
+\end{compactitem}
+
 Other variables, except where they affect only package-manager-specific functionality (such as
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs} \label{tab:profile-iuse-injection-table}
+    \begin{tabular}{ l l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
+        \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Specific variables and their meanings}
 The following variables have specific meanings when set in profiles.
 \begin{description}
@@ -37,11 +63,21 @@ The following variables have specific meanings when set in profiles.
 \item[USE\_EXPAND] Defines a list of variables which are to be treated incrementally and whose
     contents are to be expanded into the USE variable as passed to ebuilds. See
     section~\ref{sec:use-iuse-handling} for details.
-\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND}. The
-    package manager may use this set as a hint to avoid displaying uninteresting or unhelpful
-    information to an end user.
+\item[USE\_EXPAND\_UNPREFIXED] Similar to \t{USE\_EXPAND}, but no prefix is used. If the repository
+    contains any package using an EAPI supporting profile-defined \t{IUSE} injection (see
+    table~\ref{tab:profile-iuse-injection-table}), this list must contain at least \t{ARCH}. See
+    section~\ref{sec:use-iuse-handling} for details.
+\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND} and
+    \t{USE\_EXPAND\_UNPREFIXED}. The package manager may use this set as a hint to avoid displaying
+    uninteresting or unhelpful information to an end user.
+\item[USE\_EXPAND\_IMPLICIT, IUSE\_IMPLICIT] Used to inject implicit values into \t{IUSE}. See
+    section~\ref{sec:use-iuse-handling} for details.
 \end{description}
 
+In addition, for EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile
+defined \t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED}
+have special handling as described in section~\ref{sec:use-iuse-handling}.
+
 Any other variables set in \t{make.defaults} must be passed on into the ebuild environment as-is,
 and are not required to be interpreted by the package manager.
 



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     86b4734587d2cdc8b5b0357555a7e8cc05418f54
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:12:14 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=86b47345

Add an EAPI 5 identical to EAPI 4

---
 dependencies.tex     |   12 ++++--
 eapi-differences.tex |   98 ++++++++++++++++++++++++++++----------------------
 eapis.tex            |    4 ++-
 ebuild-env-vars.tex  |    9 +++--
 ebuild-functions.tex |   25 +++++++++----
 ebuild-vars.tex      |   12 ++++--
 merge.tex            |    3 +-
 pkg-mgr-commands.tex |   33 +++++++++++------
 pms.tex              |    4 +-
 9 files changed, 123 insertions(+), 77 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 54305c5..4b4300c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -76,7 +76,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 In particular, note that whitespace is not optional.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{SRC\_URI} arrows} \label{tab:uri-arrows-table}
     \begin{tabular}{ l l }
         \toprule
@@ -88,6 +88,7 @@ In particular, note that whitespace is not optional.
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -148,7 +149,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
 
 \note Order is important. The slot restriction must come before use dependencies.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{SLOT} dependencies} \label{tab:slot-deps-table}
     \begin{tabular}{ l l }
         \toprule
@@ -160,11 +161,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies} \label{tab:use-deps-table}
     \begin{tabular}{ l l }
         \toprule
@@ -176,6 +178,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
     \t{2} & 2-style \\
     \t{3} & 2-style \\
     \t{4} & 4-style \\
+    \t{5} & 4-style \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -215,7 +218,7 @@ ignored by the package manager, so long as any blocked package will be uninstall
 strong block must not be ignored. The mapping from one or two exclamation marks to strength is
 described in table~\ref{tab:bang-strength-table}.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{Exclamation mark strengths for EAPIs} \label{tab:bang-strength-table}
     \begin{tabular}{ l l l }
         \toprule
@@ -228,6 +231,7 @@ described in table~\ref{tab:bang-strength-table}.
     \t{2} & Weak & Strong \\
     \t{3} & Weak & Strong \\
     \t{4} & Weak & Strong \\
+    \t{5} & Weak & Strong \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 33381e7..92d369e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -2,10 +2,10 @@
 
 \note This chapter is informative and for convenience only. Refer to the main text for specifics.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{landscape}
 \newcolumntype{P}[1]{>{\setlength{\rightskip}{0pt plus 1fil}}p{#1}}
-\begin{longtable}{llP{5em}P{5em}P{8em}P{8em}P{8em}}
+\begin{longtable}{llP{5em}P{5em}P{6em}P{6em}P{6em}P{6em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\b{Feature}} &
@@ -17,7 +17,8 @@
 \multicolumn{1}{c}{1} &
 \multicolumn{1}{c}{2} &
 \multicolumn{1}{c}{3} &
-\multicolumn{1}{c}{4} \\
+\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{5} \\
 \midrule
 \endfirsthead
 \midrule
@@ -30,7 +31,8 @@
 \multicolumn{1}{c}{1} &
 \multicolumn{1}{c}{2} &
 \multicolumn{1}{c}{3} &
-\multicolumn{1}{c}{4} \\
+\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{5} \\
 \midrule
 \endhead
 \midrule
@@ -39,125 +41,127 @@
 \endlastfoot
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED\_USE} & \compactfeatureref{required-use} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Optionally & Optionally & Optionally & Yes \\
+    Optionally & Optionally & Optionally & Optionally & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{DEFINED\_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Optionally & Optionally & Optionally & Yes \\
+    Optionally & Optionally & Optionally & Optionally & Yes & Yes \\
 
 \t{SRC\_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    No & No & 2-style & 2-style & 4-style \\
+    No & No & 2-style & 2-style & 4-style & 4-style \\
 
 \t{!} blockers & \compactfeatureref{bang-strength} &
-    Unspecified & Unspecified & Weak & Weak & Weak \\
+    Unspecified & Unspecified & Weak & Weak & Weak & Weak \\
 
 \t{!!} blockers & \compactfeatureref{bang-strength} &
-    Forbidden & Forbidden & Strong & Strong & Strong \\
+    Forbidden & Forbidden & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Always & Always & Always & Conditional \\
+    Always & Always & Always & Always & Conditional & Conditional \\
 
 \t{pkg\_pretend} & \compactfeatureref{pkg-pretend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{src\_prepare} & \compactfeatureref{src-prepare} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src\_configure} & \compactfeatureref{src-configure} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src\_compile} style & \compactfeatureref{src-compile} &
-    0 & 1 & 2 & 2 & 2 \\
+    0 & 1 & 2 & 2 & 2 & 2 \\
 
 \t{src\_install} style & \compactfeatureref{src-install} &
-    no-op & no-op & no-op & no-op & 4 \\
+    no-op & no-op & no-op & no-op & 4 & 4 \\
 
 \t{pkg\_info} & \compactfeatureref{pkg-info} &
-    Installed & Installed & Installed & Installed & Both \\
+    Installed & Installed & Installed & Installed & Both & Both \\
 
 \t{default\_} phase functions & \compactfeatureref{default-phase-funcs} &
     None & None &
     \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure}, \t{src\_compile}, \t{src\_test} &
     \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure}, \t{src\_compile}, \t{src\_test} &
     \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure},
+        \t{src\_compile}, \t{src\_install}, \t{src\_test} &
+    \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure},
         \t{src\_compile}, \t{src\_install}, \t{src\_test} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{MERGE\_TYPE} & \compactfeatureref{merge-type} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{REPLACING\_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{REPLACED\_BY\_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    &  &  &  & disable dependency tracking \\
+    &  &  &  & disable dependency tracking & disable dependency tracking \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    N/A & N/A & No & No & Yes \\
+    N/A & N/A & No & No & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{controllable-compress} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{controllable-compress} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use\_with} empty third arg & \compactfeatureref{use-with} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} support for \t{xz}? & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -236,7 +240,15 @@ EAPI 4 is EAPI 3 with the following changes:
 \item \t{use\_with} and \t{use\_enable} support empty third argument, \featureref{use-with}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{4}
+\section*{EAPI 5}
+
+EAPI 5 is EAPI 4 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{5}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 5543988..48d28fd 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -19,7 +19,7 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 The following EAPIs are defined by this specification:
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \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
@@ -30,6 +30,8 @@ The following EAPIs are defined by this specification:
     in all other ways identical to EAPI `2'.
 \item[4] EAPI `4' contains a number of extensions to EAPI `3'. Except where explicitly noted, it is
     in all other ways identical to EAPI `3'.
+\item[5] EAPI `5' contains a number of extensions to EAPI `4'. Except where explicitly noted, it is
+    in all other ways identical to EAPI `4'.
 \end{description}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index dc4e648..0d382d0 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -214,7 +214,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting various env variables} \label{tab:env-vars-table}
     \begin{tabular}{ l l l l l l }
         \toprule
@@ -230,11 +230,12 @@ variable.
     \t{2} & Yes & Yes & No & No & No \\
     \t{3} & Yes & Yes & No & No & No \\
     \t{4} & No & No & Yes & Yes & Yes \\
+    \t{5} & No & No & Yes & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{ l l l l }
@@ -249,6 +250,7 @@ variable.
         \t{2} & No & No & No \\
         \t{3} & Yes & Yes & Yes \\
         \t{4} & Yes & Yes & Yes \\
+        \t{5} & Yes & Yes & Yes \\
         \bottomrule
     \end{tabular}
 \end{centertable}
@@ -319,7 +321,7 @@ variable shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall contai
 \subsection{Offset-prefix variables \t{EPREFIX}, \t{EROOT} and \t{ED}}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ l l }
@@ -332,6 +334,7 @@ variable shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall contai
         \t{2} & No \\
         \t{3} & Yes \\
         \t{4} & Yes \\
+        \t{5} & Yes \\
         \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 24f7d69..cd4075c 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     in \t{DEFINED\_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
     \begin{tabular}{ l l }
         \toprule
@@ -56,6 +56,7 @@ fallback to \t{WORKDIR} is used:
     \t{2} & Always \\
     \t{3} & Always \\
     \t{4} & Conditional error \\
+    \t{5} & Conditional error \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -78,7 +79,7 @@ before the next phase is executed.
 
 \t{pkg\_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{pkg\_pretend}} \label{tab:pkg-pretend-table}
     \begin{tabular}{ l l }
         \toprule
@@ -90,6 +91,7 @@ before the next phase is executed.
     \t{2} & No \\
     \t{3} & No \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -133,7 +135,7 @@ implementation does nothing.
 The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in
 section~\ref{sec:s-to-workdir-fallback}.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{src\_prepare}} \label{tab:src-prepare-table}
     \begin{tabular}{ l l }
         \toprule
@@ -145,6 +147,7 @@ section~\ref{sec:s-to-workdir-fallback}.
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +172,7 @@ src_configure() {
 }
 \end{verbatim}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{src\_configure}} \label{tab:src-configure-table}
     \begin{tabular}{ l l }
         \toprule
@@ -181,6 +184,7 @@ src_configure() {
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -236,7 +240,7 @@ src_compile() {
 }
 \end{verbatim}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{\t{src\_compile} behaviour for EAPIs} \label{tab:src-compile-table}
     \begin{tabular}{ l l }
         \toprule
@@ -248,6 +252,7 @@ src_compile() {
     \t{2} & 2 \\
     \t{3} & 2 \\
     \t{4} & 2 \\
+    \t{5} & 2 \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -303,7 +308,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src\_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{\t{src\_install} behaviour for EAPIs} \label{tab:src-install-table}
     \begin{tabular}{ l l }
         \toprule
@@ -315,6 +320,7 @@ is a no-op.
     \t{2} & no-op \\
     \t{3} & no-op \\
     \t{4} & 4 \\
+    \t{5} & 4 \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -378,7 +384,7 @@ that dependencies may not be installed.
 
 \t{pkg\_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{pkg\_info} on non-installed packages} \label{tab:pkg-info-table}
     \begin{tabular}{ l l }
         \toprule
@@ -390,6 +396,7 @@ that dependencies may not be installed.
     \t{2} & No \\
     \t{3} & No \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -412,7 +419,7 @@ named \t{default\_}(phase) that behaves as the default implementation for that E
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{default\_} phase functions} \label{tab:default-phase-function-table}
     \begin{tabular}{ l >{\setlength{\rightskip}{0pt plus 1fil}}p{30em} }
         \toprule
@@ -427,6 +434,8 @@ when in the phase in question.
         \t{src\_compile}, \t{src\_test} \\
     \t{4} & \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure},
         \t{src\_compile}, \t{src\_install}, \t{src\_test} \\
+    \t{5} & \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure},
+        \t{src\_compile}, \t{src\_install}, \t{src\_test} \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 0204c3a..f397f0e 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -54,7 +54,7 @@ If any of these variables are undefined, or if any of these variables are set to
 the package manager's behaviour is undefined; ideally, an error in one ebuild should not prevent
 operations upon other ebuilds or packages.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults} \label{tab:iuse-defaults-table}
     \begin{tabular}{ l l }
         \toprule
@@ -66,6 +66,7 @@ operations upon other ebuilds or packages.
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -94,7 +95,7 @@ Ebuilds may define any of the following variables:
     table~\ref{tab:optional-vars-table} as supporting \t{REQUIRED\_USE}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
 \label{tab:optional-vars-table}
     \begin{tabular}{ l l l }
@@ -108,6 +109,7 @@ Ebuilds may define any of the following variables:
     \t{2} & Optionally & No \\
     \t{3} & Optionally & No \\
     \t{4} & Yes & Yes \\
+    \t{5} & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -154,7 +156,7 @@ any \t{DEPEND} or \t{RDEPEND} set in an eclass does not change the implicit \t{R
 the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treated as being part of
 \t{RDEPEND}.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} Default} \label{tab:rdepend-depend-table}
     \begin{tabular}{ l l }
         \toprule
@@ -166,6 +168,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & No \\
+    \t{5} & No \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -199,7 +202,7 @@ this variable defined, and must treat an empty string as ``this information is n
 \note Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be defined
 based upon any variant condition.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{DEFINED\_PHASES}} \label{tab:defined-phases-table}
     \begin{tabular}{ l l }
         \toprule
@@ -211,6 +214,7 @@ based upon any variant condition.
     \t{2} & Optionally \\
     \t{3} & Optionally \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 846e876..bc74193 100644
--- a/merge.tex
+++ b/merge.tex
@@ -86,7 +86,7 @@ held under the original image directory.
 In other EAPIs, the behaviour with respect to file modification times
 is undefined.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ l l }
@@ -99,6 +99,7 @@ is undefined.
     \t{2} & Undefined \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c2d8a9e..0a56b99 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -21,7 +21,7 @@ The following commands affect this behaviour:
     table~\ref{tab:commands-die-table} as supporting \t{nonfatal}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPI Command Failure Behaviour} \label{tab:commands-die-table}
     \begin{tabular}{ l l l }
         \toprule
@@ -34,6 +34,7 @@ The following commands affect this behaviour:
     \t{2} & Non-zero exit & No \\
     \t{3} & Non-zero exit & No \\
     \t{4} & Aborts & Yes \\
+    \t{5} & Aborts & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -44,7 +45,7 @@ The following commands affect this behaviour:
 \featurelabel{banned-commands} Some commands are banned in some EAPIs. If a banned command is
 called, the package manager must abort the build process indicating an error.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{Banned commands} \label{tab:banned-commands-table}
     \begin{tabular}{ l l l l }
         \toprule
@@ -59,6 +60,7 @@ called, the package manager must abort the build process indicating an error.
     \t{2} & No & No \\
     \t{3} & No & No \\
     \t{4} & Yes & Yes \\
+    \t{5} & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +149,7 @@ has returned.
         string \t{disable-dependency-tracking} occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{4}
+    \ChangeWhenAddingAnEAPI{5}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table}
         \begin{tabular}{ l l l }
             \toprule
@@ -159,6 +161,7 @@ has returned.
         \t{2} & No \\
         \t{3} & No \\
         \t{4} & Yes \\
+        \t{5} & Yes \\
         \bottomrule
         \end{tabular}
     \end{centertable}
@@ -410,7 +413,7 @@ that can be passed to \t{dohtml} are as follows:
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}} \label{tab:dodoc-table}
     \begin{tabular}{ l l }
         \toprule
@@ -422,11 +425,12 @@ that can be passed to \t{dohtml} are as follows:
     \t{2} & No \\
     \t{3} & No \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}} \label{tab:doins-table}
     \begin{tabular}{ l l }
         \toprule
@@ -438,11 +442,12 @@ that can be passed to \t{dohtml} are as follows:
     \t{2} & No \\
     \t{3} & No \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{ l l l }
@@ -456,6 +461,7 @@ that can be passed to \t{dohtml} are as follows:
     \t{2} & Yes & No \\
     \t{3} & Yes & No \\
     \t{4} & Yes & Yes \\
+    \t{5} & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -545,7 +551,7 @@ exclusion list. Otherwise, add each argument to the inclusion list. Only availab
 in table~\ref{tab:compression-table} as supporting \t{docompress}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting controllable compression} \label{tab:compression-table}
     \begin{tabular}{ l l l }
         \toprule
@@ -558,6 +564,7 @@ in table~\ref{tab:compression-table} as supporting \t{docompress}.
     \t{2} & No & No \\
     \t{3} & No & No \\
     \t{4} & Yes & Yes \\
+    \t{5} & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -589,7 +596,7 @@ either behaviour is undefined or it is an error as decided by table~\ref{tab:use
 instead of \t{-{}-with-} or \t{-{}-without-}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPI Behaviour for Use Queries not in IUSE\_EFFECTIVE} \label{tab:use-list-strictness}
     \begin{tabular}{ l l }
         \toprule
@@ -601,11 +608,12 @@ instead of \t{-{}-with-} or \t{-{}-without-}.
     \t{2} & Undefined \\
     \t{3} & Undefined \\
     \t{4} & Error \\
+    \t{5} & Error \\
     \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use\_with} and \t{use\_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ l l }
@@ -618,6 +626,7 @@ instead of \t{-{}-with-} or \t{-{}-without-}.
     \t{2} & No \\
     \t{3} & No \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -688,7 +697,7 @@ has returned.
     It is up to the ebuild to ensure that the relevant external utilities are available, whether by
     being in the system set or via dependencies.
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table}
     \begin{tabular}{ l l }
         \toprule
@@ -700,6 +709,7 @@ has returned.
     \t{2} & No \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -713,7 +723,7 @@ has returned.
     table~\ref{tab:default-function-table}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{4}
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting the \t{default} function} \label{tab:default-function-table}
     \begin{tabular}{ l l }
         \toprule
@@ -725,6 +735,7 @@ has returned.
     \t{2} & Yes \\
     \t{3} & Yes \\
     \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 1c9ed30..d0ceda2 100644
--- a/pms.tex
+++ b/pms.tex
@@ -1,7 +1,7 @@
 \documentclass{pms}
 
-\CurrentEAPIIs{4}
-\ChangeWhenAddingAnEAPI{4}
+\CurrentEAPIIs{5}
+\ChangeWhenAddingAnEAPI{5}
 
 \begin{document}
 \maketitle



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     b7750e67b4772c1064543defb7df6a556f09807b
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:39:22 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=b7750e67

EAPI 5 has econf --disable-silent-rules

See bug 379497.

---
 eapi-differences.tex |    4 ++--
 pkg-mgr-commands.tex |   20 ++++++++++++--------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 92d369e..4578b73 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -131,7 +131,7 @@ Most utilities die & \compactfeatureref{die-on-failure} &
     Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    &  &  &  & disable dependency tracking & disable dependency tracking \\
+    &  &  &  & disable dependency tracking & disable dependency tracking, disable silent rules \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     No & No & No & No & Yes & Yes \\
@@ -245,7 +245,7 @@ EAPI 4 is EAPI 3 with the following changes:
 EAPI 5 is EAPI 4 with the following changes:
 
 \begin{compactitem}
-\item None
+\item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0a56b99..87b7180 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -147,21 +147,25 @@ has returned.
     \item -{}-disable-dependency-tracking, if the EAPI is listed in
         table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
         string \t{disable-dependency-tracking} occurs in the output of \t{configure -{}-help}.
+    \item -{}-disable-silent-rules, if the EAPI is listed in
+        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        string \t{disable-silent-rules} occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{5}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table}
-        \begin{tabular}{ l l l }
+        \begin{tabular}{ l l l l }
             \toprule
                 \multicolumn{1}{c}{\textbf{EAPI}} &
-                \multicolumn{1}{c}{\textbf{-{}-disable-dependency-tracking}?} \\
+                \multicolumn{1}{c}{\textbf{-{}-disable-dependency-tracking}?} &
+                \multicolumn{1}{c}{\textbf{-{}-disable-silent-rules}?} \\
                 \midrule
-        \t{0} & No \\
-        \t{1} & No \\
-        \t{2} & No \\
-        \t{3} & No \\
-        \t{4} & Yes \\
-        \t{5} & Yes \\
+        \t{0} & No & No \\
+        \t{1} & No & No \\
+        \t{2} & No & No \\
+        \t{3} & No & No \\
+        \t{4} & Yes & No \\
+        \t{5} & Yes & Yes \\
         \bottomrule
         \end{tabular}
     \end{centertable}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     f9f7729c047300e1924ad768a49c660e12c2f906
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:42:41 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=f9f7729c

Slot operator dependencies are back in EAPI 5

This reverts commit 409fccc10861c361f37a959195d7581a5c376dd9.

---
 dependencies.tex     |   27 ++++++++++++++++++++++-----
 eapi-differences.tex |    3 ++-
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 4b4300c..8f78f3d 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -157,11 +157,11 @@ manager must warn or error if this feature is used with an EAPI not supporting u
             \multicolumn{1}{c}{\textbf{Supports \t{SLOT} dependencies?}} \\
             \midrule
     \t{0} & No \\
-    \t{1} & Yes \\
-    \t{2} & Yes \\
-    \t{3} & Yes \\
-    \t{4} & Yes \\
-    \t{5} & Yes \\
+    \t{1} & Named only \\
+    \t{2} & Named only \\
+    \t{3} & Named only \\
+    \t{4} & Named only \\
+    \t{5} & Named and operator \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -244,6 +244,23 @@ specification with a named slot dependency matches only if the slot of the match
 to the slot specified. If the slot of the package to match cannot be determined (e.\,g.\ because it
 is not a supported \t{EAPI}), the match is treated as unsuccessful.
 
+\featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
+the following operators:
+
+\begin{description}
+\item[*] Indicates that any slot value is acceptable. In addition, for runtime dependencies,
+indicates that the package will not break if the matched package is uninstalled and replaced by
+a different matching package in a different slot.
+\item[=] Indicates that any slot value is acceptable. In addition, for runtime dependencies,
+indicates that the package will break unless a matching package with slot equal to the slot of
+the best installed version at the time the package was installed is available.
+\end{description}
+
+To implement the equals slot operator, the package manager will need to store the slot of the
+best installed version of the matching package. The package manager may do this by appending
+the appropriate slot after the equals sign when saving the package's dependencies. This syntax
+is only for package manager use and must not be used by ebuilds.
+
 \subsubsection{2-Style and 4-Style Use Dependencies}
 \label{sec:use-dep}
 

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4578b73..edf70d0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -59,7 +59,7 @@
     No & No & Yes & Yes & Yes & Yes \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    No & Named & Named & Named & Named & Named and Operator \\
 
 Use dependencies & \compactfeatureref{use-deps} &
     No & No & 2-style & 2-style & 4-style & 4-style \\
@@ -246,6 +246,7 @@ EAPI 5 is EAPI 4 with the following changes:
 
 \begin{compactitem}
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
+\item Slot operator dependencies, \featureref{slot-operator-deps}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     489a60deede1a0d78edb545e97b0e17addaa6ab4
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 16:52:55 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=489a60de

IMAGE is removed in EAPI 5.

---
 eapi-differences.tex |    4 ++++
 ebuild-env-vars.tex  |   20 +++++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index e617811..e94684e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -109,6 +109,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{KV} & \compactfeatureref{kv} &
     Yes & Yes & Yes & Yes & No & No \\
 
+\t{IMAGE} & \compactfeatureref{image} &
+    Yes & Yes & Yes & Yes & Yes & No \\
+
 \t{MERGE\_TYPE} & \compactfeatureref{merge-type} &
     No & No & No & No & Yes & Yes \\
 
@@ -251,6 +254,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
+\item \t{IMAGE} is gone, \featureref{image}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 450542a..fdffa42 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -154,7 +154,8 @@ variable.
 \t{IMAGE}\footnote{Deprecated in favour of \t{D}.} &
     \t{pkg\_preinst}, \t{pkg\_postinst} &
     Yes &
-    Equal to \t{D}. \\
+    \featurelabel{image} Equal to \t{D}. Only for EAPIs listed in table~\ref{tab:env-vars-table} as
+    supporting \t{IMAGE}. \\
 \t{INSDESTTREE} &
     \t{src\_install} &
     No &
@@ -216,21 +217,22 @@ variable.
 
 \ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting various env variables} \label{tab:env-vars-table}
-    \begin{tabular}{ l l l l l l }
+    \begin{tabular}{ l l l l l l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
         \multicolumn{1}{c}{\textbf{\t{AA}?}} &
         \multicolumn{1}{c}{\textbf{\t{KV}?}} &
         \multicolumn{1}{c}{\textbf{\t{MERGE\_TYPE}?}} &
         \multicolumn{1}{c}{\textbf{\t{REPLACING\_VERSIONS}?}} &
-        \multicolumn{1}{c}{\textbf{\t{REPLACED\_BY\_VERSION}?}} \\
+        \multicolumn{1}{c}{\textbf{\t{REPLACED\_BY\_VERSION}?}} &
+        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} \\
         \midrule
-    \t{0} & Yes & Yes & No & No & No \\
-    \t{1} & Yes & Yes & No & No & No \\
-    \t{2} & Yes & Yes & No & No & No \\
-    \t{3} & Yes & Yes & No & No & No \\
-    \t{4} & No & No & Yes & Yes & Yes \\
-    \t{5} & No & No & Yes & Yes & Yes \\
+    \t{0} & Yes & Yes & No & No & No & Yes \\
+    \t{1} & Yes & Yes & No & No & No & Yes \\
+    \t{2} & Yes & Yes & No & No & No & Yes \\
+    \t{3} & Yes & Yes & No & No & No & Yes \\
+    \t{4} & No & No & Yes & Yes & Yes & Yes \\
+    \t{5} & No & No & Yes & Yes & Yes & No \\
     \bottomrule
     \end{tabular}
 \end{centertable}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     a8bf7862967cce36b7f1b408934a774126da2538
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 17:27:00 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=a8bf7862

EAPI 5 has apply_user_patches

---
 eapi-differences.tex |    5 +++++
 ebuild-functions.tex |   30 +++++++++++++++++++-----------
 pkg-mgr-commands.tex |   26 ++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 11 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 6063558..bcef3a5 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -85,6 +85,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{src\_prepare} & \compactfeatureref{src-prepare} &
     No & No & Yes & Yes & Yes & Yes \\
 
+\t{apply\_user\_patches} & \compactfeatureref{apply-user-patches} &
+    No & No & No & No & No & Yes \\
+
 \t{src\_configure} & \compactfeatureref{src-configure} &
     No & No & Yes & Yes & Yes & Yes \\
 
@@ -259,6 +262,8 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
+\item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
+    \featureref{apply-user-patches}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index cd4075c..318a732 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -127,27 +127,35 @@ src_unpack() {
 \label{sec:src-prepare-function}
 
 \featurelabel{src-prepare} The \t{src\_prepare} function is only called for EAPIs listed in
-table~\ref{tab:src-prepare-table} as supporting it.
+table~\ref{tab:src-prepare-table} as supporting it. For EAPIs whose behaviour is listed as
+\t{no-op}, the default implementation does nothing. For EAPIs listed as using format 5, the default
+implementation shall behave as:
 
-The \t{src\_prepare} function can be used for post-unpack source preparation. The default
-implementation does nothing.
+\begin{verbatim}
+src_prepare() {
+    apply_user_patches
+}
+\end{verbatim}
+
+Furthermore, for these EAPIs, if the function is overridden, it shall be a fatal error if the
+\t{apply\_user\_patches} command has not been called at least once by the end of the phase.
 
 The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in
 section~\ref{sec:s-to-workdir-fallback}.
 
 \ChangeWhenAddingAnEAPI{5}
-\begin{centertable}{EAPIs supporting \t{src\_prepare}} \label{tab:src-prepare-table}
+\begin{centertable}{\t{src\_prepare} behaviour for EAPIs} \label{tab:src-prepare-table}
     \begin{tabular}{ l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
-        \multicolumn{1}{c}{\textbf{Supports \t{src\_prepare}?}} \\
+        \multicolumn{1}{c}{\textbf{Format}} \\
         \midrule
-    \t{0} & No \\
-    \t{1} & No \\
-    \t{2} & Yes \\
-    \t{3} & Yes \\
-    \t{4} & Yes \\
-    \t{5} & Yes \\
+    \t{0} & Unsupported \\
+    \t{1} & Unsupported \\
+    \t{2} & no-op \\
+    \t{3} & no-op \\
+    \t{4} & no-op \\
+    \t{5} & 5 \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 87b7180..9fcb8de 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -718,6 +718,32 @@ has returned.
     \end{tabular}
 \end{centertable}
 
+\item[apply\_user\_patches]
+    \featurelabel{apply-user-patches} This function is called to indicate to the package manager
+    that now would be a suitable time to apply any user patches to the work directory. This function
+    must return zero if it is possible that any changes were made to the work directory, and may
+    return non-zero if no changes were made. This function must be called at least once in
+    \t{src\_prepare}; if the function is called more than once, it is expected that any effects that
+    it has shall only be executed once, and that its return value shall only be zero once. Only
+    available in EAPIs listed in table~\ref{tab:apply-user-patches-table}.
+
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{\t{apply\_user\_patches} support for EAPIs} \label{tab:apply-user-patches-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{\t{apply\_user\_patches} support?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \item[inherit] See section~\ref{sec:inherit}.
 
 \item[default]



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     472690942e14f63f1b1f3a5681976a59539ea3f8
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 17:48:40 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:30 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=47269094

EAPI 5 mandates GNU find

See bug 384157

---
 eapi-differences.tex    |    4 ++++
 ebuild-env-commands.tex |   20 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a2233e1..4cc1c3a 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -175,6 +175,9 @@ Controllable compression & \compactfeatureref{controllable-compress} &
 \t{default} function & \compactfeatureref{default-func} &
     No & No & Yes & Yes & Yes & Yes \\
 
+\t{find} is GNU? & \compactfeatureref{gnu-find} &
+    Undefined & Undefined & Undefined & Undefined & Undefined & Yes \\
+
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
     Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
@@ -268,6 +271,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
+\item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/ebuild-env-commands.tex b/ebuild-env-commands.tex
index 78e33a2..1129fa6 100644
--- a/ebuild-env-commands.tex
+++ b/ebuild-env-commands.tex
@@ -29,8 +29,28 @@ The following commands must always be available in the ebuild environment:
 \item \t{sed} must be available, and must support all forms of invocations valid for GNU sed
     version 4 or later.
 \item \t{patch} must be available, and must support all inputs valid for GNU patch.
+\item \t{find} must be available, and must support all forms of invocations valid for GNU find
+    version 4.4 or later. Only for EAPIs listed in table~\ref{tab:system-commands-table} as
+    requiring GNU find. \featurelabel{gnu-find}
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{\t{find} implementation for EAPIs} \label{tab:system-commands-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{GNU \t{find}?}} \\
+            \midrule
+    \t{0} & Undefined \\
+    \t{1} & Undefined \\
+    \t{2} & Undefined \\
+    \t{3} & Undefined \\
+    \t{4} & Undefined \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands provided by package dependencies}
 
 In some cases a package's build process will require the availability of executables not provided by



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     2ede1d700c099eb6bcd08a98fb70569abd871a9c
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 17:41:34 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=2ede1d70

Split up big table into two littler tables.

---
 ebuild-env-vars.tex |   67 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 42 insertions(+), 25 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index cd0a6d9..55cdb14 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -76,7 +76,7 @@ variable.
     \featurelabel{aa} All source files that could be available for the package, including any that
     are disabled in \t{A} because of USE conditionals. The value is calculated from the base names
     of each element of the \t{SRC\_URI} ebuild metadata variable. Only for EAPIs listed in
-    table~\ref{tab:env-vars-table} as supporting \t{AA}. \\
+    table~\ref{tab:removed-env-vars-table} as supporting \t{AA}. \\
 \t{FILESDIR} &
     \t{src\_*}\footnote{Not necessarily present when installing from a binary package} &
     No &
@@ -154,7 +154,7 @@ variable.
 \t{IMAGE}\footnote{Deprecated in favour of \t{D}.} &
     \t{pkg\_preinst}, \t{pkg\_postinst} &
     Yes &
-    \featurelabel{image} Equal to \t{D}. Only for EAPIs listed in table~\ref{tab:env-vars-table} as
+    \featurelabel{image} Equal to \t{D}. Only for EAPIs listed in table~\ref{tab:removed-env-vars-table} as
     supporting \t{IMAGE}. \\
 \t{INSDESTTREE} &
     \t{src\_install} &
@@ -182,7 +182,7 @@ variable.
     \t{pkg\_postrm}, \t{pkg\_info}, \t{pkg\_pretend} according to the top level ebuild function that
     was executed by the package manager. May be unset or any single word that is not any of the
     above when the ebuild is being sourced for other (e.\,g.\ metadata or QA) purposes. Only for
-    EAPIs listed in table~\ref{tab:env-vars-table} as supporting \t{EBUILD\_PHASE\_FUNC}. \\
+    EAPIs listed in table~\ref{tab:added-env-vars-table} as supporting \t{EBUILD\_PHASE\_FUNC}. \\
 \t{WORKDIR} &
     \t{src\_*}, global~scope &
     Yes &
@@ -200,50 +200,66 @@ variable.
     Yes &
     \featurelabel{kv} The version of the running kernel at the time the ebuild was first executed,
     as returned by the \t{uname~-r} command or equivalent.  May be modified by ebuilds.  Only for
-    EAPIs listed in table~\ref{tab:env-vars-table} as supporting \t{KV}. \\
+    EAPIs listed in table~\ref{tab:removed-env-vars-table} as supporting \t{KV}. \\
 \t{MERGE\_TYPE} &
     \t{pkg\_*} &
     No &
     \featurelabel{merge-type} The type of package that is being merged. Possible values are:
     \t{source} if building and installing a package from source, \t{binary} if installing a binary
     package, and \t{buildonly} if building a binary package without installing it. Only for EAPIs
-    listed in table~\ref{tab:env-vars-table} as supporting \t{MERGE\_TYPE}. \\
+    listed in table~\ref{tab:added-env-vars-table} as supporting \t{MERGE\_TYPE}. \\
 \t{REPLACING\_VERSIONS} &
     \t{pkg\_*} (see text) &
     Yes &
     A whitespace-separated list of versions of this package (including revision, if specified) that
     are being replaced (uninstalled or overwritten) as a result of this install. See
-    section~\ref{sec:replacing-versions}.  Only for EAPIs listed in table~\ref{tab:env-vars-table}
+    section~\ref{sec:replacing-versions}.  Only for EAPIs listed in table~\ref{tab:added-env-vars-table}
     as supporting \t{REPLACING\_VERSIONS}. \\
 \t{REPLACED\_BY\_VERSION} &
     \t{pkg\_prerm}, \t{pkg\_postrm} &
     Yes &
     The single version of this package (including revision, if specified) that is replacing us, if
     we are being uninstalled as part of an install, or an empty string otherwise. See
-    section~\ref{sec:replacing-versions}.  Only for EAPIs listed in table~\ref{tab:env-vars-table}
+    section~\ref{sec:replacing-versions}.  Only for EAPIs listed in table~\ref{tab:added-env-vars-table}
     as supporting \t{REPLACED\_BY\_VERSION}.
 \end{longtable}
 \end{landscape}
 
 \ChangeWhenAddingAnEAPI{5}
-\begin{centertable}{EAPIs supporting various env variables} \label{tab:env-vars-table}
-    \begin{tabular}{ l l l l l l l l }
+\begin{centertable}{EAPIs supporting various added env variables} \label{tab:added-env-vars-table}
+    \begin{tabular}{ l l l l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
-        \multicolumn{1}{c}{\textbf{\t{AA}?}} &
-        \multicolumn{1}{c}{\textbf{\t{KV}?}} &
         \multicolumn{1}{c}{\textbf{\t{MERGE\_TYPE}?}} &
         \multicolumn{1}{c}{\textbf{\t{REPLACING\_VERSIONS}?}} &
         \multicolumn{1}{c}{\textbf{\t{REPLACED\_BY\_VERSION}?}} &
-        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} &
         \multicolumn{1}{c}{\textbf{\t{EBUILD\_PHASE\_FUNC}?}} \\
         \midrule
-    \t{0} & Yes & Yes & No & No & No & Yes & No \\
-    \t{1} & Yes & Yes & No & No & No & Yes & No \\
-    \t{2} & Yes & Yes & No & No & No & Yes & No \\
-    \t{3} & Yes & Yes & No & No & No & Yes & No \\
-    \t{4} & No & No & Yes & Yes & Yes & Yes & No \\
-    \t{5} & No & No & Yes & Yes & Yes & No & Yes \\
+    \t{0} & No & No & No & No \\
+    \t{1} & No & No & No & No \\
+    \t{2} & No & No & No & No \\
+    \t{3} & No & No & No & No \\
+    \t{4} & Yes & Yes & Yes & No \\
+    \t{5} & Yes & Yes & Yes & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting various removed env variables} \label{tab:removed-env-vars-table}
+    \begin{tabular}{ l l l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{\t{AA}?}} &
+        \multicolumn{1}{c}{\textbf{\t{KV}?}} &
+        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} \\
+        \midrule
+    \t{0} & Yes & Yes & Yes \\
+    \t{1} & Yes & Yes & Yes \\
+    \t{2} & Yes & Yes & Yes \\
+    \t{3} & Yes & Yes & Yes \\
+    \t{4} & No & No & Yes \\
+    \t{5} & No & No & No \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -349,17 +365,18 @@ installing a package. Details are beyond the scope of this specification.
 \subsection{\t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}}
 \label{sec:replacing-versions}
 
-\featurelabel{replace-version-vars} In EAPIs listed in table~\ref{tab:env-vars-table} as supporting
-it, the \t{REPLACING\_VERSIONS} variable shall be defined in \t{pkg\_preinst} and \t{pkg\_postinst}.
-In addition, it \e{may} be defined in \t{pkg\_pretend} and \t{pkg\_setup}, although ebuild authors
-should take care to handle binary package creation and installation correctly when using it in these
-phases.
+\featurelabel{replace-version-vars} In EAPIs listed in table~\ref{tab:added-env-vars-table} as
+supporting it, the \t{REPLACING\_VERSIONS} variable shall be defined in \t{pkg\_preinst} and
+\t{pkg\_postinst}.  In addition, it \e{may} be defined in \t{pkg\_pretend} and \t{pkg\_setup},
+although ebuild authors should take care to handle binary package creation and installation
+correctly when using it in these phases.
 
 \t{REPLACING\_VERSIONS} is a list, not a single optional value, to handle pathological cases such as
 installing \t{foo-2:2} to replace \t{foo-2:1} and \t{foo-3:2}.
 
-In EAPIs listed in table~\ref{tab:env-vars-table} as supporting it, the \t{REPLACED\_BY\_VERSION}
-variable shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall contain at most one value.
+In EAPIs listed in table~\ref{tab:added-env-vars-table} as supporting it, the
+\t{REPLACED\_BY\_VERSION} variable shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall
+contain at most one value.
 
 \subsection{Offset-prefix variables \t{EPREFIX}, \t{EROOT} and \t{ED}}
 \label{sec:offset-vars}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     1c2dff2df2305aff88a734e3a2716de1bb69f3b6
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 17:05:31 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=1c2dff2d

EAPI 5 supports ?? ( ) groups

See bug 354219

---
 dependencies.tex     |   34 ++++++++++++++++++++++++++++++++++
 eapi-differences.tex |    4 ++++
 2 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 8f78f3d..1e5b6e8 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -66,6 +66,13 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     parenthesis. More formally: \t{exactly-one-of ::= '\textasciicircum\textasciicircum' whitespace
     '(' whitespace (item whitespace)* ')'}.
     Permitted in \t{REQUIRED\_USE}.
+\item An at-most-one-of group, which consists of the string \t{??},
+    followed by whitespace, followed by an open parenthesis, followed by whitespace, followed by
+    zero or more of (a dependency item of any kind followed by whitespace), followed by a close
+    parenthesis.  More formally: \t{exactly-one-of ::= '??' whitespace '(' whitespace (item
+    whitespace)* ')'}.  Permitted in \t{REQUIRED\_USE} in EAPIs listed in
+    table~\ref{tab:at-most-one-of-table} as supporting \t{REQUIRED\_USE ??}\ groups.
+    \featurelabel{at-most-one-of}
 \item A use-conditional group, which consists of an optional exclamation mark, followed by
     a use flag name, followed by a question mark, followed by whitespace, followed by
     an open parenthesis, followed by whitespace, followed by zero or more of (a dependency item
@@ -93,6 +100,23 @@ In particular, note that whitespace is not optional.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting \t{REQUIRED\_USE ??}\ groups} \label{tab:at-most-one-of-table}
+    \begin{tabular}{ l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED\_USE ??}\ groups?}} \\
+        \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{All-of Dependency Specifications}
 
 In an all-of group, all of the child elements must be matched.
@@ -126,6 +150,16 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 
 An empty exactly-one-of group counts as being matched.
 
+\subsection{At-most-one-of Dependency Specifications}
+
+Any use-conditional group that is an immediate child of an at-most-one-of group, if not enabled
+(disabled for an exclamation mark prefixed use flag name), is not considered a member of the
+at-most-one-of group for match purposes.
+
+In an at-most-one-of group, at most one immediate child element must be matched.
+
+An empty at-most-one-of group counts as being matched.
+
 \subsection{Package Dependency Specifications}
 
 A package dependency can be in one of the following base formats. A package manager must warn or

diff --git a/eapi-differences.tex b/eapi-differences.tex
index e94684e..6063558 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -49,6 +49,9 @@ Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
 \t{REQUIRED\_USE} & \compactfeatureref{required-use} &
     No & No & No & No & Yes & Yes \\
 
+\t{?? ( ) groups} & \compactfeatureref{at-most-one-of} &
+    No & No & No & No & No & Yes \\
+
 \t{PROPERTIES} & \compactfeatureref{properties} &
     Optionally & Optionally & Optionally & Optionally & Yes & Yes \\
 
@@ -255,6 +258,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
+\item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     76ddca560da42fd968c53a2a0c38a6ac840a7ad4
Author:     Ciaran McCreesh <ciaran.mccreesh <AT> googlemail <DOT> com>
AuthorDate: Sun May  6 17:34:51 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:29 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=76ddca56

EAPI 5 has EBUILD_PHASE_FUNC

See bug 390765

---
 eapi-differences.tex |    4 ++++
 ebuild-env-vars.tex  |   27 +++++++++++++++++++--------
 2 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bcef3a5..a2233e1 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -127,6 +127,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{REPLACED\_BY\_VERSION} & \compactfeatureref{replace-version-vars} &
     No & No & No & No & Yes & Yes \\
 
+\t{EBUILD\_PHASE\_FUNC} & \compactfeatureref{ebuild-phase-func} &
+    No & No & No & No & No & Yes \\
+
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
     No & No & No & Yes & Yes & Yes \\
 
@@ -264,6 +267,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
     \featureref{apply-user-patches}.
+\item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index fdffa42..cd0a6d9 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -173,6 +173,16 @@ variable.
     \t{postrm}, \t{info}, \t{pretend} according to the top level ebuild function that was executed
     by the package manager. May be unset or any single word that is not any of the above when the
     ebuild is being sourced for other (e.\,g.\ metadata or QA) purposes. \\
+\t{EBUILD\_PHASE\_FUNC} &
+    All &
+    No &
+    \featurelabel{ebuild-phase-func} Takes one of the values \t{pkg\_config}, \t{pkg\_setup},
+    \t{pkg\_nofetch}, \t{src\_unpack}, \t{src\_prepare}, \t{src\_configure}, \t{src\_compile},
+    \t{src\_test}, \t{src\_install}, \t{pkg\_preinst}, \t{pkg\_postinst}, \t{pkg\_prerm},
+    \t{pkg\_postrm}, \t{pkg\_info}, \t{pkg\_pretend} according to the top level ebuild function that
+    was executed by the package manager. May be unset or any single word that is not any of the
+    above when the ebuild is being sourced for other (e.\,g.\ metadata or QA) purposes. Only for
+    EAPIs listed in table~\ref{tab:env-vars-table} as supporting \t{EBUILD\_PHASE\_FUNC}. \\
 \t{WORKDIR} &
     \t{src\_*}, global~scope &
     Yes &
@@ -217,7 +227,7 @@ variable.
 
 \ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting various env variables} \label{tab:env-vars-table}
-    \begin{tabular}{ l l l l l l l }
+    \begin{tabular}{ l l l l l l l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
         \multicolumn{1}{c}{\textbf{\t{AA}?}} &
@@ -225,14 +235,15 @@ variable.
         \multicolumn{1}{c}{\textbf{\t{MERGE\_TYPE}?}} &
         \multicolumn{1}{c}{\textbf{\t{REPLACING\_VERSIONS}?}} &
         \multicolumn{1}{c}{\textbf{\t{REPLACED\_BY\_VERSION}?}} &
-        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} \\
+        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} &
+        \multicolumn{1}{c}{\textbf{\t{EBUILD\_PHASE\_FUNC}?}} \\
         \midrule
-    \t{0} & Yes & Yes & No & No & No & Yes \\
-    \t{1} & Yes & Yes & No & No & No & Yes \\
-    \t{2} & Yes & Yes & No & No & No & Yes \\
-    \t{3} & Yes & Yes & No & No & No & Yes \\
-    \t{4} & No & No & Yes & Yes & Yes & Yes \\
-    \t{5} & No & No & Yes & Yes & Yes & No \\
+    \t{0} & Yes & Yes & No & No & No & Yes & No \\
+    \t{1} & Yes & Yes & No & No & No & Yes & No \\
+    \t{2} & Yes & Yes & No & No & No & Yes & No \\
+    \t{3} & Yes & Yes & No & No & No & Yes & No \\
+    \t{4} & No & No & Yes & Yes & Yes & Yes & No \\
+    \t{5} & No & No & Yes & Yes & Yes & No & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     3ec4b3c22582a8ec206bce1e93bab377d7b264b5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 13 07:52:05 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:36:27 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=3ec4b3c2

src_test supports parallel tests in EAPI 5.

---
 eapi-differences.tex |    4 ++++
 ebuild-functions.tex |   24 ++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d4c4611..2b2ae80 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -94,6 +94,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{src\_compile} style & \compactfeatureref{src-compile} &
     0 & 1 & 2 & 2 & 2 & 2 \\
 
+Parallel tests & \compactfeatureref{parallel-tests} &
+    No & No & No & No & No & Yes \\
+
 \t{src\_install} style & \compactfeatureref{src-install} &
     no-op & no-op & no-op & no-op & 4 & 4 \\
 
@@ -268,6 +271,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \begin{compactitem}
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
+\item \t{src\_test} supports parallel tests, \featureref{parallel-tests}.
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 318a732..9836e33 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -273,13 +273,33 @@ provided.
 
 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\_test} function must, if tests are
-enabled, run \t{emake -j1 check} if and only if such a target is available, or if not run
-\t{emake -j1 test} if and only if such a target is available. In both cases, if \t{emake} returns
+enabled, run \t{emake check} if and only if such a target is available, or if not run
+\t{emake test} if and only if such a target is available. In both cases, if \t{emake} returns
 non-zero the build must be aborted.
 
+\featurelabel{parallel-tests} For EAPIs listed in table~\ref{tab:src-test-table} as not supporting
+parallel tests, the \t{emake} command must be called with option \t{-j1}.
+
 The \t{src\_test} function may be disabled by \t{RESTRICT}. See section~\ref{sec:restrict}. It may
 be disabled by user too, using a PM-specific mechanism.
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{\t{src\_test} behaviour for EAPIs} \label{tab:src-test-table}
+    \begin{tabular}{ l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
+        \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{src\_install}
 \label{sec:src-install-function}
 



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     4939df8586c7b17b03d8627a8371c988f4445a26
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 06:56:50 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:31:30 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=4939df85

new* commands can read from standard input in EAPI 5.

See bug 263565.

---
 eapi-differences.tex |    4 ++++
 pkg-mgr-commands.tex |   23 +++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4cc1c3a..d4c4611 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -160,6 +160,9 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
     N/A & N/A & No & No & Yes & Yes \\
 
+\t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
+    No & No & No & No & No & Yes \\
+
 Controllable compression & \compactfeatureref{controllable-compress} &
     No & No & No & No & Yes & Yes \\
 
@@ -272,6 +275,7 @@ EAPI 5 is EAPI 4 with the following changes:
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
 \item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
+\item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 9fcb8de..711d295 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -387,8 +387,10 @@ that can be passed to \t{dohtml} are as follows:
 \item[fperms] Acts as for \t{chmod}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
-\item[newbin] As for \t{dobin}, but takes two parameters. The first is the file to install; the
-    second is the new filename under which it will be installed.
+\item[newbin] \featurelabel{newfoo-stdin} As for \t{dobin}, but takes two parameters. The first is
+    the file to install; the second is the new filename under which it will be installed. In EAPIs
+    specified by table~\ref{tab:newfoo-stdin-table}, standard input is read when the first
+    parameter is \t{-} (a hyphen). In this case, it is an error if standard input is a terminal.
 
 \item[newconfd] As for \t{doconfd}, but takes two parameters as for \t{newbin}.
 
@@ -470,6 +472,23 @@ that can be passed to \t{dohtml} are as follows:
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting stdin for \t{new*} commands} \label{tab:newfoo-stdin-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsubsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees, all relative to \t{\$\{ED\}} in
 offset-prefix aware EAPIs and relative to \t{\$\{D\}} in offset-prefix agnostic EAPIs, used by the



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-05-17 12:02 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-05-17 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     91d1e1e39b034bde7e5b981a5616a127135f37fa
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 07:19:08 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 17 10:36:17 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=91d1e1e3

Make parsing of the EAPI assignment mandatory.

---
 ebuild-vars.tex |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f397f0e..a4586bf 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -136,8 +136,8 @@ the assignment statement must match the following regular expression:
 ^[ \t]*EAPI=(['"]?)([A-Za-z0-9+_.-]*)\1[ \t]*([ \t]#.*)?$
 \end{verbatim}
 
-The package manager may optionally determine the EAPI of an ebuild by parsing its first non-blank
-and non-comment line, using the above regular expression. If it matches, the EAPI is the substring
+The package manager must determine the EAPI of an ebuild by parsing its first non-blank and
+non-comment line, using the above regular expression. If it matches, the EAPI is the substring
 matched by the capturing parentheses (\t{0} if empty), otherwise it is \t{0}. For a recognised
 EAPI, the package manager must make sure that the \t{EAPI} value obtained by sourcing the ebuild
 with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-12 12:11 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-12 12:11 UTC (permalink / raw
  To: gentoo-commits

commit:     4db51f1d9e77927973c6d23e6fcff62a514c29c9
Author:     Andreas K. Huettel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 21 21:18:51 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Aug 12 12:15:55 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=4db51f1d

Define stability levels.

---
 ebuild-vars.tex |   27 +++++++++++++++++++++++----
 names.tex       |    8 +-------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 7eaabc5..01d2393 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -47,10 +47,8 @@ Ebuilds may define any of the following variables:
     (see section~\ref{sec:licenses-dir}). See section~\ref{sec:dependencies} for full syntax.
     \label{ebuild-var-LICENSE}
 \item[KEYWORDS] A whitespace separated list of keywords for the ebuild. Each token must be a valid
-    keyword name, as per section~\ref{sec:keyword-names}. May include \t{-*}, which indicates that
-    the package will only work on explicitly listed archs. May include \t{-arch}, which indicates
-    that the package will not work on the specified arch. May be empty, which indicates uncertain
-    functionality on any architecture.
+    keyword name, as per section~\ref{sec:keyword-names}. See section~\ref{sec:keywords} for full
+    syntax.
 \item[IUSE] The \t{USE} flags used by the ebuild. 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. See section~\ref{sec:use-iuse-handling} for discussion on
@@ -143,6 +141,27 @@ EAPI, the package manager must make sure that the \t{EAPI} value obtained by sou
 with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if
 these values are different.
 
+\subsection{Keywords}
+\label{sec:keywords}
+
+Keywords are used to indicate levels of stability of a package on a respective architecture
+\t{arch}. The following conventions are used:
+\begin{itemize}
+\item \t{arch}: Both the package version and the ebuild are widely tested, known to work and not
+    have any serious issues on the indicated platform. This is referred to as a \i{stable keyword}.
+\item \t{\textasciitilde arch}: The package version and the ebuild are believed to work and do
+    not have any known serious bugs, but more testing is required before the package version is
+    considered suitable for obtaining a stable keyword. This is referred to as an \i{unstable
+    keyword} or a \i{testing keyword}.
+\item No keyword: It is not known whether the package will work, or insufficient testing has
+    occurred.
+\item \t{-arch}: The package version will not work on the architecture.
+\end{itemize}
+The \t{-*} keyword is used to indicate package versions which are not worth trying to test on
+unlisted architectures.
+
+An empty \t{KEYWORDS} variable indicates uncertain functionality on any architecture.
+
 \subsection{\t{RDEPEND} value}
 \label{sec:rdepend-depend}
 

diff --git a/names.tex b/names.tex
index fd9731c..decc8f4 100644
--- a/names.tex
+++ b/names.tex
@@ -40,13 +40,7 @@ hyphen. In addition, every repository name must also be a valid package name.
 \label{sec:keyword-names}
 A keyword name may contain any of the characters [\t{A-Za-z0-9\_-}]. It must not begin with a
 hyphen. In contexts where it makes sense to do so, a keyword name may be prefixed by
-a tilde or a hyphen. In \t{KEYWORDS}, \t{-*} is also acceptable as a keyword, to indicate that
-a package will only work on listed targets.
-
-A tilde prefixed keyword is, by convention, used to indicate a less stable package. It is generally
-assumed that any user accepting keyword \t{\textasciitilde{}foo} will also accept \t{foo}.
-
-The exact meaning of any keywords value is beyond the scope of this specification.
+a tilde or a hyphen. In \t{KEYWORDS}, \t{-*} is also acceptable as a keyword.
 
 \subsection{EAPI Names}
 \label{sec:eapi-names}


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-12 12:11 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-12 12:11 UTC (permalink / raw
  To: gentoo-commits

commit:     c54f758c521714561f0ca94d7d185f516b79df59
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 12 09:45:00 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Aug 12 09:45:00 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=c54f758c

Merge branch 'master' into eapi-5

Conflicts:
	ebuild-vars.tex
	pms.tex


 credits.tex          |   14 +++-----
 ebuild-vars.tex      |   92 +++++++++++++++++++++++++-------------------------
 pkg-mgr-commands.tex |    2 +-
 pms.cls              |   17 +--------
 pms.tex              |   21 +++++++++++
 5 files changed, 75 insertions(+), 71 deletions(-)

diff --cc ebuild-vars.tex
index a4586bf,1dadc35..7eaabc5
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@@ -34,27 -60,24 +60,25 @@@ Ebuilds may define any of the followin
      \t{IUSE} defaults, 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{sec:keyword-names}. May include \t{-*}, which
-     indicates that the package will only work on explicitly listed archs. May include \t{-arch},
-     which indicates that the package will not work on the specified arch. May be empty, which
-     indicates uncertain functionality on any architecture. May be defined in an eclass.
- \item[LICENSE] The package's license. Each text token must correspond to a tree ``licenses/'' entry
-     (see section~\ref{sec:licenses-dir}). See section~\ref{sec:dependencies} for full syntax.
-     May be defined by an eclass. \label{ebuild-var-LICENSE}
- \item[SLOT] The package's slot. Must be a valid slot name, as per section~\ref{sec:slot-names}. May
-     be defined by an eclass. Must not be empty.
- \item[SRC\_URI] A list of source URIs for the package. Valid protocols are \t{http://},
-     \t{https://}, \t{ftp://} and \t{mirror://} (see section~\ref{sec:thirdpartymirrors} for mirror
-     behaviour). Fetch restricted packages may include URL parts consisting of just a filename.
-     May be defined by an eclass. See section~\ref{sec:dependencies} for full syntax.
+ \item[REQUIRED\_USE] \featurelabel{required-use} Zero or more assertions that must be met by the
+     configuration of \t{USE} flags to be valid for this ebuild. See section~\ref{sec:required-use}
+     for description and section~\ref{sec:dependencies} for full syntax. Only in EAPIs listed in
+     table~\ref{tab:optional-vars-table} as supporting \t{REQUIRED\_USE}.
+ \item[PROPERTIES] \featurelabel{properties} Zero or more properties for this package.
+     See section~\ref{sec:properties} for value meanings and section~\ref{sec:dependencies} for full
+     syntax. For EAPIs listed in table~\ref{tab:optional-vars-table} as having optional support,
+     ebuilds must not rely upon the package manager recognising or understanding this variable in
+     any way.
+ \item[RESTRICT] Zero or more behaviour restrictions for this package. See section~\ref{sec:restrict}
+     for value meanings and section~\ref{sec:dependencies} for full syntax.
+ \item[DEPEND] See section~\ref{sec:dependencies}.
+ \item[RDEPEND] See section~\ref{sec:dependencies}. For some EAPIs, \t{RDEPEND} has special behaviour
+     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
+     details.
+ \item[PDEPEND] See section~\ref{sec:dependencies}.
  \end{description}
  
- If any of these variables are undefined, or if any of these variables are set to invalid values,
- the package manager's behaviour is undefined; ideally, an error in one ebuild should not prevent
- operations upon other ebuilds or packages.
- 
 +\ChangeWhenAddingAnEAPI{5}
  \begin{centertable}{EAPIs supporting \t{IUSE} defaults} \label{tab:iuse-defaults-table}
      \begin{tabular}{ l l }
          \toprule
@@@ -71,31 -93,6 +95,7 @@@
      \end{tabular}
  \end{centertable}
  
- \section{Optional Ebuild-defined Variables}
- 
- Ebuilds may define any of the following variables:
- 
- \begin{description}
- \item[DEPEND] See section~\ref{sec:dependencies}.
- \item[EAPI] The EAPI. See below.
- \item[PDEPEND] See section~\ref{sec:dependencies}.
- \item[RDEPEND] See section~\ref{sec:dependencies}. For some EAPIs, \t{RDEPEND} has special behaviour
-     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
-     details.
- \item[RESTRICT] Zero or more behaviour restrictions for this package. See section~\ref{sec:restrict}
-     for value meanings and section~\ref{sec:dependencies} for full syntax.
- \item[PROPERTIES] \featurelabel{properties} Zero or more properties for this package. See
-     section~\ref{sec:properties} for value meanings and section~\ref{sec:dependencies} for full
-     syntax. For EAPIs listed in table~\ref{tab:optional-vars-table} as having optional support,
-     ebuilds must not rely upon the package manager recognising or understanding this variable in
-     any way.
- \item[REQUIRED\_USE] \featurelabel{required-use} Zero or more assertions that must be met by the
-     configuration of \t{USE} flags to be valid for this ebuild. See section~\ref{sec:required-use}
-     for description and section~\ref{sec:dependencies} for full syntax. Only in EAPIs listed in
-     table~\ref{tab:optional-vars-table} as supporting \t{REQUIRED\_USE}.
- \end{description}
- 
 +\ChangeWhenAddingAnEAPI{5}
  \begin{centertable}{EAPIs supporting various ebuild-defined variables}
  \label{tab:optional-vars-table}
      \begin{tabular}{ l l l }
diff --cc pms.tex
index d0ceda2,7244be9..5885c9c
--- a/pms.tex
+++ b/pms.tex
@@@ -1,8 -1,26 +1,29 @@@
  \documentclass{pms}
  
+ \title{Package Manager Specification}
+ \author{%
+     Stephen P. Bennett \\
+     \href{mailto:spb@exherbo.org}{spb@exherbo.org}
+     \and
+     Christian Faulhammer \\
+     \href{mailto:fauli@gentoo.org}{fauli@gentoo.org}
+     \and
+     Ciaran McCreesh \\
+     \href{mailto:ciaran.mccreesh@googlemail.com}{ciaran.mccreesh@googlemail.com}
+     \and
+     Ulrich Müller \\
+     \href{mailto:ulm@gentoo.org}{ulm@gentoo.org}
+ }
+ \hypersetup{%
+     pdftitle={Package Manager Specification},
+     pdfauthor={Stephen P. Bennett, Christian Faulhammer, Ciaran McCreesh, Ulrich Müller},
+     pdfsubject={Defining a feature set for package managers in the Gentoo world},
+     pdfkeywords={Gentoo, package manager, specification},
+ }
+ 
 +\CurrentEAPIIs{5}
 +\ChangeWhenAddingAnEAPI{5}
 +
  \begin{document}
  \maketitle
  


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-12 12:11 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-12 12:11 UTC (permalink / raw
  To: gentoo-commits

commit:     2921080e5b4f67ae55d2f80f8fea2b8d47ced831
Author:     Andreas K. Huettel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 21 20:55:25 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Aug 12 12:15:55 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=2921080e

EAPI 5 has stable use forcing and masking.

---
 eapi-differences.tex |    5 ++++
 profiles.tex         |   65 ++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 63 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2b2ae80..748e2b4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -40,6 +40,9 @@
 \bottomrule
 \endlastfoot
 
+Stable use masking/forcing & \compactfeatureref{stablemask} &
+    No & No & No & No & No & Yes \\
+
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
     No & No & No & No & No & Yes \\
 
@@ -269,6 +272,8 @@ EAPI 4 is EAPI 3 with the following changes:
 EAPI 5 is EAPI 4 with the following changes:
 
 \begin{compactitem}
+\item \t{package.use.stable.mask} and \t{package.use.stable.force} can be used to restrict
+    use flag combinations, \featureref{stablemask}
 \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}.
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
 \item \t{src\_test} supports parallel tests, \featureref{parallel-tests}.

diff --git a/profiles.tex b/profiles.tex
index 8246431..8fb7674 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -108,14 +108,43 @@ the forms defined by the directory's EAPI.
 
 \subsection{USE masking and forcing}
 \label{sec:use-masking}
-This section covers the four files \t{use.mask}, \t{use.force}, \t{package.use.mask} and
-\t{package.use.force}. They are described together because they interact in a non-trivial manner.
+This section covers the eight files \t{use.mask}, \t{use.force}, \t{use.stable.mask},
+\t{use.stable.force}, \t{package.use.mask}, \t{package.use.force}, \t{package.use.stable.mask},
+and \t{package.use.stable.force}. They are described together because they interact in a non-trivial
+manner.
 
 Simply speaking, \t{use.mask} and \t{use.force} are used to say that a given USE flag must never or
 always, respectively, be enabled when using this profile. \t{package.use.mask} and
-\t{package.use.force} do the same thing on a per-package, or per-version, basis. The precise manner
-in which they interact is less simple, and is best described in terms of the algorithm used to
-determine whether a flag is masked for a given package version. This is described in Algorithm~\ref{alg:use-masking}.
+\t{package.use.force} do the same thing on a per-package, or per-version, basis.
+
+\featurelabel{stablemask}
+In profile directories with an EAPI supporting stable masking, as listed in
+table~\ref{tab:profile-stablemask}, the same is true for \t{use.stable.mask}, \t{use.stable.force},
+\t{package.use.stable.mask} and \t{package.use.stable.force}. These files, however, only act on
+packages that are merged due to a stable keyword in the sense of subsection~\ref{sec:keywords}.
+Thus, these files can be used to restrict the feature set deemed stable in a package.
+
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{Profile directory support for masking/forcing use flags in stable
+versions only}\label{tab:profile-stablemask}
+    \begin{tabular}{ l l l }
+        \toprule
+        \multicolumn{1}{c}{\textbf{EAPI}} &
+        \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
+        \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
+The precise manner in which the eight files interact is less simple, and is best described in terms
+of the algorithm used to determine whether a flag is masked for a given package version. This is
+described in Algorithm~\ref{alg:use-masking}.
 \begin{algorithm}
 \caption{USE masking logic} \label{alg:use-masking}
 \begin{algorithmic}[1]
@@ -126,6 +155,13 @@ determine whether a flag is masked for a given package version. This is describe
     \ELSIF{\t{use.mask} contains \i{-flag}}
         \STATE let masked = false
     \ENDIF
+    \IF{stable keyword in use}
+        \IF{\t{use.stable.mask} contains \i{flag}}
+            \STATE let masked = true
+        \ELSIF{\t{use.stable.mask} contains \i{-flag}}
+            \STATE let masked = false
+        \ENDIF
+    \ENDIF
     \FOR{each $line$ in package.use.mask, in order, for which the spec matches $package$}
         \IF{$line$ contains \i{flag}}
             \STATE let masked = true
@@ -133,12 +169,27 @@ determine whether a flag is masked for a given package version. This is describe
             \STATE let masked = false
         \ENDIF
     \ENDFOR
+    \IF{stable keyword in use}
+        \FOR{each $line$ in package.use.stable.mask, in order, for which the spec matches $package$}
+            \IF{$line$ contains \i{flag}}
+                \STATE let masked = true
+            \ELSIF{$line$ contains \i{-flag}}
+                \STATE let masked = false
+            \ENDIF
+        \ENDFOR
+    \ENDIF
 \ENDFOR
 \end{algorithmic}
 \end{algorithm}
 
-The logic for \t{use.force} and \t{package.use.force} is identical. If a flag is both masked and
-forced, the mask is considered to take precedence.
+Stable restrictions (``stable keyword in use'' in Algorithm~\ref{alg:use-masking}) are applied
+exactly if replacing in \t{KEYWORDS} all stable keywords by the corresponding tilde prefixed
+keywords (see subsection~\ref{sec:keywords}) would result in the package installation being
+prevented due to the \t{KEYWORDS} setting.
+
+The logic for \t{use.force}, \t{use.stable. force}, \t{package.use.force}, and
+\t{package.use.stable.force} is identical. If a flag is both masked and forced, the mask is
+considered to take precedence.
 
 \t{USE\_EXPAND} values may be forced or masked by using \t{expand\_name\_value}.
 


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-14  5:56 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-14  5:56 UTC (permalink / raw
  To: gentoo-commits

commit:     6a95dae3fa6b8a6307f5d02c09dc550f1fbe97f2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 14 06:03:23 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Aug 14 06:03:23 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=6a95dae3

Fix name of findutils package.

---
 ebuild-env-commands.tex |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ebuild-env-commands.tex b/ebuild-env-commands.tex
index 1129fa6..f3be9ef 100644
--- a/ebuild-env-commands.tex
+++ b/ebuild-env-commands.tex
@@ -29,7 +29,7 @@ The following commands must always be available in the ebuild environment:
 \item \t{sed} must be available, and must support all forms of invocations valid for GNU sed
     version 4 or later.
 \item \t{patch} must be available, and must support all inputs valid for GNU patch.
-\item \t{find} must be available, and must support all forms of invocations valid for GNU find
+\item \t{find} must be available, and must support all forms of invocations valid for GNU findutils
     version 4.4 or later. Only for EAPIs listed in table~\ref{tab:system-commands-table} as
     requiring GNU find. \featurelabel{gnu-find}
 \end{compactitem}


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-16 19:51 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-16 19:51 UTC (permalink / raw
  To: gentoo-commits

commit:     421f2b9ae05999d621eb663f263ca93eaad0ae57
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 12 08:55:51 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Aug 16 19:57:41 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=421f2b9a

Require xargs in addition to find.

---
 ebuild-env-commands.tex |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ebuild-env-commands.tex b/ebuild-env-commands.tex
index f3be9ef..6ca6521 100644
--- a/ebuild-env-commands.tex
+++ b/ebuild-env-commands.tex
@@ -29,9 +29,9 @@ The following commands must always be available in the ebuild environment:
 \item \t{sed} must be available, and must support all forms of invocations valid for GNU sed
     version 4 or later.
 \item \t{patch} must be available, and must support all inputs valid for GNU patch.
-\item \t{find} must be available, and must support all forms of invocations valid for GNU findutils
-    version 4.4 or later. Only for EAPIs listed in table~\ref{tab:system-commands-table} as
-    requiring GNU find. \featurelabel{gnu-find}
+\item \t{find} and \t{xargs} must be available, and must support all forms of invocations valid
+    for GNU findutils version 4.4 or later. Only for EAPIs listed in
+    table~\ref{tab:system-commands-table} as requiring GNU find. \featurelabel{gnu-find}
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-17  6:46 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-17  6:46 UTC (permalink / raw
  To: gentoo-commits

commit:     5d6749ac9e5ddc5b1daaad7737b65fa81c6ece47
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 16 05:15:05 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Aug 17 06:49:17 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=5d6749ac

Extend slot-operator-deps with sub-slot support

---
 dependencies.tex     |   40 +++++++++++++++++++++++++---------------
 eapi-differences.tex |    1 +
 ebuild-vars.tex      |    8 ++++++++
 3 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 1e5b6e8..47c0261 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -184,18 +184,20 @@ manager must warn or error if this feature is used with an EAPI not supporting u
 \note Order is important. The slot restriction must come before use dependencies.
 
 \ChangeWhenAddingAnEAPI{5}
-\begin{centertable}{EAPIs supporting \t{SLOT} dependencies} \label{tab:slot-deps-table}
-    \begin{tabular}{ l l }
+\begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
+    \label{tab:slot-deps-table}
+    \begin{tabular}{ l l l }
         \toprule
             \multicolumn{1}{c}{\textbf{EAPI}} &
-            \multicolumn{1}{c}{\textbf{Supports \t{SLOT} dependencies?}} \\
+            \multicolumn{1}{c}{\textbf{Supports \t{SLOT} dependencies?}} &
+            \multicolumn{1}{c}{\textbf{Supports sub-slots?}} \\
             \midrule
-    \t{0} & No \\
-    \t{1} & Named only \\
-    \t{2} & Named only \\
-    \t{3} & Named only \\
-    \t{4} & Named only \\
-    \t{5} & Named and operator \\
+    \t{0} & No & No \\
+    \t{1} & Named only & No \\
+    \t{2} & Named only & No \\
+    \t{3} & Named only & No \\
+    \t{4} & Named only & No \\
+    \t{5} & Named and operator & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}
@@ -278,6 +280,10 @@ specification with a named slot dependency matches only if the slot of the match
 to the slot specified. If the slot of the package to match cannot be determined (e.\,g.\ because it
 is not a supported \t{EAPI}), the match is treated as unsuccessful.
 
+\featurelabel{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting sub-slots,
+a slot dependency may contain an optional sub-slot part that follows the regular slot and is
+delimited by a \t{/} character.
+
 \featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
 the following operators:
 
@@ -286,14 +292,18 @@ the following operators:
 indicates that the package will not break if the matched package is uninstalled and replaced by
 a different matching package in a different slot.
 \item[=] Indicates that any slot value is acceptable. In addition, for runtime dependencies,
-indicates that the package will break unless a matching package with slot equal to the slot of
-the best installed version at the time the package was installed is available.
+indicates that the package will break unless a matching package with slot and sub-slot equal to the
+slot and sub-slot of the best installed version at the time the package was installed is available.
+\item[slot=] Indicates that only a specific slot value is acceptable, and otherwise behaves
+identically to the plain equals slot operator.
 \end{description}
 
-To implement the equals slot operator, the package manager will need to store the slot of the
-best installed version of the matching package. The package manager may do this by appending
-the appropriate slot after the equals sign when saving the package's dependencies. This syntax
-is only for package manager use and must not be used by ebuilds.
+To implement the equals slot operator, the package manager will need to store the slot/sub-slot
+pair of the best installed version of the matching package. This syntax is only for package manager
+use and must not be used by ebuilds. The package manager may do this by inserting the appropriate
+slot/sub-slot pair between the colon and equals sign when saving the package's dependencies. The
+sub-slot part must not be omitted here (when the SLOT variable omits the sub-slot part, the package
+is considered to have an implicit sub-slot which is equal to the regular slot).
 
 \subsubsection{2-Style and 4-Style Use Dependencies}
 \label{sec:use-dep}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 748e2b4..f35afc9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -280,6 +280,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
+\item \t{SLOT} now supports an optional sub-slot part, \featureref{sub-slot}.
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 01d2393..53de53d 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -29,6 +29,14 @@ All ebuilds must define at least the following variables:
     eclass. Must not be empty.
 \item[SLOT] The package's slot. Must be a valid slot name, as per section~\ref{sec:slot-names}.
     May be defined by an eclass. Must not be empty.
+
+    In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting sub-slots, the \t{SLOT} variable
+    may contain an optional sub-slot part that follows the regular slot and is delimited by a \t{/}
+    character. The sub-slot must be a valid slot name, as per section~\ref{sec:slot-names}.
+    The sub-slot is used to represent cases in which an upgrade to a new version of a package with
+    a different sub-slot may require dependent packages to be rebuilt. When the sub-slot part is
+    omitted from the \t{SLOT} definition, the package is considered to have an implicit sub-slot
+    which is equal to the regular slot.
 \end{description}
 
 \section{Optional Ebuild-defined Variables}


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-29 12:03 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-29 12:03 UTC (permalink / raw
  To: gentoo-commits

commit:     0baa17305a680cc62a629ccd8350a40b68aca9de
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 29 06:11:26 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 29 06:11:26 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=0baa1730

Revert "IMAGE is removed in EAPI 5."

This reverts commit 489a60deede1a0d78edb545e97b0e17addaa6ab4.

Conflicts:
	eapi-differences.tex
	ebuild-env-vars.tex

---
 eapi-differences.tex |    4 ----
 ebuild-env-vars.tex  |   20 +++++++++-----------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f35afc9..4c1cd5f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,9 +121,6 @@ Parallel tests & \compactfeatureref{parallel-tests} &
 \t{KV} & \compactfeatureref{kv} &
     Yes & Yes & Yes & Yes & No & No \\
 
-\t{IMAGE} & \compactfeatureref{image} &
-    Yes & Yes & Yes & Yes & Yes & No \\
-
 \t{MERGE\_TYPE} & \compactfeatureref{merge-type} &
     No & No & No & No & Yes & Yes \\
 
@@ -278,7 +275,6 @@ EAPI 5 is EAPI 4 with the following changes:
 \item Slot operator dependencies, \featureref{slot-operator-deps}.
 \item \t{src\_test} supports parallel tests, \featureref{parallel-tests}.
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
-\item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
 \item \t{SLOT} now supports an optional sub-slot part, \featureref{sub-slot}.
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 55cdb14..8064a75 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -154,8 +154,7 @@ variable.
 \t{IMAGE}\footnote{Deprecated in favour of \t{D}.} &
     \t{pkg\_preinst}, \t{pkg\_postinst} &
     Yes &
-    \featurelabel{image} Equal to \t{D}. Only for EAPIs listed in table~\ref{tab:removed-env-vars-table} as
-    supporting \t{IMAGE}. \\
+    Equal to \t{D}. \\
 \t{INSDESTTREE} &
     \t{src\_install} &
     No &
@@ -247,19 +246,18 @@ variable.
 
 \ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting various removed env variables} \label{tab:removed-env-vars-table}
-    \begin{tabular}{ l l l l }
+    \begin{tabular}{ l l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
         \multicolumn{1}{c}{\textbf{\t{AA}?}} &
-        \multicolumn{1}{c}{\textbf{\t{KV}?}} &
-        \multicolumn{1}{c}{\textbf{\t{IMAGE}?}} \\
+        \multicolumn{1}{c}{\textbf{\t{KV}?}} \\
         \midrule
-    \t{0} & Yes & Yes & Yes \\
-    \t{1} & Yes & Yes & Yes \\
-    \t{2} & Yes & Yes & Yes \\
-    \t{3} & Yes & Yes & Yes \\
-    \t{4} & No & No & Yes \\
-    \t{5} & No & No & No \\
+    \t{0} & Yes & Yes \\
+    \t{1} & Yes & Yes \\
+    \t{2} & Yes & Yes \\
+    \t{3} & Yes & Yes \\
+    \t{4} & No & No \\
+    \t{5} & No & No \\
     \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-29 12:03 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-29 12:03 UTC (permalink / raw
  To: gentoo-commits

commit:     756c70c2742147c8bae7e2c669512c6861039856
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 29 06:12:36 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 29 06:12:36 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=756c70c2

Merge branch 'master' into eapi-5


 ebuild-env-vars.tex |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-30 18:20 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-30 18:20 UTC (permalink / raw
  To: gentoo-commits

commit:     2c0d6eaf46fc977552fc38b7d2e32dce78db8311
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 30 18:27:46 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Aug 30 18:27:46 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=2c0d6eaf

Add missing entry for sub-slots to table of EAPI features.

---
 eapi-differences.tex |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4c1cd5f..49d3fbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -70,6 +70,9 @@ Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
 Slot dependencies & \compactfeatureref{slot-deps} &
     No & Named & Named & Named & Named & Named and Operator \\
 
+Sub-slots & \compactfeatureref{sub-slot} &
+    No & No & No & No & No & Yes \\
+
 Use dependencies & \compactfeatureref{use-deps} &
     No & No & 2-style & 2-style & 4-style & 4-style \\
 


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-30 19:50 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-30 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     25fb5fca6674215ea8aaa3d0ec3dd3df451eec07
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 30 17:37:49 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Aug 30 19:43:02 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=25fb5fca

EAPI 5 supports --host-root option for *_version

See bug 401239

---
 eapi-differences.tex |    5 +++++
 pkg-mgr-commands.tex |   24 +++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 49d3fbc..6eac052 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -151,6 +151,9 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{dosed} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Yes & Banned & Banned \\
 
+Option \t{-{}-host-root} & \compactfeatureref{host-root-option} &
+    No & No & No & No & No & Yes \\
+
 \t{econf} arguments & \compactfeatureref{econf-options} &
     &  &  &  & disable dependency tracking & disable dependency tracking, disable silent rules \\
 
@@ -284,6 +287,8 @@ EAPI 5 is EAPI 4 with the following changes:
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
 \item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
+\item \t{best\_version} and \t{has\_version} support the \t{-{}-host-root} option,
+    \featureref{host-root-option}.
 \item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
 \end{compactitem}
 

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 573811a..e844379 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -77,9 +77,13 @@ argument. Ebuilds must not run any of these commands once the current phase func
 \end{description}
 
 \subsubsection{Package manager query commands}
-These commands are used to extract information about the host system. Ebuilds must not run any of
+These commands are used to extract information about the system. Ebuilds must not run any of
 these commands in parallel with any other package manager command. Ebuilds must not run any of
 these commands once the current phase function has returned.
+
+\featurelabel{host-root-option} In EAPIs listed in table~\ref{tab:foo-version-host-root-table} as
+supporting option \t{-{}-host-root}, this option will cause the query to apply to the host root
+instead of \t{ROOT}.
 \begin{description}
 \item[has\_version] Takes exactly one package dependency specification as an argument. Returns
     true if a package matching the atom is installed in \t{ROOT}, and false otherwise.
@@ -489,6 +493,24 @@ that can be passed to \t{dohtml} are as follows:
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting \t{-{}-host-root} for \t{*\_version} commands}
+    \label{tab:foo-version-host-root-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{\t{*\_version} supports \t{-{}-host-root}?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsubsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees, all relative to \t{\$\{ED\}} in
 offset-prefix aware EAPIs and relative to \t{\$\{D\}} in offset-prefix agnostic EAPIs, used by the


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-08-31 16:16 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-08-31 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     fe5cf5e91299156dc74338c897d9a7bfb8883f5a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 31 15:53:51 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Aug 31 15:54:47 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=fe5cf5e9

EAPI 5 supports doheader.

See bug 21310.

---
 eapi-differences.tex |    4 ++++
 pkg-mgr-commands.tex |   25 +++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 6eac052..c70231f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -160,6 +160,9 @@ Option \t{-{}-host-root} & \compactfeatureref{host-root-option} &
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     No & No & No & No & Yes & Yes \\
 
+\t{doheader} & \compactfeatureref{doheader} &
+    No & No & No & No & No & Yes \\
+
 \t{doins} handles symlinks & \compactfeatureref{doins} &
     No & No & No & No & Yes & Yes \\
 
@@ -289,6 +292,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
 \item \t{best\_version} and \t{has\_version} support the \t{-{}-host-root} option,
     \featureref{host-root-option}.
+\item \t{doheader} and \t{newheader} support, \featureref{doheader}.
 \item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
 \end{compactitem}
 

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e844379..0f003eb 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -288,6 +288,12 @@ function has returned.
     listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
+\item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/},
+    by default with file mode \t{0644}. This can be overridden by setting \t{INSOPTIONS} with the
+    \t{insopts} function.
+    Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}.
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
 \item[dohtml] Installs the given HTML files into a subdirectory under \t{/usr/share/doc/\$PF/}.
 The subdirectory is \t{html} by default, but this can be overridden by setting the \t{DOCDESTTREE}
 variable with the \t{docinto} function. Files to be installed automatically are determined by
@@ -404,6 +410,8 @@ that can be passed to \t{dohtml} are as follows:
 
 \item[newexe] As above, for \t{doexe}.
 
+\item[newheader] As above, for \t{doheader}.
+
 \item[newinitd] As above, for \t{doinitd}.
 
 \item[newins] As above, for \t{doins}.
@@ -441,6 +449,23 @@ that can be passed to \t{dohtml} are as follows:
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}} \label{tab:doheader-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{5}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}} \label{tab:doins-table}
     \begin{tabular}{ l l }
         \toprule


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-09-04  8:58 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-09-04  8:58 UTC (permalink / raw
  To: gentoo-commits

commit:     d9ef20fa5b959f1878179342c5ed010534a954bf
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 31 16:17:37 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Sep  1 06:02:55 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=d9ef20fa

EAPI 5 supports usex.

See bug 382963.

---
 eapi-differences.tex |    4 ++++
 pkg-mgr-commands.tex |   23 +++++++++++++++++++++++
 2 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index c70231f..2c04dd7 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -184,6 +184,9 @@ Controllable compression & \compactfeatureref{controllable-compress} &
 \t{use\_with} empty third arg & \compactfeatureref{use-with} &
     No & No & No & No & Yes & Yes \\
 
+\t{usex} & \compactfeatureref{usex} &
+    No & No & No & No & No & Yes \\
+
 \t{unpack} support for \t{xz}? & \compactfeatureref{unpack-extensions} &
     No & No & No & Yes & Yes & Yes \\
 
@@ -294,6 +297,7 @@ EAPI 5 is EAPI 4 with the following changes:
     \featureref{host-root-option}.
 \item \t{doheader} and \t{newheader} support, \featureref{doheader}.
 \item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
+\item \t{usex} support, \featureref{usex}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{5}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0f003eb..a04556e 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -664,6 +664,12 @@ either behaviour is undefined or it is an error as decided by table~\ref{tab:use
     \t{-{}-without-\$\{opt\}}.
 \item[use\_enable] Works the same as \t{use\_with()}, but outputs \t{-{}-enable-} or \t{-{}-disable-}
 instead of \t{-{}-with-} or \t{-{}-without-}.
+\item[usex] \featurelabel{usex} Accepts at least one and at most five arguments. The first argument
+    is a USE flag name, any subsequent arguments (\t{\$\{arg2\}} to \t{\$\{arg5\}}) are string
+    values. If not provided, \t{\$\{arg2\}} and \t{\$\{arg3\}} default to \t{yes} and \t{no},
+    respectively; \t{\$\{arg4\}} and \t{\$\{arg5\}} default to the empty string. If the USE flag is
+    set, outputs \t{\$\{arg2\}\$\{arg4\}}. Otherwise, outputs \t{\$\{arg3\}\$\{arg5\}}.
+    Only available in EAPIs listed in table~\ref{tab:usex-table} as supporting \t{usex}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{5}
@@ -701,6 +707,23 @@ instead of \t{-{}-with-} or \t{-{}-without-}.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{EAPIs supporting \t{usex}} \label{tab:usex-table}
+    \begin{tabular}{ l l }
+        \toprule
+            \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{Supports \t{usex}?}} \\
+            \midrule
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & No \\
+    \t{3} & No \\
+    \t{4} & No \\
+    \t{5} & Yes \\
+    \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsubsection{Text List Functions}
 These functions check whitespace-separated lists for a particular value.
 


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-09-09 19:54 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-09-09 19:54 UTC (permalink / raw
  To: gentoo-commits

commit:     876333d210847fd1c399bf15af19975f173a26f4
Author:     David Leverton <levertond <AT> googlemail <DOT> com>
AuthorDate: Sun Sep  9 14:17:13 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Sep  9 19:57:44 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=876333d2

Clarify that --host-root must be the first argument

---
 pkg-mgr-commands.tex |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a04556e..a6dd807 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -82,8 +82,8 @@ these commands in parallel with any other package manager command. Ebuilds must
 these commands once the current phase function has returned.
 
 \featurelabel{host-root-option} In EAPIs listed in table~\ref{tab:foo-version-host-root-table} as
-supporting option \t{-{}-host-root}, this option will cause the query to apply to the host root
-instead of \t{ROOT}.
+supporting option \t{-{}-host-root}, this flag as the first argument will cause the query to apply
+to the host root instead of \t{ROOT}.
 \begin{description}
 \item[has\_version] Takes exactly one package dependency specification as an argument. Returns
     true if a package matching the atom is installed in \t{ROOT}, and false otherwise.


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-09-11 20:41 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-09-11 20:41 UTC (permalink / raw
  To: gentoo-commits

commit:     ad2484e3d4341d798d1db749ec8d1c09c31a8892
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 10 21:50:01 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 10 21:50:01 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=ad2484e3

Allow !flag as argument of usex.

---
 pkg-mgr-commands.tex |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a6dd807..e4134e9 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -669,6 +669,7 @@ instead of \t{-{}-with-} or \t{-{}-without-}.
     values. If not provided, \t{\$\{arg2\}} and \t{\$\{arg3\}} default to \t{yes} and \t{no},
     respectively; \t{\$\{arg4\}} and \t{\$\{arg5\}} default to the empty string. If the USE flag is
     set, outputs \t{\$\{arg2\}\$\{arg4\}}. Otherwise, outputs \t{\$\{arg3\}\$\{arg5\}}.
+    The condition is inverted if the flag name is prefixed with~\t{!}.
     Only available in EAPIs listed in table~\ref{tab:usex-table} as supporting \t{usex}.
 \end{description}
 


^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [gentoo-commits] proj/pms:eapi-5 commit in: /
@ 2012-09-11 20:41 Ulrich Mueller
  0 siblings, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2012-09-11 20:41 UTC (permalink / raw
  To: gentoo-commits

commit:     a50e3dc1250328b3c912b22a9b0ebdaaefbab7e1
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 11 20:36:04 2012 +0000
Commit:     Ulrich Mueller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Sep 11 20:36:04 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=a50e3dc1

Revert "EAPI 5 has apply_user_patches"

User patches have been rejected for EAPI 5 in today's council meeting.

This reverts commit a8bf7862967cce36b7f1b408934a774126da2538.

Conflicts:
	eapi-differences.tex

---
 eapi-differences.tex |    5 -----
 ebuild-functions.tex |   30 +++++++++++-------------------
 pkg-mgr-commands.tex |   26 --------------------------
 3 files changed, 11 insertions(+), 50 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2c04dd7..9a9ebc2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -91,9 +91,6 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{src\_prepare} & \compactfeatureref{src-prepare} &
     No & No & Yes & Yes & Yes & Yes \\
 
-\t{apply\_user\_patches} & \compactfeatureref{apply-user-patches} &
-    No & No & No & No & No & Yes \\
-
 \t{src\_configure} & \compactfeatureref{src-configure} &
     No & No & Yes & Yes & Yes & Yes \\
 
@@ -289,8 +286,6 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
 \item \t{SLOT} now supports an optional sub-slot part, \featureref{sub-slot}.
-\item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
-    \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
 \item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
 \item \t{best\_version} and \t{has\_version} support the \t{-{}-host-root} option,

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 9836e33..1f2ab68 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -127,35 +127,27 @@ src_unpack() {
 \label{sec:src-prepare-function}
 
 \featurelabel{src-prepare} The \t{src\_prepare} function is only called for EAPIs listed in
-table~\ref{tab:src-prepare-table} as supporting it. For EAPIs whose behaviour is listed as
-\t{no-op}, the default implementation does nothing. For EAPIs listed as using format 5, the default
-implementation shall behave as:
+table~\ref{tab:src-prepare-table} as supporting it.
 
-\begin{verbatim}
-src_prepare() {
-    apply_user_patches
-}
-\end{verbatim}
-
-Furthermore, for these EAPIs, if the function is overridden, it shall be a fatal error if the
-\t{apply\_user\_patches} command has not been called at least once by the end of the phase.
+The \t{src\_prepare} function can be used for post-unpack source preparation. The default
+implementation does nothing.
 
 The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in
 section~\ref{sec:s-to-workdir-fallback}.
 
 \ChangeWhenAddingAnEAPI{5}
-\begin{centertable}{\t{src\_prepare} behaviour for EAPIs} \label{tab:src-prepare-table}
+\begin{centertable}{EAPIs supporting \t{src\_prepare}} \label{tab:src-prepare-table}
     \begin{tabular}{ l l }
         \toprule
         \multicolumn{1}{c}{\textbf{EAPI}} &
-        \multicolumn{1}{c}{\textbf{Format}} \\
+        \multicolumn{1}{c}{\textbf{Supports \t{src\_prepare}?}} \\
         \midrule
-    \t{0} & Unsupported \\
-    \t{1} & Unsupported \\
-    \t{2} & no-op \\
-    \t{3} & no-op \\
-    \t{4} & no-op \\
-    \t{5} & 5 \\
+    \t{0} & No \\
+    \t{1} & No \\
+    \t{2} & Yes \\
+    \t{3} & Yes \\
+    \t{4} & Yes \\
+    \t{5} & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e4134e9..3d2833d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -808,32 +808,6 @@ has returned.
     \end{tabular}
 \end{centertable}
 
-\item[apply\_user\_patches]
-    \featurelabel{apply-user-patches} This function is called to indicate to the package manager
-    that now would be a suitable time to apply any user patches to the work directory. This function
-    must return zero if it is possible that any changes were made to the work directory, and may
-    return non-zero if no changes were made. This function must be called at least once in
-    \t{src\_prepare}; if the function is called more than once, it is expected that any effects that
-    it has shall only be executed once, and that its return value shall only be zero once. Only
-    available in EAPIs listed in table~\ref{tab:apply-user-patches-table}.
-
-\ChangeWhenAddingAnEAPI{5}
-\begin{centertable}{\t{apply\_user\_patches} support for EAPIs} \label{tab:apply-user-patches-table}
-    \begin{tabular}{ l l }
-        \toprule
-            \multicolumn{1}{c}{\textbf{EAPI}} &
-            \multicolumn{1}{c}{\textbf{\t{apply\_user\_patches} support?}} \\
-            \midrule
-    \t{0} & No \\
-    \t{1} & No \\
-    \t{2} & No \\
-    \t{3} & No \\
-    \t{4} & No \\
-    \t{5} & Yes \\
-    \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \item[inherit] See section~\ref{sec:inherit}.
 
 \item[default]


^ permalink raw reply related	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2012-09-11 20:41 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-17 12:02 [gentoo-commits] proj/pms:eapi-5 commit in: / Ulrich Mueller
  -- strict thread matches above, loose matches on Subject: below --
2012-09-11 20:41 Ulrich Mueller
2012-09-11 20:41 Ulrich Mueller
2012-09-09 19:54 Ulrich Mueller
2012-09-04  8:58 Ulrich Mueller
2012-08-31 16:16 Ulrich Mueller
2012-08-30 19:50 Ulrich Mueller
2012-08-30 18:20 Ulrich Mueller
2012-08-29 12:03 Ulrich Mueller
2012-08-29 12:03 Ulrich Mueller
2012-08-17  6:46 Ulrich Mueller
2012-08-16 19:51 Ulrich Mueller
2012-08-14  5:56 Ulrich Mueller
2012-08-12 12:11 Ulrich Mueller
2012-08-12 12:11 Ulrich Mueller
2012-08-12 12:11 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 12:02 Ulrich Mueller
2012-05-17 10:13 Ulrich Mueller
2012-05-13  7:48 Ulrich Mueller
2012-05-13  7:30 Ulrich Mueller
2012-05-10  7:20 Ulrich Mueller
2012-05-10  7:17 Ulrich Mueller
2012-05-10  7:17 Ulrich Mueller
2012-05-10  7:00 Ulrich Mueller
2012-05-08 20:09 Ulrich Mueller
2012-05-07 13:27 Ciaran McCreesh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox