public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     b48fdd984d487e7aa8372c4f4db8840ac7a805cd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b48fdd98

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-13 19:15 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-13 19:15 UTC (permalink / raw
  To: gentoo-commits

commit:     3f08956fc81ce208c56bf91c78276250660afeb4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 13 19:12:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 13 19:12:50 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3f08956f

Cheat sheet: EAPI 8 approval date

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 451ab85..0d28251 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -518,7 +518,7 @@ differences between these previous EAPIs.
     See \featureref{banned-commands}.
 \end{description}
 
-\section{EAPI 8}
+\section{EAPI 8 (2021-06-13)}
 \label{sec:cs:eapi8}
 \subsection{Additions/Changes}
 \label{sec:cs:eapi8-additions}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     c2847df81db51bc1402aa9a4339d53e5a0179208
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:41 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c2847df8

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d263cbc..5609de6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index af45e62..92447d3 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     bd0dab0f2c91aa4b1840bff77a34d83c3424d90c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 20:11:32 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:42 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=bd0dab0f

Cheat sheet: Fix cross references

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 83ddfa7..fb62827 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -348,10 +348,10 @@ differences between these previous EAPIs.
     which applies patches from the \code{PATCHES} variable with the
     new \code{eapply} command, and user-provided patches with
     \code{eapply_user}.
-    See \featureref{src-prepare-6}.
+    See \featureref{src-prepare}.
     \item[\code{src_install}] The default implementation uses the new
     \code{einstalldocs} function for installing documentation.
-    See \featureref{src-install-6}.
+    See \featureref{src-install}.
     \item[\code{nonfatal die}] When \code{die} or \code{assert} are
     called under the \code{nonfatal} command and with the \code{-n}
     option, they will not abort the build process but return with an


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     d73d6d6a5b9bbff4ec3611b9d34a116c4be98a1f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 27 18:30:24 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:43 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d73d6d6a

Cheat sheet: Update for EAPI 8

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 82602f2..451ab85 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -15,7 +15,7 @@
 \usepackage[local]{gitinfo2}
 \newcommand{\code}[1]{\texttt{#1}}
 % This should reflect the latest approved EAPI version
-\newcommand{\version}{7.0}
+\newcommand{\version}{8.0}
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \renewcommand{\familydefault}{\sfdefault}
 \urlstyle{sf}
@@ -517,6 +517,66 @@ differences between these previous EAPIs.
     used as replacement.
     See \featureref{banned-commands}.
 \end{description}
+
+\section{EAPI 8}
+\label{sec:cs:eapi8}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi8-additions}
+\begin{description}
+    \item[\code{profiles/updates} directory] Arbitrary filenames
+    are now allowed, instead of strict naming by quarters
+    (like \code{2Q-2021}). See \featureref{updates-filenames}.
+    \item[Bash version] Ebuilds can use features of Bash version 5.0
+    (was 4.2 before). See \featureref{bash-version}.
+    \item[Selective fetch/mirror restriction] In \code{SRC_URI},
+    adding a \code{fetch+} or \code{mirror+} prefix to an individual
+    URI means that the file may be fetched or mirrored. This overrides
+    the corresponding global settings in the \code{RESTRICT} variable.
+    See \featureref{uri-restrict}.
+    \item[\code{IDEPEND}] This variable specifies install-time
+    dependencies on packages used in (e.\,g.) \code{pkg_postinst}.
+    In a cross-compilation environment, these are dependencies for
+    native tools (\code{CBUILD}). See \featureref{idepend}.
+    \item[\code{pkg_*} phases] The initial working directory is
+    guaranteed to be empty. See \featureref{phase-function-dir}.
+    \item[\code{src_prepare}] Items in the \code{PATCHES} variable are
+    interpreted as files, even if their name begins with a hyphen.
+    See \featureref{src-prepare}.
+    \item[\code{PROPERTIES} and \code{RESTRICT}] These variables are
+    accumulated across the ebuild and inherited eclasses, like
+    \code{IUSE}, \code{REQUIRED\_USE}, and \code{*DEPEND} were before.
+    See \featureref{accumulate-vars}.
+    \item[\code{econf}] If supported, options
+    \code{-{}-disable-static} and
+    \code{-{}-datarootdir=\$\{EPREFIX\}/usr/share} are passed
+    to configure, respectively. See \featureref{econf-options}.
+    \item[\code{dosym}] With the new option \code{-r}, an absolute
+    path specified for the link target will be converted to a path
+    relative to the link location. See \featureref{dosym-relative}. 
+    \item[\code{insopts}] Commands \code{doconfd}, \code{doenvd},
+    \code{doheader} install files with fixed mode 0644, i.\,e.,
+    they are no longer affected by \code{insopts}.
+    See \featureref{insopts}.
+    \item[\code{exeopts}] Command \code{doinitd} installs files
+    with fixed mode 0755, i.\,e., it is no longer affected by
+    \code{exeopts}. See \featureref{exeopts}.
+    \item[\code{usev}] This helper has an optional second argument
+    now: \code{usev} \emph{<flag> [true]}. If the flag is set,
+    outputs \emph{[true]}, or the flag's name if called with only one
+    argument. Otherwise outputs nothing. See \featureref{usev}.
+\end{description}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi8-removalsbans}
+\begin{description}
+    \item[\code{useq}] No longer allowed. Use regular \code{use} as
+    a drop-in replacement. See \featureref{banned-commands}.
+    \item[\code{hasv} and \code{hasq}] No longer allowed. Regular
+    \code{has} should be used instead.
+    See \featureref{banned-commands}.
+    \item[\code{unpack}] No longer supports unpacking of 7-Zip, RAR,
+    and LHA archives. See \featureref{unpack-extensions}.
+\end{description}
+
 \end{document}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=70 spell spelllang=en :


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     537053475a6b9f17ff61cc4af4923bd980213242
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 20:12:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:42 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=53705347

Cheat sheet: Remove EAPI 5 to make room for EAPI 8

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 140 ++++++++++++++++++++++++++--------------------------
 1 file changed, 70 insertions(+), 70 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index fb62827..82602f2 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -77,7 +77,7 @@
     \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
-\section{EAPIs 0, 1, 2, 3, and 4}
+\section{EAPIs 0, 1, 2, 3, 4, and 5}
 \label{sec:cs:eapi0-2}
 Omitted for lack of space. See version~5.0 of this document for
 differences between these previous EAPIs.
@@ -257,75 +257,75 @@ differences between these previous EAPIs.
 %     any more.  See \featureref{aa} and \featureref{kv}.
 % \end{description}
 
-\section{EAPI 5 (2012-09-20)}
-\label{sec:cs:eapi5}
-\subsection{Additions/Changes}
-\label{sec:cs:eapi5-additions}
-\begin{description}
-    \item[Sub-slots] The \code{SLOT} variable and slot dependencies
-    may contain an optional sub-slot part that follows the regular
-    slot, delimited by a \code{/} character; for example
-    \code{2/2.30}.  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.  If the sub-slot is
-    not specified in \code{SLOT}, it defaults to the regular slot.
-    See \featureref{sub-slot}.
-    \item[Slot operator dependencies] Package dependencies can specify
-    one of the following operators as a suffix, which will affect
-    updates of runtime dependencies:
-    \begin{description}
-        \item[\code{:*}] Any slot value is acceptable.  The package
-        will not break when its dependency is updated.
-        \item[\code{:=}] Any slot value is acceptable, but the package
-        can break when its dependency is updated to a different slot
-        (or sub-slot).
-    \end{description}
-    See \featureref{slot-operator-deps}.
-    \item[Profile \code{IUSE} injection] Apart from the USE flags
-    explicitly listed in \code{IUSE}, additional flags can be
-    implicitly provided by profiles.
-    See \featureref{profile-iuse-inject}.
-    \item[At-most-one-of groups] In \code{REQUIRED_USE} you can use
-    "\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag
-    out of many.
-    See \featureref{at-most-one-of}.
-    \item[Parallel tests] The default for \code{src_test} runs
-    \code{emake} without \code{-j1} now.
-    See \featureref{parallel-tests}.
-    \item[\code{econf} changes] The \code{econf} function now always
-    passes \code{-{}-disable-silent-rules} to \code{configure}.
-    See \featureref{econf-options}.
-    \item[\code{has_version} and \code{best_version} changes]
-    The two helpers support a \code{-{}-host-root} option that causes
-    the query to apply to the host root instead of \code{ROOT}.
-    See~\featureref{pm-query-options}.
-    \item[\code{usex}] Usage for this helper function is
-    \code{usex} \emph{<USE flag> [true1] [false1] [true2] [false2]}.
-    If the USE flag is set, outputs \emph{[true1][true2]}
-    (defaults to \code{yes}), otherwise outputs
-    \emph{[false1][false2]} (defaults to \code{no}).
-    See \featureref{usex}.
-    \item[\code{doheader} and \code{newheader}] These new helper
-    functions install the given header file(s) into
-    \code{/usr/include}. The \code{-r} option enables recursion for
-    \code{doheader}, similar to \code{doins}.
-    See \featureref{doheader}.
-    \item[\code{new*} standard input] The \code{newins} etc.\ commands
-    read from standard input if the first argument is \code{-}
-    (a hyphen).
-    See \featureref{newfoo-stdin}.
-    \item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to
-    \code{EBUILD_PHASE}, but contains the name of the current ebuild
-    function.
-    See \featureref{ebuild-phase-func}.
-    \item[Stable use masking/forcing] New files
-    \code{use.stable.\allowbreak\{mask,force\}} and
-    \code{package.use.stable.\allowbreak\{mask,force\}}
-    are supported in profile directories.  They are similar to their
-    non-\code{stable} counterparts, but act only on packages that
-    would be merged due to a stable keyword.
-    See \featureref{stablemask}.
-\end{description}
+% \section{EAPI 5 (2012-09-20)}
+% \label{sec:cs:eapi5}
+% \subsection{Additions/Changes}
+% \label{sec:cs:eapi5-additions}
+% \begin{description}
+%     \item[Sub-slots] The \code{SLOT} variable and slot dependencies
+%     may contain an optional sub-slot part that follows the regular
+%     slot, delimited by a \code{/} character; for example
+%     \code{2/2.30}.  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.  If the sub-slot is
+%     not specified in \code{SLOT}, it defaults to the regular slot.
+%     See \featureref{sub-slot}.
+%     \item[Slot operator dependencies] Package dependencies can specify
+%     one of the following operators as a suffix, which will affect
+%     updates of runtime dependencies:
+%     \begin{description}
+%         \item[\code{:*}] Any slot value is acceptable.  The package
+%         will not break when its dependency is updated.
+%         \item[\code{:=}] Any slot value is acceptable, but the package
+%         can break when its dependency is updated to a different slot
+%         (or sub-slot).
+%     \end{description}
+%     See \featureref{slot-operator-deps}.
+%     \item[Profile \code{IUSE} injection] Apart from the USE flags
+%     explicitly listed in \code{IUSE}, additional flags can be
+%     implicitly provided by profiles.
+%     See \featureref{profile-iuse-inject}.
+%     \item[At-most-one-of groups] In \code{REQUIRED_USE} you can use
+%     "\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag
+%     out of many.
+%     See \featureref{at-most-one-of}.
+%     \item[Parallel tests] The default for \code{src_test} runs
+%     \code{emake} without \code{-j1} now.
+%     See \featureref{parallel-tests}.
+%     \item[\code{econf} changes] The \code{econf} function now always
+%     passes \code{-{}-disable-silent-rules} to \code{configure}.
+%     See \featureref{econf-options}.
+%     \item[\code{has_version} and \code{best_version} changes]
+%     The two helpers support a \code{-{}-host-root} option that causes
+%     the query to apply to the host root instead of \code{ROOT}.
+%     See~\featureref{pm-query-options}.
+%     \item[\code{usex}] Usage for this helper function is
+%     \code{usex} \emph{<USE flag> [true1] [false1] [true2] [false2]}.
+%     If the USE flag is set, outputs \emph{[true1][true2]}
+%     (defaults to \code{yes}), otherwise outputs
+%     \emph{[false1][false2]} (defaults to \code{no}).
+%     See \featureref{usex}.
+%     \item[\code{doheader} and \code{newheader}] These new helper
+%     functions install the given header file(s) into
+%     \code{/usr/include}. The \code{-r} option enables recursion for
+%     \code{doheader}, similar to \code{doins}.
+%     See \featureref{doheader}.
+%     \item[\code{new*} standard input] The \code{newins} etc.\ commands
+%     read from standard input if the first argument is \code{-}
+%     (a hyphen).
+%     See \featureref{newfoo-stdin}.
+%     \item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to
+%     \code{EBUILD_PHASE}, but contains the name of the current ebuild
+%     function.
+%     See \featureref{ebuild-phase-func}.
+%     \item[Stable use masking/forcing] New files
+%     \code{use.stable.\allowbreak\{mask,force\}} and
+%     \code{package.use.stable.\allowbreak\{mask,force\}}
+%     are supported in profile directories.  They are similar to their
+%     non-\code{stable} counterparts, but act only on packages that
+%     would be merged due to a stable keyword.
+%     See \featureref{stablemask}.
+% \end{description}
 
 \section{EAPI 6 (2015-11-13)}
 \label{sec:cs:eapi6}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     7ecef5fa690f1fcff2c615e4ea757d629a7bbdcf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:41 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7ecef5fa

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5609de6..900f415 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 92447d3..04a8ac4 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     5e135c7e0bbcd87e4bbb854048c21852c87de4b1
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5e135c7e

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     70b5befa05d872c1aed119ab4e864d98d0a360d2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:38 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=70b5befa

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index c7af2b3..a2a74b8 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     5567f230848b143218f44ba03393bf810e0b4e54
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5567f230

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8cfc442..d263cbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4e43c69..af45e62 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     42fdc187b717120717e55d9b1bee06a764e55b5d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=42fdc187

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bbb8957..8cfc442 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..4e43c69 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, the first parameter (the link target) is
+    converted from an absolute path to a path relative to the the second parameter (the link name).
+    The  algorithm must return a result identical to the one returned by the function in
+    listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from GNU coreutils version~8.32.
+    Specifying option \t{-r} together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     a3693aec2011a666a437e3cea777012ac26fa1b2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:37 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a3693aec

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Also simplify array detection by using the @a operator in parameter
expansion. This feature was introduced in bash-4.4.

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 842e09f..aeddb6e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index b224e0b..0c745c3 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -142,9 +142,9 @@ post-unpack source preparation.
 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}.
 
-For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default
 implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
-listing~\ref{lst:src-prepare-6}.
+listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -179,6 +180,20 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8}
+\begin{verbatim}
+src_prepare() {
+    if [[ ${PATCHES@a} == *a* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     11ffdd5a32b9bed132486efb939997b8749fbf9d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:35 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=11ffdd5a

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     52a242e2f7923f3bee9978ffb14741fa25da9c14
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:37 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=52a242e2

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aeddb6e..c7af2b3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
+\item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     3f93cb5890b64d642a68aafa3997abe9dda46a10
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 25 15:59:13 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3f93cb58

Ban nameref variables from exported and default scope

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-format.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ebuild-format.tex b/ebuild-format.tex
index 4929ba4..25ba28e 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t
 option of bash is set in the global scope of ebuilds. If set, failed pattern matches during
 filename expansion result in an error when the ebuild is being sourced.
 
+Name reference variables (introduced in bash version~4.3) must not be used, except in local scope.
+
 The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define
 certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions}
 for specific information), and must not call any external programs, write anything to standard


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     687c810ecada6066baceca316039a92bd3961fbd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:45:56 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=687c810e

EAPI 8 has an empty working directory in pkg_* phases

https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..08c4e9f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
     * & Strong & Strong & Strong & Strong \\
 
+Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
+    Any & Any & Any & Any & Empty \\
+
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
     * & Conditional & Conditional & Conditional & Conditional \\
 
@@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..00fd259 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions.
 \subsection{Initial working directories}
 \label{sec:s-to-workdir-fallback}
 
-Some functions may assume that their initial working directory is set to a particular location;
-these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
-initial working directory for any phase is a trusted location that may only be written to by a
-privileged user and group.
+\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is
+set to a particular location; these are noted below. If no initial working directory is mandated,
+then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set
+to a dedicated directory that is empty at the start of the function and may be read-only. For other
+EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it.
+The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location
+that may only be written to by a privileged user and group.
 
 \featurelabel{s-workdir-fallback} Some functions are described as having an initial working
 directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in
@@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs}
+    \label{tab:function-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Initial working directory?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
+      8                       & Empty \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     5001b56490c821aa8e77f67f9e9bb62e804fa129
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:38 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5001b564

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a2a74b8..32f4a66 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     c1d561c12f727bf475d3f6f06009a1c924cbc4a2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c1d561c1

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 32f4a66..bbb8957 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     2efc05522c75de6dd8e28425515b0501f8559da7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:35 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2efc0552

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     6603c18c63797076bf96cd28f603d1f6a4591f1b
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 14:37:05 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6603c18c

Rearrange listings of phase functions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  10 ++--
 ebuild-functions.tex | 164 ++++++++++++++++++++++++---------------------------
 2 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 08c4e9f..842e09f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \begin{compactitem}
 \item \t{IUSE} defaults, \featureref{iuse-defaults}.
 \item Slot dependencies, \featureref{slot-deps}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-1}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
 \section{EAPI 2}
@@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}.
 \item \t{src_prepare}, \featureref{src-prepare}.
 \item \t{src_configure}, \featureref{src-configure}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-2}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare},
     \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}.
 \item \t{doman} language detection by filename, \featureref{doman-langs}.
@@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item Use dependency defaults, \featureref{use-dep-defaults}.
 \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
 \item \t{pkg_pretend}, \featureref{pkg-pretend}.
-\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}.
+\item Default \t{src_install} no longer a no-op, \featureref{src-install}.
 \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}.
 \item \t{AA} is gone, \featureref{aa}.
 \item \t{KV} is gone, \featureref{kv}.
@@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes:
 \begin{compactitem}
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
-\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}.
-\item Different \t{src_install} implementation, \featureref{src-install-6}.
+\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}.
+\item Different \t{src_install} implementation, \featureref{src-install}.
 \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 00fd259..b224e0b 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack
 \t{src_prepare}, it may also apply patches and set up the package's build system for further use.
 
 The initial working directory must be \t{WORKDIR}, and the default implementation used when
-the ebuild lacks the \t{src_unpack} function shall behave as:
+the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}.
 
 \begin{listing}[H]
-\caption{\t{src_unpack}}
+\caption{\t{src_unpack}} \label{lst:src-unpack-0}
 \begin{verbatim}
 src_unpack() {
     if [[ -n ${A} ]]; then
@@ -142,23 +142,9 @@ post-unpack source preparation.
 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}.
 
-\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
-as:
-
-\begin{listing}[H]
-\caption{\t{src_prepare}, format~6}
-\begin{verbatim}
-src_prepare() {
-    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
-        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-    else
-        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
-    fi
-    eapply_user
-}
-\end{verbatim}
-\end{listing}
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-prepare-6}.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~6} \label{lst:src-prepare-6}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
@@ -188,18 +188,8 @@ The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR}
 section~\ref{sec:s-to-workdir-fallback}.
 
 The \t{src_configure} function configures the package's build environment. The default
-implementation used when the ebuild lacks the \t{src_configure} function shall behave as:
-
-\begin{listing}[H]
-\caption{\t{src_configure}}
-\begin{verbatim}
-src_configure() {
-    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
-        econf
-    fi
-}
-\end{verbatim}
-\end{listing}
+implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
+listing~\ref{lst:src-configure-2}.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
@@ -215,6 +205,17 @@ src_configure() {
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_configure}} \label{lst:src-configure-2}
+\begin{verbatim}
+src_configure() {
+    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+        econf
+    fi
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_compile}
 
 \featurelabel{src-compile} The \t{src_compile} function configures the package's build environment
@@ -223,12 +224,28 @@ in EAPIs lacking \t{src_configure}, and builds the package in all EAPIs.
 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}.
 
-\featurelabel{src-compile-0} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-0, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-compile-table} as using format 0, 1 or~2, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
+respectively.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_compile} behaviour for EAPIs}
+    \label{tab:src-compile-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_compile}, format~0}
+\caption{\t{src_compile}, format~0} \label{lst:src-compile-0}
 \begin{verbatim}
 src_compile() {
     if [[ -x ./configure ]]; then
@@ -241,12 +258,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-1} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-1, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~1}
+\caption{\t{src_compile}, format~1} \label{lst:src-compile-1}
 \begin{verbatim}
 src_compile() {
     if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
@@ -259,12 +272,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-2} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-2, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~2}
+\caption{\t{src_compile}, format~2} \label{lst:src-compile-2}
 \begin{verbatim}
 src_compile() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -274,21 +283,6 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_compile} behaviour for EAPIs}
-    \label{tab:src-compile-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{src_test}
 
 The \t{src_test} function runs unit tests for the newly built but not yet installed package as
@@ -330,12 +324,30 @@ directory specified in \t{D}.
 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}.
 
-\featurelabel{src-install-4} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-4, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-install-table} as using format 4 or~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-install-4} or listing~\ref{lst:src-install-6}, respectively.
+
+For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
+is a no-op.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_install} behaviour for EAPIs}
+    \label{tab:src-install-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0, 1, 2, 3        & no-op \\
+      4, 5              & 4     \\
+      6, 7, 8           & 6     \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_install}, format~4}
+\caption{\t{src_install}, format~4} \label{lst:src-install-4}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -357,12 +369,8 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-install-6} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_install}, format~6}
+\caption{\t{src_install}, format~6} \label{lst:src-install-6}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -373,24 +381,6 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
-is a no-op.
-
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_install} behaviour for EAPIs}
-    \label{tab:src-install-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0, 1, 2, 3        & no-op \\
-      4, 5              & 4     \\
-      6, 7, 8           & 6     \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{pkg_preinst}
 
 The \t{pkg_preinst} function performs any special tasks that are required immediately before


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     03aa761dea35f98a221270274b14f7e97e0ffa6f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:33 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=03aa761d

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     a14e130eacbd19fb8e835d2d385ac94ba693f23a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:33 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a14e130e

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index 81599a9..aa04d3d 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -207,11 +207,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     1bf3b37024383409a54792088a4f84ffb2738c69
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:32 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1bf3b370

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     5b8055e40ac6698dad463f5df553a9c17928abc9
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:31 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5b8055e4

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 799a20c..d0ad87d 100644
--- a/commands.tex
+++ b/commands.tex
@@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 67855f5..3ef6fa6 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 006b8e4..2e562d6 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4e691c5..ffdea16 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index bbd286f..040b02a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -263,7 +263,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -272,7 +272,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -307,7 +307,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -316,7 +316,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index bc6d1ac..71d1e89 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -31,7 +31,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -43,7 +43,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -54,7 +54,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -72,7 +72,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -110,7 +110,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -123,7 +123,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -159,7 +159,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -169,7 +169,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -191,7 +191,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -204,7 +204,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -268,7 +268,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -278,7 +278,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -327,7 +327,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -343,7 +343,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -619,7 +619,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -628,12 +628,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -642,12 +642,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -656,12 +656,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -672,12 +672,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -686,12 +686,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -700,7 +700,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -810,7 +810,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -821,7 +821,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -865,7 +865,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -874,12 +874,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -888,12 +888,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -904,7 +904,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -984,7 +984,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -995,7 +995,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1069,7 +1069,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1079,12 +1079,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1096,7 +1096,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1163,7 +1163,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1175,7 +1175,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index fdf4b65..81599a9 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -127,7 +127,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -136,7 +136,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     2044073eecade023bb335c5b44a49845e34d4404
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:32 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2044073e

eapis.tex: Merge redundant descriptions

Drop footnote about EAPI kdebuild-1.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..a6c8109 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,26 +17,13 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
-applies to all of the above EAPIs.%
-\footnote{Another unofficial EAPI `kdebuild-1' was a series of
-    extensions to EAPI `1' formerly used by the Gentoo KDE project.
-    Some of its features have been included in EAPI `2' or later.}
+applies to all of the above EAPIs.
 
 \section{Reserved EAPIs}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-05  8:57 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-05  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     3b55b43b16c79e90af9cd99e9a71e469b988922a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  5 18:04:28 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  5 08:55:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3b55b43b

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:55 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:55 UTC (permalink / raw
  To: gentoo-commits

commit:     c207c2ec6391f884bdfb4de129068e98eb63f2e8
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 27 18:30:24 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Jun  3 07:04:04 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c207c2ec

Cheat sheet: Update for EAPI 8

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 82602f2..451ab85 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -15,7 +15,7 @@
 \usepackage[local]{gitinfo2}
 \newcommand{\code}[1]{\texttt{#1}}
 % This should reflect the latest approved EAPI version
-\newcommand{\version}{7.0}
+\newcommand{\version}{8.0}
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \renewcommand{\familydefault}{\sfdefault}
 \urlstyle{sf}
@@ -517,6 +517,66 @@ differences between these previous EAPIs.
     used as replacement.
     See \featureref{banned-commands}.
 \end{description}
+
+\section{EAPI 8}
+\label{sec:cs:eapi8}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi8-additions}
+\begin{description}
+    \item[\code{profiles/updates} directory] Arbitrary filenames
+    are now allowed, instead of strict naming by quarters
+    (like \code{2Q-2021}). See \featureref{updates-filenames}.
+    \item[Bash version] Ebuilds can use features of Bash version 5.0
+    (was 4.2 before). See \featureref{bash-version}.
+    \item[Selective fetch/mirror restriction] In \code{SRC_URI},
+    adding a \code{fetch+} or \code{mirror+} prefix to an individual
+    URI means that the file may be fetched or mirrored. This overrides
+    the corresponding global settings in the \code{RESTRICT} variable.
+    See \featureref{uri-restrict}.
+    \item[\code{IDEPEND}] This variable specifies install-time
+    dependencies on packages used in (e.\,g.) \code{pkg_postinst}.
+    In a cross-compilation environment, these are dependencies for
+    native tools (\code{CBUILD}). See \featureref{idepend}.
+    \item[\code{pkg_*} phases] The initial working directory is
+    guaranteed to be empty. See \featureref{phase-function-dir}.
+    \item[\code{src_prepare}] Items in the \code{PATCHES} variable are
+    interpreted as files, even if their name begins with a hyphen.
+    See \featureref{src-prepare}.
+    \item[\code{PROPERTIES} and \code{RESTRICT}] These variables are
+    accumulated across the ebuild and inherited eclasses, like
+    \code{IUSE}, \code{REQUIRED\_USE}, and \code{*DEPEND} were before.
+    See \featureref{accumulate-vars}.
+    \item[\code{econf}] If supported, options
+    \code{-{}-disable-static} and
+    \code{-{}-datarootdir=\$\{EPREFIX\}/usr/share} are passed
+    to configure, respectively. See \featureref{econf-options}.
+    \item[\code{dosym}] With the new option \code{-r}, an absolute
+    path specified for the link target will be converted to a path
+    relative to the link location. See \featureref{dosym-relative}. 
+    \item[\code{insopts}] Commands \code{doconfd}, \code{doenvd},
+    \code{doheader} install files with fixed mode 0644, i.\,e.,
+    they are no longer affected by \code{insopts}.
+    See \featureref{insopts}.
+    \item[\code{exeopts}] Command \code{doinitd} installs files
+    with fixed mode 0755, i.\,e., it is no longer affected by
+    \code{exeopts}. See \featureref{exeopts}.
+    \item[\code{usev}] This helper has an optional second argument
+    now: \code{usev} \emph{<flag> [true]}. If the flag is set,
+    outputs \emph{[true]}, or the flag's name if called with only one
+    argument. Otherwise outputs nothing. See \featureref{usev}.
+\end{description}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi8-removalsbans}
+\begin{description}
+    \item[\code{useq}] No longer allowed. Use regular \code{use} as
+    a drop-in replacement. See \featureref{banned-commands}.
+    \item[\code{hasv} and \code{hasq}] No longer allowed. Regular
+    \code{has} should be used instead.
+    See \featureref{banned-commands}.
+    \item[\code{unpack}] No longer supports unpacking of 7-Zip, RAR,
+    and LHA archives. See \featureref{unpack-extensions}.
+\end{description}
+
 \end{document}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=70 spell spelllang=en :


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:55 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:55 UTC (permalink / raw
  To: gentoo-commits

commit:     5aa8c120a81e2042411b9e3620f81d1dad8fb657
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 20:12:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:08:14 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5aa8c120

Cheat sheet: Remove EAPI 5 to make room for EAPI 8

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 140 ++++++++++++++++++++++++++--------------------------
 1 file changed, 70 insertions(+), 70 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index fb62827..82602f2 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -77,7 +77,7 @@
     \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
-\section{EAPIs 0, 1, 2, 3, and 4}
+\section{EAPIs 0, 1, 2, 3, 4, and 5}
 \label{sec:cs:eapi0-2}
 Omitted for lack of space. See version~5.0 of this document for
 differences between these previous EAPIs.
@@ -257,75 +257,75 @@ differences between these previous EAPIs.
 %     any more.  See \featureref{aa} and \featureref{kv}.
 % \end{description}
 
-\section{EAPI 5 (2012-09-20)}
-\label{sec:cs:eapi5}
-\subsection{Additions/Changes}
-\label{sec:cs:eapi5-additions}
-\begin{description}
-    \item[Sub-slots] The \code{SLOT} variable and slot dependencies
-    may contain an optional sub-slot part that follows the regular
-    slot, delimited by a \code{/} character; for example
-    \code{2/2.30}.  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.  If the sub-slot is
-    not specified in \code{SLOT}, it defaults to the regular slot.
-    See \featureref{sub-slot}.
-    \item[Slot operator dependencies] Package dependencies can specify
-    one of the following operators as a suffix, which will affect
-    updates of runtime dependencies:
-    \begin{description}
-        \item[\code{:*}] Any slot value is acceptable.  The package
-        will not break when its dependency is updated.
-        \item[\code{:=}] Any slot value is acceptable, but the package
-        can break when its dependency is updated to a different slot
-        (or sub-slot).
-    \end{description}
-    See \featureref{slot-operator-deps}.
-    \item[Profile \code{IUSE} injection] Apart from the USE flags
-    explicitly listed in \code{IUSE}, additional flags can be
-    implicitly provided by profiles.
-    See \featureref{profile-iuse-inject}.
-    \item[At-most-one-of groups] In \code{REQUIRED_USE} you can use
-    "\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag
-    out of many.
-    See \featureref{at-most-one-of}.
-    \item[Parallel tests] The default for \code{src_test} runs
-    \code{emake} without \code{-j1} now.
-    See \featureref{parallel-tests}.
-    \item[\code{econf} changes] The \code{econf} function now always
-    passes \code{-{}-disable-silent-rules} to \code{configure}.
-    See \featureref{econf-options}.
-    \item[\code{has_version} and \code{best_version} changes]
-    The two helpers support a \code{-{}-host-root} option that causes
-    the query to apply to the host root instead of \code{ROOT}.
-    See~\featureref{pm-query-options}.
-    \item[\code{usex}] Usage for this helper function is
-    \code{usex} \emph{<USE flag> [true1] [false1] [true2] [false2]}.
-    If the USE flag is set, outputs \emph{[true1][true2]}
-    (defaults to \code{yes}), otherwise outputs
-    \emph{[false1][false2]} (defaults to \code{no}).
-    See \featureref{usex}.
-    \item[\code{doheader} and \code{newheader}] These new helper
-    functions install the given header file(s) into
-    \code{/usr/include}. The \code{-r} option enables recursion for
-    \code{doheader}, similar to \code{doins}.
-    See \featureref{doheader}.
-    \item[\code{new*} standard input] The \code{newins} etc.\ commands
-    read from standard input if the first argument is \code{-}
-    (a hyphen).
-    See \featureref{newfoo-stdin}.
-    \item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to
-    \code{EBUILD_PHASE}, but contains the name of the current ebuild
-    function.
-    See \featureref{ebuild-phase-func}.
-    \item[Stable use masking/forcing] New files
-    \code{use.stable.\allowbreak\{mask,force\}} and
-    \code{package.use.stable.\allowbreak\{mask,force\}}
-    are supported in profile directories.  They are similar to their
-    non-\code{stable} counterparts, but act only on packages that
-    would be merged due to a stable keyword.
-    See \featureref{stablemask}.
-\end{description}
+% \section{EAPI 5 (2012-09-20)}
+% \label{sec:cs:eapi5}
+% \subsection{Additions/Changes}
+% \label{sec:cs:eapi5-additions}
+% \begin{description}
+%     \item[Sub-slots] The \code{SLOT} variable and slot dependencies
+%     may contain an optional sub-slot part that follows the regular
+%     slot, delimited by a \code{/} character; for example
+%     \code{2/2.30}.  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.  If the sub-slot is
+%     not specified in \code{SLOT}, it defaults to the regular slot.
+%     See \featureref{sub-slot}.
+%     \item[Slot operator dependencies] Package dependencies can specify
+%     one of the following operators as a suffix, which will affect
+%     updates of runtime dependencies:
+%     \begin{description}
+%         \item[\code{:*}] Any slot value is acceptable.  The package
+%         will not break when its dependency is updated.
+%         \item[\code{:=}] Any slot value is acceptable, but the package
+%         can break when its dependency is updated to a different slot
+%         (or sub-slot).
+%     \end{description}
+%     See \featureref{slot-operator-deps}.
+%     \item[Profile \code{IUSE} injection] Apart from the USE flags
+%     explicitly listed in \code{IUSE}, additional flags can be
+%     implicitly provided by profiles.
+%     See \featureref{profile-iuse-inject}.
+%     \item[At-most-one-of groups] In \code{REQUIRED_USE} you can use
+%     "\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag
+%     out of many.
+%     See \featureref{at-most-one-of}.
+%     \item[Parallel tests] The default for \code{src_test} runs
+%     \code{emake} without \code{-j1} now.
+%     See \featureref{parallel-tests}.
+%     \item[\code{econf} changes] The \code{econf} function now always
+%     passes \code{-{}-disable-silent-rules} to \code{configure}.
+%     See \featureref{econf-options}.
+%     \item[\code{has_version} and \code{best_version} changes]
+%     The two helpers support a \code{-{}-host-root} option that causes
+%     the query to apply to the host root instead of \code{ROOT}.
+%     See~\featureref{pm-query-options}.
+%     \item[\code{usex}] Usage for this helper function is
+%     \code{usex} \emph{<USE flag> [true1] [false1] [true2] [false2]}.
+%     If the USE flag is set, outputs \emph{[true1][true2]}
+%     (defaults to \code{yes}), otherwise outputs
+%     \emph{[false1][false2]} (defaults to \code{no}).
+%     See \featureref{usex}.
+%     \item[\code{doheader} and \code{newheader}] These new helper
+%     functions install the given header file(s) into
+%     \code{/usr/include}. The \code{-r} option enables recursion for
+%     \code{doheader}, similar to \code{doins}.
+%     See \featureref{doheader}.
+%     \item[\code{new*} standard input] The \code{newins} etc.\ commands
+%     read from standard input if the first argument is \code{-}
+%     (a hyphen).
+%     See \featureref{newfoo-stdin}.
+%     \item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to
+%     \code{EBUILD_PHASE}, but contains the name of the current ebuild
+%     function.
+%     See \featureref{ebuild-phase-func}.
+%     \item[Stable use masking/forcing] New files
+%     \code{use.stable.\allowbreak\{mask,force\}} and
+%     \code{package.use.stable.\allowbreak\{mask,force\}}
+%     are supported in profile directories.  They are similar to their
+%     non-\code{stable} counterparts, but act only on packages that
+%     would be merged due to a stable keyword.
+%     See \featureref{stablemask}.
+% \end{description}
 
 \section{EAPI 6 (2015-11-13)}
 \label{sec:cs:eapi6}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:55 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:55 UTC (permalink / raw
  To: gentoo-commits

commit:     e0f239a664b1c0103368379f5348d9283ae57329
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 20:11:32 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:08:14 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e0f239a6

Cheat sheet: Fix cross references

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 83ddfa7..fb62827 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -348,10 +348,10 @@ differences between these previous EAPIs.
     which applies patches from the \code{PATCHES} variable with the
     new \code{eapply} command, and user-provided patches with
     \code{eapply_user}.
-    See \featureref{src-prepare-6}.
+    See \featureref{src-prepare}.
     \item[\code{src_install}] The default implementation uses the new
     \code{einstalldocs} function for installing documentation.
-    See \featureref{src-install-6}.
+    See \featureref{src-install}.
     \item[\code{nonfatal die}] When \code{die} or \code{assert} are
     called under the \code{nonfatal} command and with the \code{-n}
     option, they will not abort the build process but return with an


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:21 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     9a9396a99ba3f76670047a323bbf9e3d8d1fd520
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:07:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9a9396a9

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d263cbc..5609de6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index af45e62..92447d3 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:21 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     8dbcbe956f5fbc813b85b50a72e2fab4730ae411
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:07:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8dbcbe95

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5609de6..900f415 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 92447d3..04a8ac4 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:21 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     4a735a7e404a6bccbba3da5d47705c12e11220e3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:07:30 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4a735a7e

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bbb8957..8cfc442 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..4e43c69 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, the first parameter (the link target) is
+    converted from an absolute path to a path relative to the the second parameter (the link name).
+    The  algorithm must return a result identical to the one returned by the function in
+    listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from GNU coreutils version~8.32.
+    Specifying option \t{-r} together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-03  8:21 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-03  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     61548f3a93bc30fbe1411f4e6b90c43a0d96ae88
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 23:07:35 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=61548f3a

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8cfc442..d263cbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4e43c69..af45e62 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-02 19:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-02 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     7a91daf70f67d7c99b4fdc1a70390978390f0eac
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 19:43:09 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7a91daf7

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5609de6..900f415 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4d098cb..df572cf 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-02 19:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-02 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     f29147041820ffce284f9026c4e276fbaa09e7a5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 19:43:09 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f2914704

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d263cbc..5609de6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 2e6975a..4d098cb 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-02 19:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-02 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     21f91f86303e3d405fe5cf127529c517107a5ed5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 19:43:03 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=21f91f86

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bbb8957..8cfc442 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..7621ca3 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, resolves the first parameter relative to the
+    directory part of the second parameter. The algorithm must return a result identical to the one
+    returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from
+    GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first
+    (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-06-02 19:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-06-02 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     aa19ff431400880751d4682aa52b5dc47e32353c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 19:43:08 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=aa19ff43

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8cfc442..d263cbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7621ca3..2e6975a 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     77f9d02790283c283ed7d85413348038fb9b91a4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 14:37:05 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=77f9d027

Rearrange listings of phase functions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  10 ++--
 ebuild-functions.tex | 164 ++++++++++++++++++++++++---------------------------
 2 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 08c4e9f..842e09f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \begin{compactitem}
 \item \t{IUSE} defaults, \featureref{iuse-defaults}.
 \item Slot dependencies, \featureref{slot-deps}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-1}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
 \section{EAPI 2}
@@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}.
 \item \t{src_prepare}, \featureref{src-prepare}.
 \item \t{src_configure}, \featureref{src-configure}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-2}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare},
     \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}.
 \item \t{doman} language detection by filename, \featureref{doman-langs}.
@@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item Use dependency defaults, \featureref{use-dep-defaults}.
 \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
 \item \t{pkg_pretend}, \featureref{pkg-pretend}.
-\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}.
+\item Default \t{src_install} no longer a no-op, \featureref{src-install}.
 \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}.
 \item \t{AA} is gone, \featureref{aa}.
 \item \t{KV} is gone, \featureref{kv}.
@@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes:
 \begin{compactitem}
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
-\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}.
-\item Different \t{src_install} implementation, \featureref{src-install-6}.
+\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}.
+\item Different \t{src_install} implementation, \featureref{src-install}.
 \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 00fd259..b224e0b 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack
 \t{src_prepare}, it may also apply patches and set up the package's build system for further use.
 
 The initial working directory must be \t{WORKDIR}, and the default implementation used when
-the ebuild lacks the \t{src_unpack} function shall behave as:
+the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}.
 
 \begin{listing}[H]
-\caption{\t{src_unpack}}
+\caption{\t{src_unpack}} \label{lst:src-unpack-0}
 \begin{verbatim}
 src_unpack() {
     if [[ -n ${A} ]]; then
@@ -142,23 +142,9 @@ post-unpack source preparation.
 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}.
 
-\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
-as:
-
-\begin{listing}[H]
-\caption{\t{src_prepare}, format~6}
-\begin{verbatim}
-src_prepare() {
-    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
-        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-    else
-        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
-    fi
-    eapply_user
-}
-\end{verbatim}
-\end{listing}
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-prepare-6}.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~6} \label{lst:src-prepare-6}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
@@ -188,18 +188,8 @@ The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR}
 section~\ref{sec:s-to-workdir-fallback}.
 
 The \t{src_configure} function configures the package's build environment. The default
-implementation used when the ebuild lacks the \t{src_configure} function shall behave as:
-
-\begin{listing}[H]
-\caption{\t{src_configure}}
-\begin{verbatim}
-src_configure() {
-    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
-        econf
-    fi
-}
-\end{verbatim}
-\end{listing}
+implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
+listing~\ref{lst:src-configure-2}.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
@@ -215,6 +205,17 @@ src_configure() {
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_configure}} \label{lst:src-configure-2}
+\begin{verbatim}
+src_configure() {
+    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+        econf
+    fi
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_compile}
 
 \featurelabel{src-compile} The \t{src_compile} function configures the package's build environment
@@ -223,12 +224,28 @@ in EAPIs lacking \t{src_configure}, and builds the package in all EAPIs.
 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}.
 
-\featurelabel{src-compile-0} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-0, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-compile-table} as using format 0, 1 or~2, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
+respectively.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_compile} behaviour for EAPIs}
+    \label{tab:src-compile-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_compile}, format~0}
+\caption{\t{src_compile}, format~0} \label{lst:src-compile-0}
 \begin{verbatim}
 src_compile() {
     if [[ -x ./configure ]]; then
@@ -241,12 +258,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-1} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-1, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~1}
+\caption{\t{src_compile}, format~1} \label{lst:src-compile-1}
 \begin{verbatim}
 src_compile() {
     if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
@@ -259,12 +272,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-2} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-2, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~2}
+\caption{\t{src_compile}, format~2} \label{lst:src-compile-2}
 \begin{verbatim}
 src_compile() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -274,21 +283,6 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_compile} behaviour for EAPIs}
-    \label{tab:src-compile-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{src_test}
 
 The \t{src_test} function runs unit tests for the newly built but not yet installed package as
@@ -330,12 +324,30 @@ directory specified in \t{D}.
 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}.
 
-\featurelabel{src-install-4} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-4, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-install-table} as using format 4 or~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-install-4} or listing~\ref{lst:src-install-6}, respectively.
+
+For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
+is a no-op.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_install} behaviour for EAPIs}
+    \label{tab:src-install-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0, 1, 2, 3        & no-op \\
+      4, 5              & 4     \\
+      6, 7, 8           & 6     \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_install}, format~4}
+\caption{\t{src_install}, format~4} \label{lst:src-install-4}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -357,12 +369,8 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-install-6} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_install}, format~6}
+\caption{\t{src_install}, format~6} \label{lst:src-install-6}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -373,24 +381,6 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
-is a no-op.
-
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_install} behaviour for EAPIs}
-    \label{tab:src-install-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0, 1, 2, 3        & no-op \\
-      4, 5              & 4     \\
-      6, 7, 8           & 6     \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{pkg_preinst}
 
 The \t{pkg_preinst} function performs any special tasks that are required immediately before


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     54d9f8ae26de56409096082a9e07e295e3c1339d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=54d9f8ae

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     1ce95f858016547047b3a82ab32c63a50b9ffbf4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1ce95f85

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d263cbc..5609de6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 58254fa..eac17de 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     eb607d42aba5be9a9b56b94624a9677a9abaa1c1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=eb607d42

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5609de6..900f415 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index eac17de..848c8da 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     90bccfddf9834c2ae0be236632d8eb1d6ee8fd19
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=90bccfdd

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 32f4a66..bbb8957 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     156001d89c113202522b9faf0cb68b3e7dbe27f9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=156001d8

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a2a74b8..32f4a66 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     6ddff747af2abb20af559925bc62833b6895a368
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6ddff747

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aeddb6e..c7af2b3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
+\item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     1918cf3398adac180d9a5b0ccd7d33de7a59fca7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1918cf33

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Also simplify array detection by using the @a operator in parameter
expansion. This feature was introduced in bash-4.4.

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 842e09f..aeddb6e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index b224e0b..0c745c3 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -142,9 +142,9 @@ post-unpack source preparation.
 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}.
 
-For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default
 implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
-listing~\ref{lst:src-prepare-6}.
+listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -179,6 +180,20 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8}
+\begin{verbatim}
+src_prepare() {
+    if [[ ${PATCHES@a} == *a* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     65a29e85e609c7058151d0dcf170de0b1843aab7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=65a29e85

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8cfc442..d263cbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index dd286a6..58254fa 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     2c5789d7debc6c573ea4e486d89b678cc24a4bac
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2c5789d7

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index c7af2b3..a2a74b8 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     62df2573b906957b844bf7fa9c58f9ede964d3d7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=62df2573

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bbb8957..8cfc442 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..dd286a6 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to the
+    directory part of the second parameter. The algorithm must return a result identical to the one
+    returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from
+    GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first
+    (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     d600ada4b2d26ced9f0454d927f0e6552015f980
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:45:56 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d600ada4

EAPI 8 has an empty working directory in pkg_* phases

https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..08c4e9f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
     * & Strong & Strong & Strong & Strong \\
 
+Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
+    Any & Any & Any & Any & Empty \\
+
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
     * & Conditional & Conditional & Conditional & Conditional \\
 
@@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..00fd259 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions.
 \subsection{Initial working directories}
 \label{sec:s-to-workdir-fallback}
 
-Some functions may assume that their initial working directory is set to a particular location;
-these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
-initial working directory for any phase is a trusted location that may only be written to by a
-privileged user and group.
+\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is
+set to a particular location; these are noted below. If no initial working directory is mandated,
+then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set
+to a dedicated directory that is empty at the start of the function and may be read-only. For other
+EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it.
+The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location
+that may only be written to by a privileged user and group.
 
 \featurelabel{s-workdir-fallback} Some functions are described as having an initial working
 directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in
@@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs}
+    \label{tab:function-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Initial working directory?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
+      8                       & Empty \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     fb2c28771a6f69663ef60bf02d6f8ca03cb280c8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=fb2c2877

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     a6094dbb3a288bd728d554953f44761167466466
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 25 15:59:13 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:20 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a6094dbb

Ban nameref variables from exported and default scope

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-format.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ebuild-format.tex b/ebuild-format.tex
index 4929ba4..25ba28e 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t
 option of bash is set in the global scope of ebuilds. If set, failed pattern matches during
 filename expansion result in an error when the ebuild is being sourced.
 
+Name reference variables (introduced in bash version~4.3) must not be used, except in local scope.
+
 The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define
 certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions}
 for specific information), and must not call any external programs, write anything to standard


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-27 19:27 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-27 19:27 UTC (permalink / raw
  To: gentoo-commits

commit:     cddf1f01d377e18db6ed2e27498bf9481f66e2f1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu May 27 19:15:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=cddf1f01

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     dfbcc109fabee8ec703e0ae7a91105f933550698
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=dfbcc109

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 16820dd..f0ea62c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 58254fa..eac17de 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     786778355746adaa07699b7b76221679db0c6b20
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=78677835

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f0ea62c..7f107e9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index eac17de..848c8da 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     4470561e8ae96901a4ed42b95ecc3ca720401615
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4470561e

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aa06551..16820dd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index dd286a6..58254fa 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     f0fb2d5886ed710a427720fdb4f380a46aa44bc0
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f0fb2d58

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d50b593..aa06551 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..dd286a6 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to the
+    directory part of the second parameter. The algorithm must return a result identical to the one
+    returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from
+    GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first
+    (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     b645b508eebf064d894bb7497edc9f7d47da1748
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b645b508

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aeddb6e..4cd6b8b 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     d2f7633afa390ecd9e7cfd98648166922f955dce
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d2f7633a

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4cd6b8b..8b1f7a6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     8f6eacff576fbd5fb1e09025dd1a301b221a4c0c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 19:56:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8f6eacff

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     35bfeddf102e90f7d67b9aacc7537e63d1f281d7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:00:27 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=35bfeddf

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Also simplify array detection by using the @a operator in parameter
expansion. This feature was introduced in bash-4.4.

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 842e09f..aeddb6e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index b224e0b..0c745c3 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -142,9 +142,9 @@ post-unpack source preparation.
 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}.
 
-For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default
 implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
-listing~\ref{lst:src-prepare-6}.
+listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -179,6 +180,20 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8}
+\begin{verbatim}
+src_prepare() {
+    if [[ ${PATCHES@a} == *a* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     6b3cf2189ce9e661384b6d4e360e5bf839eb750c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 14:37:05 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 19:56:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6b3cf218

Rearrange listings of phase functions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  10 ++--
 ebuild-functions.tex | 164 ++++++++++++++++++++++++---------------------------
 2 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 08c4e9f..842e09f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \begin{compactitem}
 \item \t{IUSE} defaults, \featureref{iuse-defaults}.
 \item Slot dependencies, \featureref{slot-deps}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-1}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
 \section{EAPI 2}
@@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}.
 \item \t{src_prepare}, \featureref{src-prepare}.
 \item \t{src_configure}, \featureref{src-configure}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-2}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare},
     \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}.
 \item \t{doman} language detection by filename, \featureref{doman-langs}.
@@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item Use dependency defaults, \featureref{use-dep-defaults}.
 \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
 \item \t{pkg_pretend}, \featureref{pkg-pretend}.
-\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}.
+\item Default \t{src_install} no longer a no-op, \featureref{src-install}.
 \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}.
 \item \t{AA} is gone, \featureref{aa}.
 \item \t{KV} is gone, \featureref{kv}.
@@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes:
 \begin{compactitem}
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
-\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}.
-\item Different \t{src_install} implementation, \featureref{src-install-6}.
+\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}.
+\item Different \t{src_install} implementation, \featureref{src-install}.
 \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 00fd259..b224e0b 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack
 \t{src_prepare}, it may also apply patches and set up the package's build system for further use.
 
 The initial working directory must be \t{WORKDIR}, and the default implementation used when
-the ebuild lacks the \t{src_unpack} function shall behave as:
+the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}.
 
 \begin{listing}[H]
-\caption{\t{src_unpack}}
+\caption{\t{src_unpack}} \label{lst:src-unpack-0}
 \begin{verbatim}
 src_unpack() {
     if [[ -n ${A} ]]; then
@@ -142,23 +142,9 @@ post-unpack source preparation.
 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}.
 
-\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
-as:
-
-\begin{listing}[H]
-\caption{\t{src_prepare}, format~6}
-\begin{verbatim}
-src_prepare() {
-    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
-        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-    else
-        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
-    fi
-    eapply_user
-}
-\end{verbatim}
-\end{listing}
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-prepare-6}.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~6} \label{lst:src-prepare-6}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
@@ -188,18 +188,8 @@ The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR}
 section~\ref{sec:s-to-workdir-fallback}.
 
 The \t{src_configure} function configures the package's build environment. The default
-implementation used when the ebuild lacks the \t{src_configure} function shall behave as:
-
-\begin{listing}[H]
-\caption{\t{src_configure}}
-\begin{verbatim}
-src_configure() {
-    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
-        econf
-    fi
-}
-\end{verbatim}
-\end{listing}
+implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
+listing~\ref{lst:src-configure-2}.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
@@ -215,6 +205,17 @@ src_configure() {
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_configure}} \label{lst:src-configure-2}
+\begin{verbatim}
+src_configure() {
+    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+        econf
+    fi
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_compile}
 
 \featurelabel{src-compile} The \t{src_compile} function configures the package's build environment
@@ -223,12 +224,28 @@ in EAPIs lacking \t{src_configure}, and builds the package in all EAPIs.
 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}.
 
-\featurelabel{src-compile-0} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-0, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-compile-table} as using format 0, 1 or~2, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
+respectively.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_compile} behaviour for EAPIs}
+    \label{tab:src-compile-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_compile}, format~0}
+\caption{\t{src_compile}, format~0} \label{lst:src-compile-0}
 \begin{verbatim}
 src_compile() {
     if [[ -x ./configure ]]; then
@@ -241,12 +258,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-1} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-1, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~1}
+\caption{\t{src_compile}, format~1} \label{lst:src-compile-1}
 \begin{verbatim}
 src_compile() {
     if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
@@ -259,12 +272,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-2} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-2, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~2}
+\caption{\t{src_compile}, format~2} \label{lst:src-compile-2}
 \begin{verbatim}
 src_compile() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -274,21 +283,6 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_compile} behaviour for EAPIs}
-    \label{tab:src-compile-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{src_test}
 
 The \t{src_test} function runs unit tests for the newly built but not yet installed package as
@@ -330,12 +324,30 @@ directory specified in \t{D}.
 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}.
 
-\featurelabel{src-install-4} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-4, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-install-table} as using format 4 or~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-install-4} or listing~\ref{lst:src-install-6}, respectively.
+
+For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
+is a no-op.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_install} behaviour for EAPIs}
+    \label{tab:src-install-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0, 1, 2, 3        & no-op \\
+      4, 5              & 4     \\
+      6, 7, 8           & 6     \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_install}, format~4}
+\caption{\t{src_install}, format~4} \label{lst:src-install-4}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -357,12 +369,8 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-install-6} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_install}, format~6}
+\caption{\t{src_install}, format~6} \label{lst:src-install-6}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -373,24 +381,6 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
-is a no-op.
-
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_install} behaviour for EAPIs}
-    \label{tab:src-install-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0, 1, 2, 3        & no-op \\
-      4, 5              & 4     \\
-      6, 7, 8           & 6     \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{pkg_preinst}
 
 The \t{pkg_preinst} function performs any special tasks that are required immediately before


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     b2b72987b46e4a677c57a40a1dbac913b77b44ce
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b2b72987

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8b1f7a6..41f7294 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     a5fff31f4571e24d25ff87ee528720221253610d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:45:56 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 19:56:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a5fff31f

EAPI 8 has an empty working directory in pkg_* phases

https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..08c4e9f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
     * & Strong & Strong & Strong & Strong \\
 
+Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
+    Any & Any & Any & Any & Empty \\
+
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
     * & Conditional & Conditional & Conditional & Conditional \\
 
@@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..00fd259 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions.
 \subsection{Initial working directories}
 \label{sec:s-to-workdir-fallback}
 
-Some functions may assume that their initial working directory is set to a particular location;
-these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
-initial working directory for any phase is a trusted location that may only be written to by a
-privileged user and group.
+\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is
+set to a particular location; these are noted below. If no initial working directory is mandated,
+then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set
+to a dedicated directory that is empty at the start of the function and may be read-only. For other
+EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it.
+The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location
+that may only be written to by a privileged user and group.
 
 \featurelabel{s-workdir-fallback} Some functions are described as having an initial working
 directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in
@@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs}
+    \label{tab:function-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Initial working directory?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
+      8                       & Empty \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     18856bf39ae1b4834499708830345c6a4e5313ce
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=18856bf3

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     27c81f8ee90a5bd12b96bf907ff126e2bc16c22e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 20:03:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=27c81f8e

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 41f7294..d50b593 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     e9e9a1167def7ca65e2dfc7c1f255701d3c7737f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 19:56:56 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e9e9a116

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-26  7:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-26  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     d5678d213a6aa60e4e917e4097bad243d043539f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 25 15:59:13 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 25 19:56:47 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d5678d21

Ban nameref variables from exported and default scope

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-format.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ebuild-format.tex b/ebuild-format.tex
index 4929ba4..3f45242 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t
 option of bash is set in the global scope of ebuilds. If set, failed pattern matches during
 filename expansion result in an error when the ebuild is being sourced.
 
+Name reference variables (introduced in Bash version~4.3) must not be used, except in local scope.
+
 The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define
 certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions}
 for specific information), and must not call any external programs, write anything to standard


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     2760c39bf0c1f4f55d7faf5aaaf01492a2c99082
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2760c39b

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f0ea62c..7f107e9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index eac17de..848c8da 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     569bf13926cb7a37d5ada37bca9ad549fa2351d4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=569bf139

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 16820dd..f0ea62c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 58254fa..eac17de 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     b88b9f57d27d25841590f3e8e77d034581886679
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b88b9f57

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d50b593..aa06551 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..dd286a6 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to the
+    directory part of the second parameter. The algorithm must return a result identical to the one
+    returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from
+    GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first
+    (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     5c919daa62bb2621101683f9affbcb32fff3d5f7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5c919daa

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aa06551..16820dd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index dd286a6..58254fa 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     3c087a736bb77f17aefa0b591b86ac546a7ff5c4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3c087a73

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 41f7294..d50b593 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     f9527f5a54e68ad0b0b2cd07b3d197496697ebae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f9527f5a

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     0ee176427425bc43b0dc33de9fb663b78bef8a42
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0ee17642

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     f3ed73959e6cc3f76c18d0b8feaa6f11aae54915
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f3ed7395

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     30e3995b6bf6a7ef8b69ceb8242409046e5e12c2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 14:37:05 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=30e3995b

Rearrange listings of phase functions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  10 ++--
 ebuild-functions.tex | 164 ++++++++++++++++++++++++---------------------------
 2 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 08c4e9f..842e09f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \begin{compactitem}
 \item \t{IUSE} defaults, \featureref{iuse-defaults}.
 \item Slot dependencies, \featureref{slot-deps}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-1}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
 \section{EAPI 2}
@@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}.
 \item \t{src_prepare}, \featureref{src-prepare}.
 \item \t{src_configure}, \featureref{src-configure}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-2}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare},
     \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}.
 \item \t{doman} language detection by filename, \featureref{doman-langs}.
@@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item Use dependency defaults, \featureref{use-dep-defaults}.
 \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
 \item \t{pkg_pretend}, \featureref{pkg-pretend}.
-\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}.
+\item Default \t{src_install} no longer a no-op, \featureref{src-install}.
 \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}.
 \item \t{AA} is gone, \featureref{aa}.
 \item \t{KV} is gone, \featureref{kv}.
@@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes:
 \begin{compactitem}
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
-\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}.
-\item Different \t{src_install} implementation, \featureref{src-install-6}.
+\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}.
+\item Different \t{src_install} implementation, \featureref{src-install}.
 \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 00fd259..b224e0b 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack
 \t{src_prepare}, it may also apply patches and set up the package's build system for further use.
 
 The initial working directory must be \t{WORKDIR}, and the default implementation used when
-the ebuild lacks the \t{src_unpack} function shall behave as:
+the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}.
 
 \begin{listing}[H]
-\caption{\t{src_unpack}}
+\caption{\t{src_unpack}} \label{lst:src-unpack-0}
 \begin{verbatim}
 src_unpack() {
     if [[ -n ${A} ]]; then
@@ -142,23 +142,9 @@ post-unpack source preparation.
 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}.
 
-\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
-as:
-
-\begin{listing}[H]
-\caption{\t{src_prepare}, format~6}
-\begin{verbatim}
-src_prepare() {
-    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
-        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-    else
-        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
-    fi
-    eapply_user
-}
-\end{verbatim}
-\end{listing}
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-prepare-6}.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~6} \label{lst:src-prepare-6}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
@@ -188,18 +188,8 @@ The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR}
 section~\ref{sec:s-to-workdir-fallback}.
 
 The \t{src_configure} function configures the package's build environment. The default
-implementation used when the ebuild lacks the \t{src_configure} function shall behave as:
-
-\begin{listing}[H]
-\caption{\t{src_configure}}
-\begin{verbatim}
-src_configure() {
-    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
-        econf
-    fi
-}
-\end{verbatim}
-\end{listing}
+implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
+listing~\ref{lst:src-configure-2}.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
@@ -215,6 +205,17 @@ src_configure() {
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_configure}} \label{lst:src-configure-2}
+\begin{verbatim}
+src_configure() {
+    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+        econf
+    fi
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_compile}
 
 \featurelabel{src-compile} The \t{src_compile} function configures the package's build environment
@@ -223,12 +224,28 @@ in EAPIs lacking \t{src_configure}, and builds the package in all EAPIs.
 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}.
 
-\featurelabel{src-compile-0} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-0, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-compile-table} as using format 0, 1 or~2, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
+respectively.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_compile} behaviour for EAPIs}
+    \label{tab:src-compile-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_compile}, format~0}
+\caption{\t{src_compile}, format~0} \label{lst:src-compile-0}
 \begin{verbatim}
 src_compile() {
     if [[ -x ./configure ]]; then
@@ -241,12 +258,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-1} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-1, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~1}
+\caption{\t{src_compile}, format~1} \label{lst:src-compile-1}
 \begin{verbatim}
 src_compile() {
     if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
@@ -259,12 +272,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-2} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-2, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~2}
+\caption{\t{src_compile}, format~2} \label{lst:src-compile-2}
 \begin{verbatim}
 src_compile() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -274,21 +283,6 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_compile} behaviour for EAPIs}
-    \label{tab:src-compile-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{src_test}
 
 The \t{src_test} function runs unit tests for the newly built but not yet installed package as
@@ -330,12 +324,30 @@ directory specified in \t{D}.
 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}.
 
-\featurelabel{src-install-4} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-4, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-install-table} as using format 4 or~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-install-4} or listing~\ref{lst:src-install-6}, respectively.
+
+For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
+is a no-op.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_install} behaviour for EAPIs}
+    \label{tab:src-install-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0, 1, 2, 3        & no-op \\
+      4, 5              & 4     \\
+      6, 7, 8           & 6     \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_install}, format~4}
+\caption{\t{src_install}, format~4} \label{lst:src-install-4}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -357,12 +369,8 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-install-6} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_install}, format~6}
+\caption{\t{src_install}, format~6} \label{lst:src-install-6}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -373,24 +381,6 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
-is a no-op.
-
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_install} behaviour for EAPIs}
-    \label{tab:src-install-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0, 1, 2, 3        & no-op \\
-      4, 5              & 4     \\
-      6, 7, 8           & 6     \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{pkg_preinst}
 
 The \t{pkg_preinst} function performs any special tasks that are required immediately before


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     0246dbf298b67f64b30ff7ec11e74c6060389a10
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0246dbf2

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index aeddb6e..4cd6b8b 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     360a4c1b05750b204421fe5eb1c4355acec4b220
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=360a4c1b

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4cd6b8b..8b1f7a6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     deb235b793539a91c9b4e01a57fd022af57f3df7
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:45:56 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=deb235b7

EAPI 8 has an empty working directory in pkg_* phases

https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..08c4e9f 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
     * & Strong & Strong & Strong & Strong \\
 
+Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
+    Any & Any & Any & Any & Empty \\
+
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
     * & Conditional & Conditional & Conditional & Conditional \\
 
@@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..00fd259 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions.
 \subsection{Initial working directories}
 \label{sec:s-to-workdir-fallback}
 
-Some functions may assume that their initial working directory is set to a particular location;
-these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
-initial working directory for any phase is a trusted location that may only be written to by a
-privileged user and group.
+\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is
+set to a particular location; these are noted below. If no initial working directory is mandated,
+then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set
+to a dedicated directory that is empty at the start of the function and may be read-only. For other
+EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it.
+The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location
+that may only be written to by a privileged user and group.
 
 \featurelabel{s-workdir-fallback} Some functions are described as having an initial working
 directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in
@@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs}
+    \label{tab:function-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Initial working directory?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
+      8                       & Empty \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     0758b3343f9c3b25deb8fe099d3cbd53eb0f2ce8
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  5 18:04:28 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0758b334

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     11266ab01b368d08fb5a5aa07c4c6fe69c9d260e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=11266ab0

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 842e09f..aeddb6e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index b224e0b..d95d8ce 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -142,9 +142,9 @@ post-unpack source preparation.
 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}.
 
-For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default
 implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
-listing~\ref{lst:src-prepare-6}.
+listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -179,6 +180,20 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     63fcb765df29dbececb74336e04f27272a8c44f1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=63fcb765

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8b1f7a6..41f7294 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     244623f1a4a5e0f1496e42e0e5a0af8e5967ca71
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=244623f1

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index 81599a9..aa04d3d 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -207,11 +207,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     784ab67c64f0981a3fb4496d2d3890054fc80163
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=784ab67c

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     8cb79731cf936aee82fb75b7c01f08e48eacac72
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8cb79731

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 799a20c..d0ad87d 100644
--- a/commands.tex
+++ b/commands.tex
@@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 67855f5..3ef6fa6 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 006b8e4..2e562d6 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4e691c5..ffdea16 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index bbd286f..040b02a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -263,7 +263,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -272,7 +272,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -307,7 +307,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -316,7 +316,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index bc6d1ac..71d1e89 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -31,7 +31,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -43,7 +43,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -54,7 +54,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -72,7 +72,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -110,7 +110,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -123,7 +123,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -159,7 +159,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -169,7 +169,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -191,7 +191,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -204,7 +204,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -268,7 +268,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -278,7 +278,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -327,7 +327,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -343,7 +343,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -619,7 +619,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -628,12 +628,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -642,12 +642,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -656,12 +656,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -672,12 +672,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -686,12 +686,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -700,7 +700,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -810,7 +810,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -821,7 +821,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -865,7 +865,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -874,12 +874,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -888,12 +888,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -904,7 +904,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -984,7 +984,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -995,7 +995,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1069,7 +1069,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1079,12 +1079,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1096,7 +1096,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1163,7 +1163,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1175,7 +1175,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index fdf4b65..81599a9 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -127,7 +127,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -136,7 +136,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     35dc5f534febcdd129ceedebcd76d143ae279969
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=35dc5f53

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 19:39 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     a52c83ee5281a393ffc1ed6a590e892557d11d54
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 19:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a52c83ee

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     b78e112d89d5651d8ce897c6537bcd8e7718c94a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b78e112d

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index cb2d26e..6e0ceeb 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty default working directory in phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     4fc292a5b8a0d453c4866199645e461a33e53a10
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4fc292a5

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index ebe5ccc..2ac78ba 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 323b26d..566c103 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     3d7c969ce1310c1f04d6e16309cd60e78e298df6
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3d7c969c

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     c82f806ae44e758361b64c44010fca52abe4f95c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c82f806a

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index e10f519..bc2fcbc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     45db43981669a05be0c0f79cb0a2506ec5aee735
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=45db4398

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1174052..cb2d26e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -124,7 +124,7 @@ Working directory in functions & \compactfeatureref{phase-function-dir} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Empty default working directory in phase functions, \featureref{phase-function-dir}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 1bfa957..0cf8b4b 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -142,9 +142,9 @@ post-unpack source preparation.
 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}.
 
-For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default
 implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
-listing~\ref{lst:src-prepare-6}.
+listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -179,6 +180,20 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     93132ba398a5dcb3dd7a2fd369fc38665124197b
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=93132ba3

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc2fcbc..a163a9c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     5f0db8dbf82f6046b86da76b9c8f0931e6dc875f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5f0db8db

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 9b1e98b..0afc131 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0520f92..33a976b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     364f563408ff94793285b0d49a00204af5c6d991
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=364f5634

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2ac78ba..9b1e98b 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 566c103..0520f92 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     809c355ee7a419319986140a629598d8fb7de375
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=809c355e

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 6e0ceeb..e10f519 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Empty default working directory in phase functions, \featureref{phase-function-dir}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     2d9b9b98bc976edb2a2716eb19f3b6b793852b2a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2d9b9b98

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a163a9c..ebe5ccc 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..323b26d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to
+    the apparent path of the directory containing the second parameter. The algorithm must return
+    a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     824c0720e7df0bf34454e2137f4e8ae4c35f841d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=824c0720

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index 81599a9..aa04d3d 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -207,11 +207,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     702574b89db12de3abd11e66de281379442e877e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=702574b8

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     8cb0536dea998be6fcb73d09484713ae8202ad4e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  5 18:04:28 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8cb0536d

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     73b0566d6e0a18a8254209e1e650b1b3e55082aa
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:45:56 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=73b0566d

EAPI 8 has empty initial working directories in phase functions

https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..2c1073a 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
     * & Strong & Strong & Strong & Strong \\
 
+Working directory in functions & \compactfeatureref{phase-function-dir} &
+    Any & Any & Any & Any & Empty \\
+
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
     * & Conditional & Conditional & Conditional & Conditional \\
 
@@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Empty default working directory in phase functions, \featureref{phase-function-dir}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..44b8b43 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions.
 \subsection{Initial working directories}
 \label{sec:s-to-workdir-fallback}
 
-Some functions may assume that their initial working directory is set to a particular location;
-these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
-initial working directory for any phase is a trusted location that may only be written to by a
-privileged user and group.
+\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is
+set to a particular location; these are noted below. If no initial working directory is mandated,
+then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set
+to a dedicated directory that is empty at the start of the function and may be read-only. For other
+EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it.
+The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location
+that may only be written to by a privileged user and group.
 
 \featurelabel{s-workdir-fallback} Some functions are described as having an initial working
 directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in
@@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Default initial working directory in phase functions for EAPIs}
+    \label{tab:function-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Working dir?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
+      8                       & Empty \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     8aac19dfe15c2605aa9dc1371c21f12ef76995bc
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8aac19df

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     77ec3455b7e209310cc546fb9ee34b971c8c3bb6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=77ec3455

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     d5cd2137f063e84ff330b61014dddc7c655dc716
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d5cd2137

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     e8a781295a5ea78570c5f186317a7cf4d5ae6758
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 19 14:54:00 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 23 09:54:20 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e8a78129

Recognise "test_network" as token in PROPERTIES

This was originally proposed as a RESTRICT token for EAPI 8, but
implementing it retroactively in PROPERTIES (where it is optional
from the spec's point of view) appears to be more feasible.

Bug: https://bugs.gentoo.org/553696
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index fca8565..bbd286f 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -225,6 +225,8 @@ The following tokens are permitted inside \t{PROPERTIES}:
 \item[interactive] The package may require interaction with the user via the tty.
 \item[live] The package uses ``live'' source code that may vary each time that the package is
     installed.
+\item[test_network] The package manager may run tests that require an internet connection, even if
+    the ebuild has \t{RESTRICT=test}.
 \end{description}
 
 Package managers may recognise other tokens. Ebuilds may not rely upon any token being supported.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     897ea77dc60e125899b440496d75011e8ae18742
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 22:45:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 23 09:54:20 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=897ea77d

Clarify that updates files are processed in no particular order

Bug: https://bugs.gentoo.org/296713#c14
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 tree-layout.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tree-layout.tex b/tree-layout.tex
index 719b489..fdf4b65 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -223,6 +223,9 @@ The second form instructs the package manager that any currently installed packa
 package dependency specification \t{spec} whose \t{SLOT} is set to \t{slot1} should have it updated
 to \t{slot2}.
 
+It is unspecified in what order the files in the \t{updates} directory are processed. Lines within
+each file are processed in ascending order.
+
 Any name that has appeared as the origin of a move must not be reused in the future. Any slot
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     7ab6f4ddfcea6170da764e5d2bca30001f42564a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 14:37:05 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7ab6f4dd

Rearrange listings of phase functions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  10 ++--
 ebuild-functions.tex | 164 ++++++++++++++++++++++++---------------------------
 2 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2c1073a..1174052 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \begin{compactitem}
 \item \t{IUSE} defaults, \featureref{iuse-defaults}.
 \item Slot dependencies, \featureref{slot-deps}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-1}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
 \section{EAPI 2}
@@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}.
 \item \t{src_prepare}, \featureref{src-prepare}.
 \item \t{src_configure}, \featureref{src-configure}.
-\item Different \t{src_compile} implementation, \featureref{src-compile-2}.
+\item Different \t{src_compile} implementation, \featureref{src-compile}.
 \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare},
     \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}.
 \item \t{doman} language detection by filename, \featureref{doman-langs}.
@@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item Use dependency defaults, \featureref{use-dep-defaults}.
 \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
 \item \t{pkg_pretend}, \featureref{pkg-pretend}.
-\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}.
+\item Default \t{src_install} no longer a no-op, \featureref{src-install}.
 \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}.
 \item \t{AA} is gone, \featureref{aa}.
 \item \t{KV} is gone, \featureref{kv}.
@@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes:
 \begin{compactitem}
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
-\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}.
-\item Different \t{src_install} implementation, \featureref{src-install-6}.
+\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}.
+\item Different \t{src_install} implementation, \featureref{src-install}.
 \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}.

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 44b8b43..1bfa957 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack
 \t{src_prepare}, it may also apply patches and set up the package's build system for further use.
 
 The initial working directory must be \t{WORKDIR}, and the default implementation used when
-the ebuild lacks the \t{src_unpack} function shall behave as:
+the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}.
 
 \begin{listing}[H]
-\caption{\t{src_unpack}}
+\caption{\t{src_unpack}} \label{lst:src-unpack-0}
 \begin{verbatim}
 src_unpack() {
     if [[ -n ${A} ]]; then
@@ -142,23 +142,9 @@ post-unpack source preparation.
 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}.
 
-\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
-as:
-
-\begin{listing}[H]
-\caption{\t{src_prepare}, format~6}
-\begin{verbatim}
-src_prepare() {
-    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
-        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-    else
-        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
-    fi
-    eapply_user
-}
-\end{verbatim}
-\end{listing}
+For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-prepare-6}.
 
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
@@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~6} \label{lst:src-prepare-6}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_configure}
 
 \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
@@ -188,18 +188,8 @@ The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR}
 section~\ref{sec:s-to-workdir-fallback}.
 
 The \t{src_configure} function configures the package's build environment. The default
-implementation used when the ebuild lacks the \t{src_configure} function shall behave as:
-
-\begin{listing}[H]
-\caption{\t{src_configure}}
-\begin{verbatim}
-src_configure() {
-    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
-        econf
-    fi
-}
-\end{verbatim}
-\end{listing}
+implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
+listing~\ref{lst:src-configure-2}.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
@@ -215,6 +205,17 @@ src_configure() {
     \end{tabular}
 \end{centertable}
 
+\begin{listing}[H]
+\caption{\t{src_configure}} \label{lst:src-configure-2}
+\begin{verbatim}
+src_configure() {
+    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+        econf
+    fi
+}
+\end{verbatim}
+\end{listing}
+
 \subsection{src_compile}
 
 \featurelabel{src-compile} The \t{src_compile} function configures the package's build environment
@@ -223,12 +224,28 @@ in EAPIs lacking \t{src_configure}, and builds the package in all EAPIs.
 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}.
 
-\featurelabel{src-compile-0} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-0, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-compile-table} as using format 0, 1 or~2, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
+respectively.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_compile} behaviour for EAPIs}
+    \label{tab:src-compile-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_compile}, format~0}
+\caption{\t{src_compile}, format~0} \label{lst:src-compile-0}
 \begin{verbatim}
 src_compile() {
     if [[ -x ./configure ]]; then
@@ -241,12 +258,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-1} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-1, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~1}
+\caption{\t{src_compile}, format~1} \label{lst:src-compile-1}
 \begin{verbatim}
 src_compile() {
     if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
@@ -259,12 +272,8 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-compile-2} For EAPIs listed in table~\ref{tab:src-compile-table} as using format
-2, the default implementation used when the ebuild lacks the \t{src_compile} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_compile}, format~2}
+\caption{\t{src_compile}, format~2} \label{lst:src-compile-2}
 \begin{verbatim}
 src_compile() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -274,21 +283,6 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_compile} behaviour for EAPIs}
-    \label{tab:src-compile-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{src_test}
 
 The \t{src_test} function runs unit tests for the newly built but not yet installed package as
@@ -330,12 +324,30 @@ directory specified in \t{D}.
 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}.
 
-\featurelabel{src-install-4} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-4, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
+For EAPIs listed in table~\ref{tab:src-install-table} as using format 4 or~6, the default
+implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in
+listing~\ref{lst:src-install-4} or listing~\ref{lst:src-install-6}, respectively.
+
+For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
+is a no-op.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{\t{src_install} behaviour for EAPIs}
+    \label{tab:src-install-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Format}} \\
+      \midrule
+      0, 1, 2, 3        & no-op \\
+      4, 5              & 4     \\
+      6, 7, 8           & 6     \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \begin{listing}[H]
-\caption{\t{src_install}, format~4}
+\caption{\t{src_install}, format~4} \label{lst:src-install-4}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -357,12 +369,8 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-\featurelabel{src-install-6} For EAPIs listed in table~\ref{tab:src-install-table} as using format
-6, the default implementation used when the ebuild lacks the \t{src_install} function shall behave
-as:
-
 \begin{listing}[H]
-\caption{\t{src_install}, format~6}
+\caption{\t{src_install}, format~6} \label{lst:src-install-6}
 \begin{verbatim}
 src_install() {
     if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
@@ -373,24 +381,6 @@ src_install() {
 \end{verbatim}
 \end{listing}
 
-For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
-is a no-op.
-
-\ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{\t{src_install} behaviour for EAPIs}
-    \label{tab:src-install-table}
-    \begin{tabular}{ll}
-      \toprule
-      \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Format}} \\
-      \midrule
-      0, 1, 2, 3        & no-op \\
-      4, 5              & 4     \\
-      6, 7, 8           & 6     \\
-      \bottomrule
-    \end{tabular}
-\end{centertable}
-
 \subsection{pkg_preinst}
 
 The \t{pkg_preinst} function performs any special tasks that are required immediately before


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     247a5d9bade95d9b67fe92689003185542c06a99
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=247a5d9b

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-24 10:35 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     4f1aee873ef4eb892eea579377ce6e0120054cb3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 24 09:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4f1aee87

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 799a20c..d0ad87d 100644
--- a/commands.tex
+++ b/commands.tex
@@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 67855f5..3ef6fa6 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 006b8e4..2e562d6 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4e691c5..ffdea16 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index bbd286f..040b02a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -263,7 +263,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -272,7 +272,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -307,7 +307,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -316,7 +316,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index bc6d1ac..71d1e89 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -31,7 +31,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -43,7 +43,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -54,7 +54,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -72,7 +72,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -110,7 +110,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -123,7 +123,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -159,7 +159,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -169,7 +169,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -191,7 +191,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -204,7 +204,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -268,7 +268,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -278,7 +278,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -327,7 +327,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -343,7 +343,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -619,7 +619,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -628,12 +628,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -642,12 +642,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -656,12 +656,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -672,12 +672,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -686,12 +686,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -700,7 +700,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -810,7 +810,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -821,7 +821,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -865,7 +865,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -874,12 +874,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -888,12 +888,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -904,7 +904,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -984,7 +984,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -995,7 +995,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1069,7 +1069,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1079,12 +1079,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1096,7 +1096,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1163,7 +1163,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1175,7 +1175,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index fdf4b65..81599a9 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -127,7 +127,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -136,7 +136,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:retroactive commit in: /
@ 2021-05-24  8:54 Ulrich Müller
  2021-05-24 10:35 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-05-24  8:54 UTC (permalink / raw
  To: gentoo-commits

commit:     0db12c169b7f4bfd773792199cff0081846828c6
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 09:53:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 23 09:53:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0db12c16

pms.cls: Specify \raggedbottom also in twoside mode

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pms.cls b/pms.cls
index 2e2e9bf..a41d96c 100644
--- a/pms.cls
+++ b/pms.cls
@@ -152,6 +152,10 @@
 \setlength\hfuzz{0.2pt}          % was 0.1pt
 \setlength\emergencystretch{1em} % was 0
 
+% Don't add extra vertical space, to avoid underfull boxes. Only affects
+% two-sided layout, for one-sided it is already the default
+\raggedbottom
+
 % Define some PDF meta-data.
 % tex4ht workaround: this needs to happen after loading hyperref
 \g@addto@macro\@documentclasshook{


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     a4eb674e74ca49d3766c60d5f96c91af07ab1b43
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a4eb674e

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 185a821..c418463 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,8 +460,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -478,8 +479,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -494,9 +496,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -529,8 +532,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -782,12 +786,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -795,6 +803,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     6d5c00b882fc5eaea2a9839310d52e78e0133f7f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6d5c00b8

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c418463..5c65796 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     c70d5abf88a75367dae71d8057b166da84b83582
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c70d5abf

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 5c65796..93af3a7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1153,10 +1153,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1195,16 +1198,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     3f9758880f75000573eaad05fcaa845c0feb8e05
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3f975888

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index 81599a9..aa04d3d 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -207,11 +207,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     a596e3e1075113d5042d4a235eeaae6bb8152391
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a596e3e1

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3ef6fa6..f14a08c 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2e562d6..ddea935 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index f6b1c26..d07cca4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     c2d3f76893b5d4cd3541bc22f04d2f401074b491
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c2d3f768

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 16 ++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5319bf0..913935d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -233,6 +233,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -499,6 +508,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 71d1e89..c56e592 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error.
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      \midrule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{6}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
+      8                       & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     80e6ede944c961a307585e55993bbc219447ec8d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=80e6ede9

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e74f730..817b52b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -346,23 +346,28 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \midrule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  & \\
+          4                 & Yes & No  & No  & \\
+          5, 6, 7           & Yes & Yes & No  & \\
+          8                 & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     5fb50f90c867a5f8d68803f86f683e2635930d4e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5fb50f90

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..185a821 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to
+    the apparent path of the directory containing the first parameter. The algorithm must return
+    a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     b800ccfb8622ac6e0ce8f20132d2b1c47d49a088
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b800ccfb

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 3e5e7bd..1503053 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -511,6 +512,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7909bdd..e74f730 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -338,27 +338,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     a394e42772656455ca3689aba3b4af9cd2166131
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a394e427

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 913935d..3e5e7bd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -510,6 +510,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c56e592..7909bdd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -312,6 +312,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -340,20 +343,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     88f69e7c78637001182f21f2887fec9aa4a78c75
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=88f69e7c

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5d7170d..5319bf0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -495,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     1e38463ca4429bd51439801f7595b1521f346be8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1e38463c

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 040b02a..f6b1c26 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1              & No  & No  \\
+      2, 3, 4, 5, 6, 7  & Yes & No  \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     f53af694f8505b67119a468ed5da0f689d57c087
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f53af694

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..5d7170d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -494,6 +494,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ffdea16..2998053 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     6e765346f51657b5d52ef7801163dd3d4c0317de
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6e765346

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     4abd59f9dfd90f88c74a9cadf1567e421f51a46d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  5 18:04:28 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4abd59f9

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     50ccb9355ec1db04f07b9b4e066e4f0a27e96526
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=50ccb935

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     362fa599c8da4a1f8ecb55c2cf2ff8fa1dce8f26
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 22:45:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:44:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=362fa599

Clarify that updates files are processed in no particular order

Bug: https://bugs.gentoo.org/296713#c14
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 tree-layout.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tree-layout.tex b/tree-layout.tex
index 719b489..fdf4b65 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -223,6 +223,9 @@ The second form instructs the package manager that any currently installed packa
 package dependency specification \t{spec} whose \t{SLOT} is set to \t{slot1} should have it updated
 to \t{slot2}.
 
+It is unspecified in what order the files in the \t{updates} directory are processed. Lines within
+each file are processed in ascending order.
+
 Any name that has appeared as the origin of a move must not be reused in the future. Any slot
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     f6f32022cb444dd33becc8315b0c7d4247c54f08
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f6f32022

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 799a20c..d0ad87d 100644
--- a/commands.tex
+++ b/commands.tex
@@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 67855f5..3ef6fa6 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 006b8e4..2e562d6 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4e691c5..ffdea16 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index bbd286f..040b02a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -263,7 +263,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -272,7 +272,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -307,7 +307,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -316,7 +316,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index bc6d1ac..71d1e89 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -31,7 +31,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -43,7 +43,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -54,7 +54,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -72,7 +72,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -110,7 +110,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -123,7 +123,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -159,7 +159,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -169,7 +169,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -191,7 +191,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -204,7 +204,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -268,7 +268,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -278,7 +278,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -327,7 +327,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -343,7 +343,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -619,7 +619,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -628,12 +628,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -642,12 +642,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -656,12 +656,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -672,12 +672,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -686,12 +686,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -700,7 +700,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -810,7 +810,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -821,7 +821,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -865,7 +865,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -874,12 +874,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -888,12 +888,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -904,7 +904,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -984,7 +984,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -995,7 +995,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1069,7 +1069,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1079,12 +1079,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1096,7 +1096,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1163,7 +1163,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1175,7 +1175,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index fdf4b65..81599a9 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -127,7 +127,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -136,7 +136,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     1ee885cbab00ef91b9398c7cbd69e9831f96d5be
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1ee885cb

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     3e558f678cf36228c51eaf36d59a48577c3e25e3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 19:43:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:42:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3e558f67

Fix bad page breaks before lists

Taken from https://tex.stackexchange.com/a/2645.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex              | 1 +
 dependencies.tex          | 4 ++--
 ebuild-env-invariancy.tex | 4 ++--
 ebuild-env-vars.tex       | 2 +-
 ebuild-functions.tex      | 2 +-
 ebuild-vars.tex           | 8 ++++----
 pkg-mgr-commands.tex      | 3 ++-
 pms.cls                   | 3 +++
 tree-layout.tex           | 4 +++-
 9 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..799a20c 100644
--- a/commands.tex
+++ b/commands.tex
@@ -21,6 +21,7 @@ dependencies must be used to ensure their presence.
 \label{sec:guaranteed-system-commands}
 
 The following commands must always be available in the ebuild environment:
+\nobreakpar
 \begin{compactitem}
 \item All builtin commands in GNU bash, version as listed in table~\ref{tab:bash-version}.
 \item \t{sed} must be available, and must support all forms of invocations valid for GNU sed

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..67855f5 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -330,7 +330,7 @@ delimited by a \t{/} character.
 
 \featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
 the following operators:
-
+\nobreakpar
 \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
@@ -358,7 +358,7 @@ the equals slot operator inside \t{PDEPEND} or inside any-of dependency specific
 \label{sec:use-dep}
 
 A 2-style or 4-style use dependency consists of one of the following:
-
+\nobreakpar
 \begin{description}
 \item[{[opt]}] The flag must be enabled.
 \item[{[opt=]}] The flag must be enabled if the flag is enabled for the package with the

diff --git a/ebuild-env-invariancy.tex b/ebuild-env-invariancy.tex
index cc95a2b..9484103 100644
--- a/ebuild-env-invariancy.tex
+++ b/ebuild-env-invariancy.tex
@@ -1,7 +1,7 @@
 \section{The State of the System Between Functions}
 
 For the sake of this section:
-
+\nobreakpar
 \begin{compactitem}
 \item Variancy is any package manager action that modifies either
     \t{ROOT} or \t{/} in any way that isn't merely a simple addition of
@@ -14,7 +14,7 @@ For the sake of this section:
 \end{compactitem}
 
 The following exclusivity and invariancy requirements are mandated:
-
+\nobreakpar
 \begin{compactitem}
 \item No variancy shall be introduced at any point between a package's
     \t{pkg_setup} being started up to the point that that package is

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..006b8e4 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -358,7 +358,7 @@ table~\ref{tab:locale-settings}.
 \label{sec:use-iuse-handling}
 
 This section discusses the handling of four variables:
-
+\nobreakpar
 \begin{description}
 \item[IUSE] is the variable calculated from the \t{IUSE} values defined in ebuilds and eclasses.
 \item[IUSE_REFERENCEABLE] is a variable calculated from \t{IUSE} and a variety of other sources

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..4e691c5 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -479,7 +479,7 @@ when in the phase in question.
 \section{Call Order}
 
 The call order for installing a package is:
-
+\nobreakpar
 \begin{compactitem}
 \item \t{pkg_pretend} (only for EAPIs listed in table~\ref{tab:pkg-pretend-table}), which is called
     outside of the normal call order process.

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..fca8565 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -24,7 +24,7 @@ variable data.
 \label{sec:mandatory-vars}
 
 All ebuilds must define at least the following variables:
-
+\nobreakpar
 \begin{description}
 \item[DESCRIPTION] A short human-readable description of the package's purpose. May be defined by an
     eclass. Must not be empty.
@@ -44,7 +44,7 @@ All ebuilds must define at least the following variables:
 \label{sec:optional-vars}
 
 Ebuilds may define any of the following variables:
-
+\nobreakpar
 \begin{description}
 \item[EAPI] The EAPI\@. See below in section~\ref{sec:eapi}.
 \item[HOMEPAGE] The URI or URIs for a package's homepage, including protocols.
@@ -220,7 +220,7 @@ It is an error for a flag to be used if it is not included in \t{IUSE_EFFECTIVE}
 \label{sec:properties}
 
 The following tokens are permitted inside \t{PROPERTIES}:
-
+\nobreakpar
 \begin{description}
 \item[interactive] The package may require interaction with the user via the tty.
 \item[live] The package uses ``live'' source code that may vary each time that the package is
@@ -233,7 +233,7 @@ Package managers may recognise other tokens. Ebuilds may not rely upon any token
 \label{sec:restrict}
 
 The following tokens are permitted inside \t{RESTRICT}:
-
+\nobreakpar
 \begin{description}
 \item[mirror] The package's \t{SRC_URI} entries may not be mirrored, and mirrors should not be
     checked when fetching.

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..bc6d1ac 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -16,6 +16,7 @@ a failure shall either result in a non-zero exit status or abort the build proce
 table~\ref{tab:commands-die-table}.
 
 The following commands affect this behaviour:
+\nobreakpar
 \begin{description}
 \item[nonfatal] \featurelabel{nonfatal} Takes one or more arguments and executes them as a command,
     preserving the exit status. If this results in a command being called that would normally abort
@@ -910,7 +911,7 @@ table~\ref{tab:use-list-strictness}.
 
 \subsection{Text list functions}
 These functions check whitespace-separated lists for a particular value.
-
+\nobreakpar
 \begin{description}
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.

diff --git a/pms.cls b/pms.cls
index 1a09407..2e2e9bf 100644
--- a/pms.cls
+++ b/pms.cls
@@ -131,6 +131,9 @@
 \floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{List of Listings}}
 
+% Prevent page break before a list
+\newcommand{\nobreakpar}{\par\nobreak\@afterheading}
+
 % Silence hyperref messages (see hint 11.3 in the hyperref manual)
 \providecommand*{\toclevel@algorithm}{0}
 \providecommand*{\toclevel@listing}{0}

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..719b489 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -8,6 +8,7 @@ differently from normal.
 \section{Top Level}
 
 An ebuild repository shall occupy one directory on disk, with the following subdirectories:
+\nobreakpar
 \begin{compactitem}
 \item One directory per category, whose name shall be the name of the category. The layout of
     these directories shall be as described in section~\ref{sec:category-dirs}.
@@ -47,6 +48,7 @@ a package manager may treat an empty category as a category that does not exist)
 \label{sec:package-dirs}
 
 A package directory contains the following:
+\nobreakpar
 \begin{compactitem}
 \item Zero or more ebuilds. These are as described in chapter~\ref{ch:ebuild-format} and others.
 \item A \t{metadata.xml} file, as described in appendix~\ref{ch:metadata-xml}\@. Optional only for
@@ -151,7 +153,7 @@ status. Each line has the format:
 \end{verbatim}
 
 Where:
-
+\nobreakpar
 \begin{compactitem}
 \item \t{<keyword>} is the default keyword for the profile and the \t{ARCH} for which the profile is
     valid.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:retroactive commit in: /
@ 2021-05-22  6:36 Ulrich Müller
  2021-05-22  6:36 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-05-22  6:36 UTC (permalink / raw
  To: gentoo-commits

commit:     8047ad3e6e2a2701d8e679dc615afd7a52dc95a3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 19 14:54:00 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:44:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8047ad3e

Recognise "test_network" as token in PROPERTIES

This was originally proposed as a RESTRICT token for EAPI 8, but
implementing it retroactively in PROPERTIES (where it is optional
from the spec's point of view) appears to be more feasible.

Bug: https://bugs.gentoo.org/553696
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index fca8565..bbd286f 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -225,6 +225,8 @@ The following tokens are permitted inside \t{PROPERTIES}:
 \item[interactive] The package may require interaction with the user via the tty.
 \item[live] The package uses ``live'' source code that may vary each time that the package is
     installed.
+\item[test_network] The package manager may run tests that require an internet connection, even if
+    the ebuild has \t{RESTRICT=test}.
 \end{description}
 
 Package managers may recognise other tokens. Ebuilds may not rely upon any token being supported.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     3263b7aeca96da7efb1f3f73361bf2c8445e09d6
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3263b7ae

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 46507b7..54ea342 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -612,9 +612,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to
+    the apparent path of the directory containing the first parameter. The algorithm must return
+    a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -742,6 +760,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     3839f6bb6ca18867afc84cb5517029ce4f29a90a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3839f6bb

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 54ea342..4e2c0fd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -473,8 +473,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -491,8 +492,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -507,9 +509,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -542,8 +545,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -794,12 +798,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
@@ -807,6 +815,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     80150c28e1f9ce2e02c2c6e0b3342f11f12c323d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=80150c28

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4e2c0fd..a0a4f33 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -948,15 +948,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -991,15 +993,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     5682ee4c298c129e3c96d56e9a7456cf8ef0ca4d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5682ee4c

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a0a4f33..bd12e1f 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1165,10 +1165,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1207,16 +1210,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     99c1f4ba03299d96403fe1e8fe485ff70dac488e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=99c1f4ba

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 48 ++++++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b8ba853..46507b7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -319,18 +319,18 @@ commands once the current phase function has returned.
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
     \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-docdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-htmldir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}/html}, if the EAPI is
-        listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed
+        listed in table~\ref{tab:econf-options-1} as using it. This option will only be passed
         if the string \t{-{}-htmldir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-with-sysroot} must be \t{\$\{ESYSROOT:-/\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-with-sysroot} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-build} must be the value of the \t{CBUILD} environment variable. This option will
         only be passed if \t{CBUILD} is non-empty.
@@ -339,36 +339,48 @@ commands once the current phase function has returned.
         only be passed if \t{CTARGET} is non-empty.
     \item \t{-{}-libdir} must be set according to algorithm~\ref{alg:econf-libdir}.
     \item \t{-{}-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
+        table~\ref{tab:econf-options-2} 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 \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-silent-rules}
         occurs in the output of \t{configure -{}-help}.
-    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-static} occurs
         in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
-        \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \label{tab:econf-options-1}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \bottomrule
+        \end{tabular}
+        % Don't start a new table environment, or the two parts may end up on different pages
+        \vspace{\floatsep}
+        \caption{Extra \t{econf} arguments for EAPIs (continued)}
+        \label{tab:econf-options-2}
+        \begin{tabular}{llll}
+          \toprule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  \\
+          4                 & Yes & No  & No  \\
+          5, 6, 7           & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     60d38ae9e3ac5abda3ff295e949b972fc2ec136a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=60d38ae9

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 8cb776c..fac25f4 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     9d926f4b9b6f5ad059289d6a7903115dfeebc789
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9d926f4b

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     aa64a62f217eb6d6eb6e5433bd5fac253096c20f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=aa64a62f

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 3e5e7bd..1503053 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -511,6 +512,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d27c079..b8ba853 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -344,27 +344,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     a4c268e236bfe4a403d0d6695deb7c0f594a7a93
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a4c268e2

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     e3973dd29b1c68049a5a1206d74aad6e6a9fce6b
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e3973dd2

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5d7170d..5319bf0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -495,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     748bf9847afc90a2e2136ba03c9ee1bedfa085e1
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=748bf984

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 37 ++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5319bf0..913935d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -233,6 +233,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -499,6 +508,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..d535e00 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -55,7 +55,7 @@ called, the package manager must abort the build process indicating an error.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
-    \label{tab:banned-commands-table}
+    \label{tab:banned-commands-1}
     \begin{tabular}{lllllll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
@@ -74,6 +74,23 @@ called, the package manager must abort the build process indicating an error.
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
+    % Don't start a new table environment, or the two parts may end up on different pages
+    \vspace{\floatsep}
+    \caption{Banned commands (continued)}
+    \label{tab:banned-commands-2}
+    \begin{tabular}{llll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{3}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  \\
+      8                       & Yes & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
 \end{centertable}
 
 \subsection{Sandbox commands}
@@ -387,7 +404,7 @@ commands once the current phase function has returned.
 \item[einstall] A shortcut for the command given in listing~\ref{lst:einstall}. Any arguments given
     to \t{einstall} are passed verbatim to \t{emake}, as shown. Failure behaviour is EAPI dependent
     as per section~\ref{sec:failure-behaviour}.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
     The variable \t{ED} is defined as in table~\ref{tab:defined-vars} and depends on the use of an
@@ -465,7 +482,7 @@ the current phase function has returned.
 \item[dohard] Takes two parameters. Creates a hardlink from the second to the first. Both paths are
     relative to the staging directory including the offset-prefix \t{ED} in offset-prefix aware
     EAPIs, or just the staging directory \t{D} in offset-prefix agnostic EAPIs. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/},
@@ -493,7 +510,7 @@ the current phase function has returned.
         offset-prefix.
     \end{compactdesc}
 
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
     Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
@@ -524,7 +541,7 @@ the current phase function has returned.
 
 \item[dolib] As for \t{dolib.a} except that the default install mode can be overriden with
     the \t{install} options set by the most recent \t{libopts} call. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \begin{algorithm}
@@ -732,7 +749,7 @@ function has returned.
 \item[exeopts] As \t{insopts}, for \t{doexe} et al.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
     per section~\ref{sec:banned-commands}.
 
 \end{description}
@@ -841,6 +858,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -915,7 +934,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}
@@ -1010,7 +1033,7 @@ has returned.
     agnostic EAPIs) a file which exists, then \t{sed} is run with the current expression on that
     file. Otherwise, the current expression is set to the text of the argument. The initial value
     of the expression is \t{s:\$\{ED\}::g} in offset-prefix aware EAPIs and \t{s:\$\{D\}::g} in
-    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-table}, this
+    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-1}, this
     command is banned as per section~\ref{sec:banned-commands}.
 
 \item[unpack] Unpacks one or more source archives, in order, into the current directory.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     268f575a25686b32ed09bb8379e28e44ee150660
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=268f575a

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 913935d..3e5e7bd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -510,6 +510,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d535e00..d27c079 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -318,6 +318,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -346,20 +349,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     184ff86ecd8b6c5d5fc68cd5f05880c6bf33611d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=184ff86e

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ef28e65..4d6fa4e 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -228,6 +231,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     2a79a52bc1c7fa119266de93cd0b5e8ea77e1838
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2a79a52b

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index fac25f4..8958c5b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     396ce87c40274062ab8fc15819dbd78c8d40be22
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=396ce87c

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     a55628adbf3e86c66ea5441cee723b70fddc5fa3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a55628ad

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     e37fd85b6c2879bc176354f08b29a7dabe4ffb7a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e37fd85b

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..5d7170d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -494,6 +494,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ab3c8359102177726b6b72ecb508b45d2b760763
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 22:45:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 22:45:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ab3c8359

Clarify that updates files are processed in no particular order

Bug: https://bugs.gentoo.org/296713#c14
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 tree-layout.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..5f6934b 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -221,6 +221,9 @@ The second form instructs the package manager that any currently installed packa
 package dependency specification \t{spec} whose \t{SLOT} is set to \t{slot1} should have it updated
 to \t{slot2}.
 
+It is unspecified in what order the files in the \t{updates} directory are processed. Lines within
+each file are processed in ascending order.
+
 Any name that has appeared as the origin of a move must not be reused in the future. Any slot
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     752934326752edf4e204fd45d34c7fcb4201cd76
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 15:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=75293432

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..3ed4fe7 100644
--- a/commands.tex
+++ b/commands.tex
@@ -32,7 +32,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -43,7 +43,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..f25c238 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..5f17ff8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..108b8bc 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 64951ab..8cb776c 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -263,7 +263,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -272,7 +272,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -307,7 +307,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -316,7 +316,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..f401472 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -30,7 +30,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -42,7 +42,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -53,7 +53,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -71,7 +71,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -109,7 +109,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -122,7 +122,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -158,7 +158,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -168,7 +168,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -190,7 +190,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -203,7 +203,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -267,7 +267,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -277,7 +277,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -326,7 +326,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -342,7 +342,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -618,7 +618,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -627,12 +627,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -641,12 +641,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -655,12 +655,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -671,12 +671,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -685,12 +685,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -699,7 +699,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -809,7 +809,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -820,7 +820,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -864,7 +864,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -873,12 +873,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -887,12 +887,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -903,7 +903,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -983,7 +983,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -994,7 +994,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1068,7 +1068,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1078,12 +1078,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1095,7 +1095,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1162,7 +1162,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1174,7 +1174,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index 5f6934b..ef28e65 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -125,7 +125,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -134,7 +134,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     8d1a1d7c5f261f2c391b4a836251a537ba32f71f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 19:43:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 19:43:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8d1a1d7c

ebuild-env-invariancy.tex: Prevent an ugly page break

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-env-invariancy.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ebuild-env-invariancy.tex b/ebuild-env-invariancy.tex
index cc95a2b..4cd20cd 100644
--- a/ebuild-env-invariancy.tex
+++ b/ebuild-env-invariancy.tex
@@ -3,11 +3,13 @@
 For the sake of this section:
 
 \begin{compactitem}
+\begin{samepage}
 \item Variancy is any package manager action that modifies either
     \t{ROOT} or \t{/} in any way that isn't merely a simple addition of
     something that doesn't alter other packages. This includes any
     non-default call to any \t{pkg} phase function except \t{pkg_setup},
     a merge of any package or an unmerge of any package.
+\end{samepage}
 \item As an exception, changes to \t{DISTDIR} do not count as variancy.
 \item The \t{pkg_setup} function may be assumed not to introduce variancy.
     Thus, ebuilds must not perform variant actions in this phase.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     4ebd8cb10bcf73fba3bbf06e9aa8370fcf692538
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 19:34:16 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 19:34:16 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4ebd8cb1

pms.cls: Require version 1 of parskip.sty

Newer versions change the spacing after headings which causes
different page breaks.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.cls b/pms.cls
index ee0d60f..1a09407 100644
--- a/pms.cls
+++ b/pms.cls
@@ -27,6 +27,7 @@
 \PassOptionsToPackage{local}{gitinfo2}
 \PassOptionsToPackage{chapter}{algorithm}
 % algorithmic and algorithm to be loaded last to avoid failures
+\RequirePackage{parskip}[=v1] % Space between paragraphs instead of indentation
 \RequirePackage{%
     fontenc,    % Load extended font sets
     isodate,    % Date formatting and conversions
@@ -39,7 +40,6 @@
     lscape,     % Rotating pages
     marginnote, % Typeset a paragraph in the page margin
     paralist,   % Additional list environments
-    parskip,    % Space between paragraphs instead of indentation
     underscore, % Allow simple _ instead of \_
     chngcntr,   % Redefinition of counters
     tocbibind,  % Add bibliography to table of contents


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-19 15:38 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-19 15:38 UTC (permalink / raw
  To: gentoo-commits

commit:     88b4d7964342166c6cee231d7f0c829af2d8a9fb
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed May 19 14:54:00 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed May 19 14:54:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=88b4d796

Recognise "test_network" as token in PROPERTIES

This was originally proposed as a RESTRICT token for EAPI 8, but
implementing it retroactively in PROPERTIES (where it is optional
from the spec's point of view) appears to be more feasible.

Bug: https://bugs.gentoo.org/553696
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..64951ab 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -225,6 +225,8 @@ The following tokens are permitted inside \t{PROPERTIES}:
 \item[interactive] The package may require interaction with the user via the tty.
 \item[live] The package uses ``live'' source code that may vary each time that the package is
     installed.
+\item[test_network] The package manager may run tests that require an internet connection, even if
+    the ebuild has \t{RESTRICT=test}.
 \end{description}
 
 Package managers may recognise other tokens. Ebuilds may not rely upon any token being supported.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     5afd45243312e211d0f9bbda00b8ed85ce8f8434
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5afd4524

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 54ea342..4e2c0fd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -473,8 +473,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -491,8 +492,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -507,9 +509,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -542,8 +545,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -794,12 +798,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
@@ -807,6 +815,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     78ea7370abb3202679a30ce229128bbf26cf178f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=78ea7370

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..5d7170d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -494,6 +494,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     7a59ddc0571d861292574e24e6528d3d34f8263a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7a59ddc0

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 913935d..3e5e7bd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -510,6 +510,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d535e00..d27c079 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -318,6 +318,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -346,20 +349,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     a6ad6528bd2fc837f9770cd9ef9606def42934a5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a6ad6528

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5d7170d..5319bf0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -495,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     b83e5cc464a10838bac580e0b55c046ca98fc164
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b83e5cc4

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 48 ++++++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b8ba853..46507b7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -319,18 +319,18 @@ commands once the current phase function has returned.
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
     \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-docdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-htmldir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}/html}, if the EAPI is
-        listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed
+        listed in table~\ref{tab:econf-options-1} as using it. This option will only be passed
         if the string \t{-{}-htmldir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-with-sysroot} must be \t{\$\{ESYSROOT:-/\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-with-sysroot} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-build} must be the value of the \t{CBUILD} environment variable. This option will
         only be passed if \t{CBUILD} is non-empty.
@@ -339,36 +339,48 @@ commands once the current phase function has returned.
         only be passed if \t{CTARGET} is non-empty.
     \item \t{-{}-libdir} must be set according to algorithm~\ref{alg:econf-libdir}.
     \item \t{-{}-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
+        table~\ref{tab:econf-options-2} 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 \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-silent-rules}
         occurs in the output of \t{configure -{}-help}.
-    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-static} occurs
         in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
-        \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \label{tab:econf-options-1}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \bottomrule
+        \end{tabular}
+        % Don't start a new table environment, or the two parts may end up on different pages
+        \vspace{\floatsep}
+        \caption{Extra \t{econf} arguments for EAPIs (continued)}
+        \label{tab:econf-options-2}
+        \begin{tabular}{llll}
+          \toprule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  \\
+          4                 & Yes & No  & No  \\
+          5, 6, 7           & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     a064607fe896bf69fbaf05a7702c8f2717849410
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a064607f

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 3e5e7bd..1503053 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -511,6 +512,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d27c079..b8ba853 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -344,27 +344,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     859659f02761fd59c93bd8206a72a12e749ecbec
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=859659f0

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 37 ++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5319bf0..913935d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -233,6 +233,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -499,6 +508,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..d535e00 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -55,7 +55,7 @@ called, the package manager must abort the build process indicating an error.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
-    \label{tab:banned-commands-table}
+    \label{tab:banned-commands-1}
     \begin{tabular}{lllllll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
@@ -74,6 +74,23 @@ called, the package manager must abort the build process indicating an error.
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
+    % Don't start a new table environment, or the two parts may end up on different pages
+    \vspace{\floatsep}
+    \caption{Banned commands (continued)}
+    \label{tab:banned-commands-2}
+    \begin{tabular}{llll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{3}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  \\
+      8                       & Yes & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
 \end{centertable}
 
 \subsection{Sandbox commands}
@@ -387,7 +404,7 @@ commands once the current phase function has returned.
 \item[einstall] A shortcut for the command given in listing~\ref{lst:einstall}. Any arguments given
     to \t{einstall} are passed verbatim to \t{emake}, as shown. Failure behaviour is EAPI dependent
     as per section~\ref{sec:failure-behaviour}.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
     The variable \t{ED} is defined as in table~\ref{tab:defined-vars} and depends on the use of an
@@ -465,7 +482,7 @@ the current phase function has returned.
 \item[dohard] Takes two parameters. Creates a hardlink from the second to the first. Both paths are
     relative to the staging directory including the offset-prefix \t{ED} in offset-prefix aware
     EAPIs, or just the staging directory \t{D} in offset-prefix agnostic EAPIs. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/},
@@ -493,7 +510,7 @@ the current phase function has returned.
         offset-prefix.
     \end{compactdesc}
 
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
     Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
@@ -524,7 +541,7 @@ the current phase function has returned.
 
 \item[dolib] As for \t{dolib.a} except that the default install mode can be overriden with
     the \t{install} options set by the most recent \t{libopts} call. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \begin{algorithm}
@@ -732,7 +749,7 @@ function has returned.
 \item[exeopts] As \t{insopts}, for \t{doexe} et al.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
     per section~\ref{sec:banned-commands}.
 
 \end{description}
@@ -841,6 +858,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -915,7 +934,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}
@@ -1010,7 +1033,7 @@ has returned.
     agnostic EAPIs) a file which exists, then \t{sed} is run with the current expression on that
     file. Otherwise, the current expression is set to the text of the argument. The initial value
     of the expression is \t{s:\$\{ED\}::g} in offset-prefix aware EAPIs and \t{s:\$\{D\}::g} in
-    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-table}, this
+    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-1}, this
     command is banned as per section~\ref{sec:banned-commands}.
 
 \item[unpack] Unpacks one or more source archives, in order, into the current directory.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     49bf9d7d0e648eeb0bb5891e2c5805f0a7466c64
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=49bf9d7d

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 46507b7..54ea342 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -612,9 +612,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to
+    the apparent path of the directory containing the first parameter. The algorithm must return
+    a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -742,6 +760,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     5b70b4ccd99022bd2761e9e9215eaf91588a43f5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5b70b4cc

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4e2c0fd..a0a4f33 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -948,15 +948,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -991,15 +993,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     967d2c86b19f46e72dca579faf9480347d243854
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=967d2c86

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a0a4f33..bd12e1f 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1165,10 +1165,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1207,16 +1210,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     cff75f2b8b490773239e66bc5fbb9fc33efe6e8a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=cff75f2b

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     04830bfe47a62121f26a60638d9b6f103d12081e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=04830bfe

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     3c68082055316532eac8b1c7f73b0a2e164c84df
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3c680820

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     ffac3027b2a3323d19857ab4fd304ed2d1374b06
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ffac3027

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..3ed4fe7 100644
--- a/commands.tex
+++ b/commands.tex
@@ -32,7 +32,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -43,7 +43,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..f25c238 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..5f17ff8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..108b8bc 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..9941f3e 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -261,7 +261,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -270,7 +270,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -305,7 +305,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -314,7 +314,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..f401472 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -30,7 +30,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -42,7 +42,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -53,7 +53,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -71,7 +71,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -109,7 +109,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -122,7 +122,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -158,7 +158,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -168,7 +168,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -190,7 +190,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -203,7 +203,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -267,7 +267,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -277,7 +277,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -326,7 +326,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -342,7 +342,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -618,7 +618,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -627,12 +627,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -641,12 +641,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -655,12 +655,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -671,12 +671,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -685,12 +685,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -699,7 +699,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -809,7 +809,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -820,7 +820,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -864,7 +864,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -873,12 +873,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -887,12 +887,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -903,7 +903,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -983,7 +983,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -994,7 +994,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1068,7 +1068,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1078,12 +1078,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1095,7 +1095,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1162,7 +1162,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1174,7 +1174,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..ab8a02a 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -125,7 +125,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -134,7 +134,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     31c6a43d0d0e7c6774db20025034147507b87aed
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 21:05:48 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=31c6a43d

pms.cls: Require version 1 of parskip.sty

Newer versions change the spacing after headings which causes
different page breaks.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pms.cls b/pms.cls
index 1a09407..5f9a958 100644
--- a/pms.cls
+++ b/pms.cls
@@ -46,6 +46,7 @@
     float,      % More control over float environments
     gitinfo2    % Metadata from git
 }
+\RequirePackage{parskip}[=v1] % Space between paragraphs instead of indentation
 
 % tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
 \g@addto@macro\@documentclasshook{


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     183ba6721ebf4a24af9de4b88356a1b0a5f6120c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=183ba672

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ab8a02a..b42bd3f 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -225,6 +228,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     2ce8180b042710bc24efc71ac175075eb01c1896
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2ce8180b

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9941f3e..59c5b64 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     13d9a09dc120d40b1e2b503a845d382adbac5b70
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 05:43:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:43:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=13d9a09d

pms.cls: Require version 1 of parskip.sty

Newer versions change the spacing after headings which causes
different page breaks.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.cls b/pms.cls
index ee0d60f..1a09407 100644
--- a/pms.cls
+++ b/pms.cls
@@ -27,6 +27,7 @@
 \PassOptionsToPackage{local}{gitinfo2}
 \PassOptionsToPackage{chapter}{algorithm}
 % algorithmic and algorithm to be loaded last to avoid failures
+\RequirePackage{parskip}[=v1] % Space between paragraphs instead of indentation
 \RequirePackage{%
     fontenc,    % Load extended font sets
     isodate,    % Date formatting and conversions
@@ -39,7 +40,6 @@
     lscape,     % Rotating pages
     marginnote, % Typeset a paragraph in the page margin
     paralist,   % Additional list environments
-    parskip,    % Space between paragraphs instead of indentation
     underscore, % Allow simple _ instead of \_
     chngcntr,   % Redefinition of counters
     tocbibind,  % Add bibliography to table of contents


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-18  5:44 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-18  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     8c883c34c1c91843e814edca72555723c1f41bba
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue May 18 05:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8c883c34

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 59c5b64..4f74e2b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:30 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     352176051ca1aed110bfdd3f87098c7c7fe5cf3f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:29:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=35217605

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a0a4f33..bd12e1f 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1165,10 +1165,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1207,16 +1210,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:30 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     9bff7937738fbd9fa47255a1f429ebb16cf6ab95
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:29:06 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9bff7937

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 46507b7..54ea342 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -612,9 +612,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, expands the first parameter relative to
+    the apparent path of the directory containing the first parameter. The algorithm must return
+    a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -742,6 +760,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:30 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     402c5b58362e5a4923df2667bb0605f23f35249d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:29:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=402c5b58

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 54ea342..4e2c0fd 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -473,8 +473,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -491,8 +492,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -507,9 +509,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -542,8 +545,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -794,12 +798,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
@@ -807,6 +815,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:30 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     ecc5477996d2cb2addfa4ea76aabced5146ec82a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:29:12 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ecc54779

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4e2c0fd..a0a4f33 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -948,15 +948,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -991,15 +993,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     fa8154640004e371dd7fe671f51b053a5089c0bf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=fa815464

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c296b60..9ab32be 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1165,10 +1165,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1207,16 +1210,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     135d9d53293e453b50171afbfb0ab9efcfa3c9fd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=135d9d53

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 48 ++++++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b8ba853..46507b7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -319,18 +319,18 @@ commands once the current phase function has returned.
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
     \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-docdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-htmldir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}/html}, if the EAPI is
-        listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed
+        listed in table~\ref{tab:econf-options-1} as using it. This option will only be passed
         if the string \t{-{}-htmldir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-with-sysroot} must be \t{\$\{ESYSROOT:-/\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-with-sysroot} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-build} must be the value of the \t{CBUILD} environment variable. This option will
         only be passed if \t{CBUILD} is non-empty.
@@ -339,36 +339,48 @@ commands once the current phase function has returned.
         only be passed if \t{CTARGET} is non-empty.
     \item \t{-{}-libdir} must be set according to algorithm~\ref{alg:econf-libdir}.
     \item \t{-{}-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
+        table~\ref{tab:econf-options-2} 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 \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-silent-rules}
         occurs in the output of \t{configure -{}-help}.
-    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-static} occurs
         in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
-        \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \label{tab:econf-options-1}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \bottomrule
+        \end{tabular}
+        % Don't start a new table environment, or the two parts may end up on different pages
+        \vspace{\floatsep}
+        \caption{Extra \t{econf} arguments for EAPIs (continued)}
+        \label{tab:econf-options-2}
+        \begin{tabular}{llll}
+          \toprule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  \\
+          4                 & Yes & No  & No  \\
+          5, 6, 7           & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     243c9589272a0348b6ade7f1bcdf2e2837491e11
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=243c9589

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 37 ++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5319bf0..913935d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -233,6 +233,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -499,6 +508,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..d535e00 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -55,7 +55,7 @@ called, the package manager must abort the build process indicating an error.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
-    \label{tab:banned-commands-table}
+    \label{tab:banned-commands-1}
     \begin{tabular}{lllllll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
@@ -74,6 +74,23 @@ called, the package manager must abort the build process indicating an error.
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
+    % Don't start a new table environment, or the two parts may end up on different pages
+    \vspace{\floatsep}
+    \caption{Banned commands (continued)}
+    \label{tab:banned-commands-2}
+    \begin{tabular}{llll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{3}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  \\
+      8                       & Yes & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
 \end{centertable}
 
 \subsection{Sandbox commands}
@@ -387,7 +404,7 @@ commands once the current phase function has returned.
 \item[einstall] A shortcut for the command given in listing~\ref{lst:einstall}. Any arguments given
     to \t{einstall} are passed verbatim to \t{emake}, as shown. Failure behaviour is EAPI dependent
     as per section~\ref{sec:failure-behaviour}.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
     The variable \t{ED} is defined as in table~\ref{tab:defined-vars} and depends on the use of an
@@ -465,7 +482,7 @@ the current phase function has returned.
 \item[dohard] Takes two parameters. Creates a hardlink from the second to the first. Both paths are
     relative to the staging directory including the offset-prefix \t{ED} in offset-prefix aware
     EAPIs, or just the staging directory \t{D} in offset-prefix agnostic EAPIs. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/},
@@ -493,7 +510,7 @@ the current phase function has returned.
         offset-prefix.
     \end{compactdesc}
 
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
     Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
@@ -524,7 +541,7 @@ the current phase function has returned.
 
 \item[dolib] As for \t{dolib.a} except that the default install mode can be overriden with
     the \t{install} options set by the most recent \t{libopts} call. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \begin{algorithm}
@@ -732,7 +749,7 @@ function has returned.
 \item[exeopts] As \t{insopts}, for \t{doexe} et al.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
     per section~\ref{sec:banned-commands}.
 
 \end{description}
@@ -841,6 +858,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -915,7 +934,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}
@@ -1010,7 +1033,7 @@ has returned.
     agnostic EAPIs) a file which exists, then \t{sed} is run with the current expression on that
     file. Otherwise, the current expression is set to the text of the argument. The initial value
     of the expression is \t{s:\$\{ED\}::g} in offset-prefix aware EAPIs and \t{s:\$\{D\}::g} in
-    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-table}, this
+    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-1}, this
     command is banned as per section~\ref{sec:banned-commands}.
 
 \item[unpack] Unpacks one or more source archives, in order, into the current directory.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     0358826c4f062e481d823e913de59f49241afc44
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0358826c

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 913935d..3e5e7bd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -510,6 +510,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d535e00..d27c079 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -318,6 +318,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -346,20 +349,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     b1fece0a560b66fb17450a5f105d356845625bdf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b1fece0a

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 59c5b64..4f74e2b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     2823d57b7f535b1ab8259beb422cd3968e0b0dc2
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2823d57b

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 46507b7..e3fa741 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -612,9 +612,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} When called with option \t{-r} in EAPIs listed in
+    table~\ref{tab:dosym-r} as supporting creation of relative paths, expands the first parameter
+    relative to the apparent path of the directory containing the first parameter. The algorithm
+    must return a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -742,6 +760,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     8c8da205769e2cdaacdb7f80162a03d34a64bb99
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=8c8da205

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9941f3e..59c5b64 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     06ebb1e10f4c93b4be4ee76442f63c88b328169c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=06ebb1e1

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..5d7170d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -494,6 +494,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     0bd44e8be9f449a60df8351e2a47cb7ce65dbdbd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0bd44e8b

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5d7170d..5319bf0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -495,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     2ef30240ff56b79e9922ae431049ada84e2db66f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2ef30240

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     9e3818935be184086f091278da14eb6ead26cbd3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9e381893

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f987c16..c296b60 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -948,15 +948,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -991,15 +993,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     bb6931910a9e3c919a721be254d0b323ecd8a9c6
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=bb693191

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index e3fa741..f987c16 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -473,8 +473,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -491,8 +492,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -507,9 +509,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -542,8 +545,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -794,12 +798,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
@@ -807,6 +815,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     ba0f7e3f129fed0c676688911ea0a432cc879081
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ba0f7e3f

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 3e5e7bd..1503053 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -511,6 +512,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d27c079..b8ba853 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -344,27 +344,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     594d043e1d3b85e2f77d44b512d5a92341d375da
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=594d043e

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     b1ff4da59d21de1f388eb22cf79593e7bde70cb1
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b1ff4da5

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ab8a02a..b42bd3f 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -225,6 +228,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     722cf555ca784329b070c8fdca8fa1eeb3c5bed3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=722cf555

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     10a211c8bae5e7bc773f2759789b34087420e500
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 21:05:48 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:18:53 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=10a211c8

pms.cls: Require version 1 of parskip.sty

Newer versions change the spacing after headings which causes
different page breaks.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.cls b/pms.cls
index ee0d60f..98e9cbf 100644
--- a/pms.cls
+++ b/pms.cls
@@ -39,13 +39,13 @@
     lscape,     % Rotating pages
     marginnote, % Typeset a paragraph in the page margin
     paralist,   % Additional list environments
-    parskip,    % Space between paragraphs instead of indentation
     underscore, % Allow simple _ instead of \_
     chngcntr,   % Redefinition of counters
     tocbibind,  % Add bibliography to table of contents
     float,      % More control over float environments
     gitinfo2    % Metadata from git
 }
+\RequirePackage{parskip}[=v1] % Space between paragraphs instead of indentation
 
 % tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
 \g@addto@macro\@documentclasshook{


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     952571e54b118595c0253bfcd883a42987da71f4
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=952571e5

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 21:23 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     275d8ce27ebaf381d4486614b211cd6c1c3a445d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 21:21:00 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=275d8ce2

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..3ed4fe7 100644
--- a/commands.tex
+++ b/commands.tex
@@ -32,7 +32,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -43,7 +43,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..f25c238 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..5f17ff8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..108b8bc 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..9941f3e 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -261,7 +261,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -270,7 +270,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -305,7 +305,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -314,7 +314,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..f401472 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -30,7 +30,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -42,7 +42,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -53,7 +53,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -71,7 +71,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -109,7 +109,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -122,7 +122,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -158,7 +158,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -168,7 +168,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -190,7 +190,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -203,7 +203,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -267,7 +267,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -277,7 +277,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -326,7 +326,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -342,7 +342,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -618,7 +618,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -627,12 +627,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -641,12 +641,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -655,12 +655,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -671,12 +671,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -685,12 +685,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -699,7 +699,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -809,7 +809,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -820,7 +820,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -864,7 +864,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -873,12 +873,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -887,12 +887,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -903,7 +903,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -983,7 +983,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -994,7 +994,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1068,7 +1068,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1078,12 +1078,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1095,7 +1095,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1162,7 +1162,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1174,7 +1174,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..ab8a02a 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -125,7 +125,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -134,7 +134,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     ad478ba1f274e9e7da97bbc11c07f68982bb4fc9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ad478ba1

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 17 +++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 913935d..3e5e7bd 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -510,6 +510,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d535e00..d27c079 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -318,6 +318,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -346,20 +349,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     944ff78d17cac5eb45127937afe766c2da1a8c82
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 19:30:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=944ff78d

Split the econf options table because it has become too wide

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pkg-mgr-commands.tex | 48 ++++++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b8ba853..46507b7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -319,18 +319,18 @@ commands once the current phase function has returned.
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
     \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-docdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-htmldir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}/html}, if the EAPI is
-        listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed
+        listed in table~\ref{tab:econf-options-1} as using it. This option will only be passed
         if the string \t{-{}-htmldir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-with-sysroot} must be \t{\$\{ESYSROOT:-/\}}, if the EAPI is listed in
-        table~\ref{tab:econf-options-table} as using it. This option will only be passed if the
+        table~\ref{tab:econf-options-1} as using it. This option will only be passed if the
         string \t{-{}-with-sysroot} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-build} must be the value of the \t{CBUILD} environment variable. This option will
         only be passed if \t{CBUILD} is non-empty.
@@ -339,36 +339,48 @@ commands once the current phase function has returned.
         only be passed if \t{CTARGET} is non-empty.
     \item \t{-{}-libdir} must be set according to algorithm~\ref{alg:econf-libdir}.
     \item \t{-{}-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
+        table~\ref{tab:econf-options-2} 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 \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-silent-rules}
         occurs in the output of \t{configure -{}-help}.
-    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table}
+    \item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-2}
         as using it. This option will only be passed if the string \t{-{}-disable-static} occurs
         in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
-        \label{tab:econf-options-table}
-        \begin{tabular}{llllllll}
+        \label{tab:econf-options-1}
+        \begin{tabular}{lllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
-          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3, 4, 5  & No  & No  & No  & No  \\
+          6                 & No  & Yes & Yes & No  \\
+          7                 & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes \\
+          \bottomrule
+        \end{tabular}
+        % Don't start a new table environment, or the two parts may end up on different pages
+        \vspace{\floatsep}
+        \caption{Extra \t{econf} arguments for EAPIs (continued)}
+        \label{tab:econf-options-2}
+        \begin{tabular}{llll}
+          \toprule
+          \multicolumn{1}{c}{\textbf{EAPI}} &
+          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
+          \midrule
+          0, 1, 2, 3        & No  & No  & No  \\
+          4                 & Yes & No  & No  \\
+          5, 6, 7           & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     fe6071f86aad7997d5d5310992f835aa9840c15d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=fe6071f8

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5abc5e4..0f9986d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -314,6 +314,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -525,6 +528,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index fd9cfe3..21c4b55 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -948,15 +948,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -991,15 +993,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     2cd1293ca3113fca4323252112e436b3bff8c7f0
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:26 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2cd1293c

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 37 ++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5319bf0..913935d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -233,6 +233,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -499,6 +508,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..d535e00 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -55,7 +55,7 @@ called, the package manager must abort the build process indicating an error.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
-    \label{tab:banned-commands-table}
+    \label{tab:banned-commands-1}
     \begin{tabular}{lllllll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
@@ -74,6 +74,23 @@ called, the package manager must abort the build process indicating an error.
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
+    % Don't start a new table environment, or the two parts may end up on different pages
+    \vspace{\floatsep}
+    \caption{Banned commands (continued)}
+    \label{tab:banned-commands-2}
+    \begin{tabular}{llll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{3}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  \\
+      8                       & Yes & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
 \end{centertable}
 
 \subsection{Sandbox commands}
@@ -387,7 +404,7 @@ commands once the current phase function has returned.
 \item[einstall] A shortcut for the command given in listing~\ref{lst:einstall}. Any arguments given
     to \t{einstall} are passed verbatim to \t{emake}, as shown. Failure behaviour is EAPI dependent
     as per section~\ref{sec:failure-behaviour}.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
     The variable \t{ED} is defined as in table~\ref{tab:defined-vars} and depends on the use of an
@@ -465,7 +482,7 @@ the current phase function has returned.
 \item[dohard] Takes two parameters. Creates a hardlink from the second to the first. Both paths are
     relative to the staging directory including the offset-prefix \t{ED} in offset-prefix aware
     EAPIs, or just the staging directory \t{D} in offset-prefix agnostic EAPIs. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/},
@@ -493,7 +510,7 @@ the current phase function has returned.
         offset-prefix.
     \end{compactdesc}
 
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
     Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
@@ -524,7 +541,7 @@ the current phase function has returned.
 
 \item[dolib] As for \t{dolib.a} except that the default install mode can be overriden with
     the \t{install} options set by the most recent \t{libopts} call. In EAPIs listed
-    in table~\ref{tab:banned-commands-table}, this command is banned as per
+    in table~\ref{tab:banned-commands-1}, this command is banned as per
     section~\ref{sec:banned-commands}.
 
 \begin{algorithm}
@@ -732,7 +749,7 @@ function has returned.
 \item[exeopts] As \t{insopts}, for \t{doexe} et al.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
-    In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
+    In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
     per section~\ref{sec:banned-commands}.
 
 \end{description}
@@ -841,6 +858,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -915,7 +934,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}
@@ -1010,7 +1033,7 @@ has returned.
     agnostic EAPIs) a file which exists, then \t{sed} is run with the current expression on that
     file. Otherwise, the current expression is set to the text of the argument. The initial value
     of the expression is \t{s:\$\{ED\}::g} in offset-prefix aware EAPIs and \t{s:\$\{D\}::g} in
-    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-table}, this
+    offset-prefix agnostic EAPIs. In EAPIs listed in table~\ref{tab:banned-commands-1}, this
     command is banned as per section~\ref{sec:banned-commands}.
 
 \item[unpack] Unpacks one or more source archives, in order, into the current directory.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     26f7a027a230c94e2f1726352ba4cab67a352488
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=26f7a027

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1cf3ce9..5abc5e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -296,6 +296,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +523,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 78dd7ff..fd9cfe3 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -473,8 +473,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -491,8 +492,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -507,9 +509,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -542,8 +545,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -794,12 +798,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-1}, this command is banned as
@@ -807,6 +815,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     2b568054c6952b4ac2d317894581e782e495016e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=2b568054

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f9986d..6e0c880 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -338,6 +338,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -529,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 21c4b55..4b14efa 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1165,10 +1165,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1207,16 +1210,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     c84a593bea9104b4431fe56462200a237c7fb03f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c84a593b

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1503053..1cf3ce9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -290,6 +290,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -513,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 46507b7..78dd7ff 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -612,9 +612,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} When called with option \t{-r} in EAPIs listed in
+    table~\ref{tab:dosym-r} as supporting creation of relative paths, expands the first parameter
+    relative to the apparent path of the directory containing the first parameter. The algorithm
+    must return a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -742,6 +760,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     67bb7dc9e3487a0ecf42d0f48bdd0d2799a5ff01
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 19:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=67bb7dc9

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 3e5e7bd..1503053 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, disable static,
+    datarootdir, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -511,6 +512,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d27c079..b8ba853 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -344,27 +344,31 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
           \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} &
           \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & No  & Yes & Yes & No  \\
-          7                 & Yes & Yes & No  & Yes & Yes & Yes \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & No  & No  & Yes & Yes & No  \\
+          7                 & Yes & Yes & No  & No  & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     485c3b2aa69f11392a3784cd48de4bd8d902eddf
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:36:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=485c3b2a

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b89ede0..a334881 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     4e89df952e3b4d9638a2ac9d45098e781c04ce35
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:38:48 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4e89df95

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5d7170d..5319bf0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -495,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     074b34e76fc47faad926ba2f7d4c39cf0b06566c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:35:52 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=074b34e7

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..b89ede0 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ab8a02a..b42bd3f 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -225,6 +228,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     d89bed79ad11f2f9f76febffc6b0d92835b3ae26
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:37:17 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d89bed79

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 22f99e2..f3af563 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 59c5b64..4f74e2b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     dc1f0df208406883862285bf0085f01bfb6ef400
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:37:13 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=dc1f0df2

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a334881..22f99e2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9941f3e..59c5b64 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 19:37 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     c2dd16df7e8718714bb21631ba93ad227bf25f25
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 18:38:20 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c2dd16df

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3af563..5d7170d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -494,6 +494,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:56 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:56 UTC (permalink / raw
  To: gentoo-commits

commit:     967f5d3bd7b319fb741c86b0321eb4a14e582212
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:56:07 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=967f5d3b

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index fe18a4c..7743ba6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot, datarootdir \\
+    disable dependency tracking, disable silent rules, disable static,
+    docdir, htmldir, with sysroot, datarootdir \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -537,6 +538,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c1cfc7d..768064d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -343,12 +343,15 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
@@ -356,14 +359,15 @@ commands once the current phase function has returned.
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{P{4em}}{\textbf{-{}-with-sysroot}} &
-          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} \\
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes & No  \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & Yes & Yes & No  & No  & No  \\
+          7                 & Yes & Yes & Yes & Yes & Yes & No  & No  \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:17 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     d9e9f96a391b7bd1bb5998dc78d8c21ede4a76f3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:17:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d9e9f96a

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index cc127a3..8084fe7 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -528,6 +531,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:17 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     ab88302e06e3530c039bb2c89d02ef1ee5432d29
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:17:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ab88302e

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index fe18a4c..8fbae05 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot, datarootdir \\
+    disable dependency tracking, disable silent rules, disable static,
+    docdir, htmldir, with sysroot, datarootdir \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -532,11 +533,12 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
-\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Less strict naminga rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c1cfc7d..768064d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -343,12 +343,15 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
@@ -356,14 +359,15 @@ commands once the current phase function has returned.
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{P{4em}}{\textbf{-{}-with-sysroot}} &
-          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} \\
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes & No  \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & Yes & Yes & No  & No  & No  \\
+          7                 & Yes & Yes & Yes & Yes & Yes & No  & No  \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:17 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     05193408f89d8e1796ecf7bbed208c9bbfa5bebd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:17:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=05193408

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f16104..fe18a4c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -536,6 +536,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:17 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     7b30f5148dc387a339051b98a4811f64f64da965
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:17:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7b30f514

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8084fe7..0f16104 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -313,6 +313,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -532,6 +535,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 8d5c903..c1cfc7d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -931,15 +931,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -974,15 +976,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:17 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     4ed142e4868db840b9046ba99ac413b7cca1e58f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:17:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=4ed142e4

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b0d3707..cc127a3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -286,6 +286,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -524,6 +527,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 171a341..8d5c903 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} When called with option \t{-r} in EAPIs listed in
+    table~\ref{tab:dosym-r} as supporting creation of relative paths, expands the first parameter
+    relative to the apparent path of the directory containing the first parameter. The algorithm
+    must return a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +747,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     6c13facc3e8ce07b0694ed434ee77da70d341ef5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 15:45:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:03:46 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6c13facc

EAPI 8: econf adds --disable-static

Bug: https://bugs.gentoo.org/744871
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index fe18a4c..8fbae05 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -269,7 +269,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot, datarootdir \\
+    disable dependency tracking, disable silent rules, disable static,
+    docdir, htmldir, with sysroot, datarootdir \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -532,11 +533,12 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
-\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item Less strict naminga rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
 \item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
+\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c1cfc7d..768064d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -343,12 +343,15 @@ commands once the current phase function has returned.
     \item \t{-{}-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}.
+    \item \t{-{}-disable-static}, 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-static} occurs
+        in the output of \t{configure -{}-help}.
     \end{itemize}
 
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{lllllll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
@@ -356,14 +359,15 @@ commands once the current phase function has returned.
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
           \multicolumn{1}{P{4em}}{\textbf{-{}-with-sysroot}} &
-          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} \\
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} &
+          \multicolumn{1}{c}{\textbf{-{}-disable-static}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes & No  \\
-          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  & No  \\
+          6                 & Yes & Yes & Yes & Yes & No  & No  & No  \\
+          7                 & Yes & Yes & Yes & Yes & Yes & No  & No  \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     5e10676a408f2f8c32d75ea74a5ed86959f7fd3e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:25 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=5e10676a

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b245464..9b7b709 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -286,6 +286,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -512,6 +518,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item Bash version is 5.0, \featureref{bash-version}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 78acbd5..171a341 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -456,8 +456,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -474,8 +475,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -490,9 +492,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -525,8 +528,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -745,12 +749,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -758,6 +766,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     97b6b7ccd4f15c706a8978a6f2e23056eeb3a305
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:27 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=97b6b7cc

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 9b7b709..b0d3707 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -520,6 +523,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 5.0, \featureref{bash-version}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ab8a02a..b42bd3f 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -225,6 +228,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     ecd4325ca3929f2ff516783eef76bb33b38802c1
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:07 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ecd4325c

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4c35b07..b245464 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -54,7 +54,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -511,6 +511,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item Bash version is 5.0, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     f6e58b818f08f3ca38c5d9c6f4cecb612491cae8
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:03:46 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=f6e58b81

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f16104..fe18a4c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -536,6 +536,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     7acf481bb9839e7479eab235116a0301416575bc
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:51:28 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:27 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7acf481b

Clarify that package moves are processed in no particular order

Bug: https://bugs.gentoo.org/296713#c14
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 tree-layout.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tree-layout.tex b/tree-layout.tex
index b42bd3f..4fceb87 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -224,6 +224,9 @@ The second form instructs the package manager that any currently installed packa
 package dependency specification \t{spec} whose \t{SLOT} is set to \t{slot1} should have it updated
 to \t{slot2}.
 
+It is unspecified in what order the files in the \t{updates} directory or the lines in any given
+file are processed.
+
 Any name that has appeared as the origin of a move must not be reused in the future. Any slot
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     e5fbb96c6e955870c61a950c1c88960a8fd18d64
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 16:03:41 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e5fbb96c

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8084fe7..0f16104 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -313,6 +313,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -532,6 +535,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 8d5c903..c1cfc7d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -931,15 +931,17 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
-    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it,
+    (\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it,
     an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs
     \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and
     \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs
@@ -974,15 +976,18 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
-    \label{tab:use-with-third-arg}
-    \begin{tabular}{ll}
+\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
+    \label{tab:use-list-args}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
+      \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} &
+      \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third
+        argument?}} \\
       \midrule
-      0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      0, 1, 2, 3        & No  & No  \\
+      4, 5, 6, 7        & No  & Yes \\
+      8                 & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     a7575df63cb54fac8af5abc73e836c9762773602
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:27 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a7575df6

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b0d3707..cc127a3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -286,6 +286,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -524,6 +527,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 171a341..8d5c903 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} When called with option \t{-r} in EAPIs listed in
+    table~\ref{tab:dosym-r} as supporting creation of relative paths, expands the first parameter
+    relative to the apparent path of the directory containing the first parameter. The algorithm
+    must return a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +747,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-17 16:16 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-17 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     e87e3aa90c1d9b78ee4163c6d922791e2c41ab41
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:54:27 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e87e3aa9

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index cc127a3..8084fe7 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -528,6 +531,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     b4e5eade6a3f8c483f10ab48b0a0fc99e89cc797
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:05:17 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:19:50 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b4e5eade

EAPI 8: useq, hasv and hasq are banned

Bug: https://bugs.gentoo.org/199722
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 11 +++++++++++
 pkg-mgr-commands.tex | 22 ++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index da6f552..4c35b07 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -227,6 +227,15 @@ Most utilities die & \compactfeatureref{die-on-failure} &
 \t{libopts} & \compactfeatureref{banned-commands} &
     Yes & Yes & Yes & Banned & Banned \\
 
+\t{useq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasv} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
+\t{hasq} & \compactfeatureref{banned-commands} &
+    Yes & Yes & Yes & Yes & Banned \\
+
 Query command options & \compactfeatureref{pm-query-options} &
     None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
@@ -500,6 +509,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{IDEPEND}, \featureref{idepend}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
+\item \t{useq} banned, \featureref{banned-commands}.
+\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0b722a7..78acbd5 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -74,6 +74,22 @@ called, the package manager must abort the build process indicating an error.
       7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
+    \vspace{\floatsep}
+    \caption{Banned commands (continued)}
+    \label{tab:banned-commands-table-2}
+    \begin{tabular}{llll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{3}{c}{\textbf{Command banned?}} \\
+      \multicolumn{1}{c}{} &
+      \multicolumn{1}{c}{\textbf{\t{useq}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasv}}} &
+      \multicolumn{1}{c}{\textbf{\t{hasq}}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  \\
+      8                       & Yes & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
 \end{centertable}
 
 \subsection{Sandbox commands}
@@ -846,6 +862,8 @@ table~\ref{tab:use-list-strictness}.
 \item[usev] The same as \t{use}, but also prints the flag name if the condition
     is met.
 \item[useq] Deprecated synonym for \t{use}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first
     argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting
     to the same as the first argument if not provided, and the third is a string value
@@ -920,7 +938,11 @@ These functions check whitespace-separated lists for a particular value.
 \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent
     arguments, false otherwise. Guaranteed quiet.
 \item[hasv] The same as \t{has}, but also prints the first argument if found.
+    In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \item[hasq] Deprecated synonym for \t{has}.
+    In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
+    section~\ref{sec:banned-commands}.
 \end{description}
 
 \subsection{Version manipulation and comparison commands}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     6daab4232ec91f64cb4f5c9181462bc498998bda
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:15:04 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 16:24:10 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=6daab423

EAPI 8: insopts and exeopts affect only doins and doexe

Bug: https://bugs.gentoo.org/657580
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  8 +++++++
 pkg-mgr-commands.tex | 64 ++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a392e97..4bc06e1 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -286,6 +286,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
+\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
+    Yes & Yes & Yes & Yes & No \\
+
 Controllable compression & \compactfeatureref{docompress} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -512,6 +518,8 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item Bash version is 4.2, \featureref{bash-version}.
+\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
+\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 78acbd5..171a341 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -456,8 +456,9 @@ the current phase function has returned.
     \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the
     \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI
@@ -474,8 +475,9 @@ the current phase function has returned.
     section~\ref{sec:failure-behaviour}.
 
 \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode
-    \t{0644}, or with the \t{install} options set by the most recent \t{insopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto}
     call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by
@@ -490,9 +492,10 @@ the current phase function has returned.
     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}, or with the \t{install} options set by the most recent
-    \t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending
-    into any directories given.
+    by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands}
+    as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent
+    \t{insopts} call override the default. If the first argument is \t{-r}, then operates
+    recursively, descending into any directories given.
     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}.
 
@@ -525,8 +528,9 @@ the current phase function has returned.
     \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode
-    \t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call.
-    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+    \t{0755}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts}
+    in \t{doinitd}, the \t{install} options set by the most recent \t{exeopts} call override
+    the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[doins] \featurelabel{doins} Takes one or more files as arguments and installs them into
     \t{INSDESTTREE}, by default with file mode \t{0644}, or with the \t{install} options set by
@@ -745,12 +749,16 @@ function has returned.
 
 \item[docinto] As \t{into}, for install subdirectory of \t{dodoc} et al.
 
-\item[insopts] Takes one or more arguments, and sets the options passed by \t{doins} et al.\
-    to the \t{install} command to them. Behaviour upon encountering empty arguments is undefined.
+\item[insopts] \featurelabel{insopts} Takes one or more arguments, and sets the options passed by
+    \t{doins} et al.\ to the \t{install} command to them. Behaviour upon encountering empty
+    arguments is undefined. Depending on EAPI, affects only those commands that are specified
+    by table~\ref{tab:insopts-commands} as respecting \t{insopts}.
 
 \item[diropts] As \t{insopts}, for \t{dodir} et al.
 
-\item[exeopts] As \t{insopts}, for \t{doexe} et al.
+\item[exeopts] \featurelabel{exeopts} As \t{insopts}, for \t{doexe} et al. Depending on EAPI,
+    affects only those commands that are specified by table~\ref{tab:exeopts-commands}
+    as respecting \t{exeopts}.
 
 \item[libopts] As \t{insopts}, for \t{dolib} et al.
     In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as
@@ -758,6 +766,38 @@ function has returned.
 
 \end{description}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{insopts} for EAPIs}
+    \label{tab:insopts-commands}
+    \begin{tabular}{lllll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doins}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doconfd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doenvd}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
+      8                       & Yes & No  & No  & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
+    \label{tab:exeopts-commands}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{doexe}?}} &
+      \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
+      8                       & Yes & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands controlling manipulation of files in the staging area}
 These commands are used to control optional manipulations that the package manager may perform on
 files in the staging directory \t{ED}, like compressing files or stripping symbols from object


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     fd3c7bfed5bd1502a021325b7e603124a27d6135
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:59:37 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 18:59:37 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=fd3c7bfe

EAPI 8: usev has an optional second argument

Bug: https://bugs.gentoo.org/744868
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

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

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0579fa3..559a686 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -313,6 +313,9 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{dostrip} & \compactfeatureref{dostrip} &
     No & No & No & Yes & Yes \\
 
+\t{usev} second arg & \compactfeatureref{usev} &
+    No & No & No & No & Yes \\
+
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
     * & Yes & Yes & Yes & Yes \\
 
@@ -532,6 +535,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
+\item \t{usev} supports an optional second argument, \featureref{usev}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 8d5c903..41b3b47 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -931,8 +931,10 @@ table~\ref{tab:use-list-strictness}.
 \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false
     otherwise.  If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and
     false if it is enabled. It is guaranteed that this command is quiet.
-\item[usev] The same as \t{use}, but also prints the flag name if the condition
-    is met.
+\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition
+    is met. In EAPIs listed in table~\ref{tab:usev-second-arg} as supporting an optional second
+    argument for \t{usev}, prints the second argument instead, if it is specified and if the
+    condition is met.
 \item[useq] Deprecated synonym for \t{use}.
     In EAPIs listed in table~\ref{tab:banned-commands-table-2}, this command is banned as per
     section~\ref{sec:banned-commands}.
@@ -973,6 +975,20 @@ table~\ref{tab:use-list-strictness}.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting an optional second argument in \t{usev}}
+    \label{tab:usev-second-arg}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Supports optional second argument?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     66ffb7c36da3edf5df4fc720fca08f6d70f5d77e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:51:28 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 16:53:55 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=66ffb7c3

Clarify that package moves are processed in no particular order

Bug: https://bugs.gentoo.org/296713#c14
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 tree-layout.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tree-layout.tex b/tree-layout.tex
index b42bd3f..4fceb87 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -224,6 +224,9 @@ The second form instructs the package manager that any currently installed packa
 package dependency specification \t{spec} whose \t{SLOT} is set to \t{slot1} should have it updated
 to \t{slot2}.
 
+It is unspecified in what order the files in the \t{updates} directory or the lines in any given
+file are processed.
+
 Any name that has appeared as the origin of a move must not be reused in the future. Any slot
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     9f24a6cf60c7de22c6ab22ae18f3f01c7242a44d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 18:22:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9f24a6cf

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 5efe389..1e6e951 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -286,6 +286,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -524,6 +527,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 171a341..8d5c903 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,27 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} When called with option \t{-r} in EAPIs listed in
+    table~\ref{tab:dosym-r} as supporting creation of relative paths, expands the first parameter
+    relative to the apparent path of the directory containing the first parameter. The algorithm
+    must return a result identical to the one returned by the function in listing~\ref{lst:dosym-r},
+    with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r}
+    together with a relative path as first (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    realpath -m -s --relative-to="$(dirname "${link}")" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +747,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     9608fc5e153c99803257c97f09046f93500cc658
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:46:09 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 18:46:09 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9608fc5e

EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses

Bug: https://bugs.gentoo.org/701132
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 eclasses.tex         | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1e6e951..0579fa3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -149,6 +149,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
+Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+    No & No & No & No & Yes \\
+
 \t{AA} & \compactfeatureref{aa} &
     * & No & No & No & No \\
 
@@ -528,6 +531,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
 \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
+\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index 7f4ba67..a92ce1f 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
-variables are handled specially when set by an eclass. They must be accumulated across eclasses,
-appending the value set by each eclass to the resulting value after the previous one is loaded.
-Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
-this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
+\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be
+accumulated across eclasses, appending the value set by each eclass to the resulting value after
+the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating
+\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined
+value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after
+the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
+    \label{tab:accumulate-vars}
+    \begin{tabular}{lll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} &
+      \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
+      8                       & Yes & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
 
 \section{EXPORT_FUNCTIONS}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     42ce11544e84f6c34eb45504d4ee27c0dc9bea36
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 12:16:26 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:20:01 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=42ce1154

EAPI 8: Bash version is 5.0

Bug: https://bugs.gentoo.org/636652
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 3 ++-
 ebuild-format.tex    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4c35b07..a392e97 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -54,7 +54,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
     No & No & Yes & Yes & Yes \\
@@ -511,6 +511,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \item \t{useq} banned, \featureref{banned-commands}.
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
+\item Bash version is 4.2, \featureref{bash-version}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index c2224bf..4929ba4 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7, 8           & 4.2 & Yes \\
+      6, 7              & 4.2 & Yes \\
+      8                 & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     9a4dec7285edc68d7dd2166abe798e8b3b8a354d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 19:06:02 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 19:06:02 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9a4dec72

EAPI 8: Default src_prepare doesn't accept options in PATCHES

Bug: https://bugs.gentoo.org/752486
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 ebuild-functions.tex | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 559a686..ab0ee97 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -121,7 +121,7 @@ Use dependencies & \compactfeatureref{use-deps} &
     * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 8 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
     * & Yes & Yes & Yes & Yes \\
@@ -536,6 +536,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}.
 \item \t{usev} supports an optional second argument, \featureref{usev}.
+\item Different \t{src_prepare} implementation, \featureref{src-prepare-8}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 108b8bc..c8e02db 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -144,6 +144,24 @@ src_prepare() {
 \end{verbatim}
 \end{listing}
 
+\featurelabel{src-prepare-8} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format
+8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave
+as:
+
+\begin{listing}[H]
+\caption{\t{src_prepare}, format~8}
+\begin{verbatim}
+src_prepare() {
+    if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+        [[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}"
+    else
+        [[ -n ${PATCHES} ]] && eapply -- ${PATCHES}
+    fi
+    eapply_user
+}
+\end{verbatim}
+\end{listing}
+
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
@@ -158,7 +176,8 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7, 8           & Yes & 6              \\
+      6, 7              & Yes & 6              \\
+      8                 & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     dd79226c9df55493908df8f1404e74c0f37ff1b9
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 16:44:50 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 16:46:17 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=dd79226c

EAPI 8 has less strict naming rules in the updates directory

Bug: https://bugs.gentoo.org/692774
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 tree-layout.tex      | 25 +++++++++++++++++++++----
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4bc06e1..5efe389 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.}
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & Yes & Yes \\
 
+Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
+    No & No & No & No & Yes \\
+
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
     No & No & No & Yes & Yes \\
 
@@ -520,6 +523,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Bash version is 4.2, \featureref{bash-version}.
 \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}.
 \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}.
+\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/tree-layout.tex b/tree-layout.tex
index ab8a02a..b42bd3f 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -205,11 +205,14 @@ differs from that described in \t{use.desc}.
 
 \subsection{The updates directory}
 \label{sec:updates-dir}
-The \t{updates} directory is used to inform the package manager that a package has moved categories,
-names, or that a version has changed SLOT\@. It contains one file per quarter year, named
+\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager
+that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs
+so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named
 \t{[1-4]Q-[YYYY]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or
-\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following
-formats:
+\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their
+name begins with a dot.
+
+The format of each file is again line-based, with each line having one of the following formats:
 \begin{verbatim}
 move <qpn1> <qpn2>
 slotmove <spec> <slot1> <slot2>
@@ -225,6 +228,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut
 that has appeared as the origin of a slot move may not be used by packages matching the spec of
 that slot move in the future.
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
+    \label{tab:updates-filenames}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
+      8                       & No  \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \section{The Licenses Directory}
 \label{sec:licenses-dir}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     0d733c074bc7c4eebd01164904e73059433888ad
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:07:44 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=0d733c07

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 23 ++++++++++++++---------
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8c75e7d..c98f572 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -254,7 +254,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot, datarootdir \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -489,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..c61ad20 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -301,6 +301,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -329,20 +332,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{4em}}{\textbf{-{}-disable-silent-rules}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
-          \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
+          \multicolumn{1}{P{4em}}{\textbf{-{}-with-sysroot}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & Yes & Yes & No  & No  \\
+          7                 & Yes & Yes & Yes & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     9d029c432ef2d862f4feff4b88db399c08e78c5b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:07:44 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9d029c43

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..64a4a2d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -71,6 +71,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9941f3e..59c5b64 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     7c7d0c842c53aa614975e0677b71c973b260884d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:07:44 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7c7d0c84

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Acked-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     a18d8eae52c673c0c187c51f24cba5b02a383d60
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:07:44 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a18d8eae

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index c98f572..da6f552 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -310,6 +310,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -490,6 +499,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c61ad20..0b722a7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1049,10 +1049,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1091,16 +1094,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-16 19:13 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-16 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     32779c41bef1d82222babd5ae36f94f1ac79700f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May 16 12:07:44 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=32779c41

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 64a4a2d..8c75e7d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -83,6 +83,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -485,6 +488,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 59c5b64..4f74e2b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     ad682f1c07568490c709c8f1482f52ceecc8e70b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 21:50:30 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ad682f1c

EAPI 8 removes .7z, .rar, .lha unpack support

Bug: https://bugs.gentoo.org/690968
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 10 ++++++++++
 pkg-mgr-commands.tex | 21 ++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index c98f572..da6f552 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -310,6 +310,15 @@ Controllable stripping & \compactfeatureref{dostrip} &
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
     No & No & Yes & Yes & Yes \\
 
+\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
+\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
+    Yes & Yes & Yes & Yes & No \\
+
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
     No & No & Yes & Yes & Yes \\
 
@@ -490,6 +499,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
+\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index c61ad20..0b722a7 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1049,10 +1049,13 @@ has returned.
     \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure
         that bzip2 and GNU tar are installed.
     \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed.
-    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed.
+    \item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs
+        listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}.
     \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed.
+        Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}.
     \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is
-        installed.
+        installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting
+        \t{.lha}.
     \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed.
     \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on
         those platforms where the GNU binutils ar program is not available and the installed ar
@@ -1091,16 +1094,20 @@ has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
-        \begin{tabular}{llll}
+        \begin{tabular}{llllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{c}{\textbf{\t{.xz}?}} &
           \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} &
-          \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\
+          \multicolumn{1}{c}{\textbf{\t{.txz}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.7z}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.rar}?}} &
+          \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\
           \midrule
-          0, 1, 2           & No  & No  & No  \\
-          3, 4, 5           & Yes & Yes & No  \\
-          6, 7, 8           & Yes & Yes & Yes \\
+          0, 1, 2           & No  & No  & No  & Yes & Yes & Yes \\
+          3, 4, 5           & Yes & Yes & No  & Yes & Yes & Yes \\
+          6, 7              & Yes & Yes & Yes & Yes & Yes & Yes \\
+          8                 & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     7b065cfa8d761fa5921def882356775cac522b0b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 24 09:46:26 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7b065cfa

EAPI 8 has econf passing --datarootdir

Bug: https://bugs.gentoo.org/651958
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  3 ++-
 pkg-mgr-commands.tex | 23 ++++++++++++++---------
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 8c75e7d..c98f572 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -254,7 +254,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
-    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot, datarootdir \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
     * & Yes & Yes & Yes & Yes \\
@@ -489,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \begin{compactitem}
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \item \t{IDEPEND}, \featureref{idepend}.
+\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index f401472..c61ad20 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -301,6 +301,9 @@ commands once the current phase function has returned.
     \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man}
     \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info}
     \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share}
+    \item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, 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{-{}-datarootdir} occurs in the output of \t{configure -{}-help}.
     \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc}
     \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib}
     \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in
@@ -329,20 +332,22 @@ commands once the current phase function has returned.
     \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
-        \begin{tabular}{llllll}
+        \begin{tabular}{lllllll}
           \toprule
           \multicolumn{1}{c}{\textbf{EAPI}} &
-          \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} &
-          \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} &
+          \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
+          \multicolumn{1}{P{4em}}{\textbf{-{}-disable-silent-rules}} &
           \multicolumn{1}{c}{\textbf{-{}-docdir}} &
           \multicolumn{1}{c}{\textbf{-{}-htmldir}} &
-          \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\
+          \multicolumn{1}{P{4em}}{\textbf{-{}-with-sysroot}} &
+          \multicolumn{1}{c}{\textbf{-{}-datarootdir}} \\
           \midrule
-          0, 1, 2, 3        & No  & No  & No  & No  & No  \\
-          4                 & Yes & No  & No  & No  & No  \\
-          5                 & Yes & Yes & No  & No  & No  \\
-          6                 & Yes & Yes & Yes & Yes & No  \\
-          7, 8              & Yes & Yes & Yes & Yes & Yes \\
+          0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
+          4                 & Yes & No  & No  & No  & No  & No  \\
+          5                 & Yes & Yes & No  & No  & No  & No  \\
+          6                 & Yes & Yes & Yes & Yes & No  & No  \\
+          7                 & Yes & Yes & Yes & Yes & Yes & No  \\
+          8                 & Yes & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     d720b146647fdbe65a5acfb2c658b059578d68de
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:00:11 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun May  2 09:33:17 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=d720b146

Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 pms.tex             | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index d4abb1a..83ddfa7 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -73,8 +73,8 @@
     % to the original author or the PMS team.
 
     This work is released under the Creative Commons
-    Attribution-Share Alike 3.0 Licence.%
-    \footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}
+    Attribution-ShareAlike 4.0 International Licence.%
+    \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}}
 \end{abstract}
 
 \section{EAPIs 0, 1, 2, 3, and 4}

diff --git a/pms.tex b/pms.tex
index f54b1a0..8bbd037 100644
--- a/pms.tex
+++ b/pms.tex
@@ -34,8 +34,9 @@
     \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
-    This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The
-    full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}.
+    This work is released under the Creative Commons Attribution-ShareAlike 4.0 International
+    Licence. To~view a copy of this licence, visit
+    \url{https://creativecommons.org/licenses/by-sa/4.0/}.
 
     \commitinfo
 }


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     b6e8c44c3f1965b9fce26d9c22fd67644a8eb8a6
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:19:32 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b6e8c44c

eapis.tex: Merge redundant descriptions

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapis.tex | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/eapis.tex b/eapis.tex
index 746decf..f902869 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-The following EAPIs are defined by this specification:
-
 \ChangeWhenAddingAnEAPI{8}
-\begin{compactdesc}
-\item[0] The `original' base EAPI.
-\item[1] EAPI `1' contains a number of extensions to EAPI `0'.
-\item[2] EAPI `2' contains a number of extensions to EAPI `1'.
-\item[3] EAPI `3' contains a number of extensions to EAPI `2'.
-\item[4] EAPI `4' contains a number of extensions to EAPI `3'.
-\item[5] EAPI `5' contains a number of extensions to EAPI `4'.
-\item[6] EAPI `6' contains a number of extensions to EAPI `5'.
-\item[7] EAPI `7' contains a number of extensions to EAPI `6'.
-\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
-\end{compactdesc}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
+to its predecessor.
 
 Except where explicitly noted, everything in this specification
 applies to all of the above EAPIs.%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     ef4443236b8627ca6f7b4a479cc005f705748e49
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 20:32:41 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ef444323

EAPI 8 has install-time dependencies (IDEPEND)

Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex     | 25 +++++++++++++++++--------
 eapi-differences.tex |  4 ++++
 ebuild-env-vars.tex  |  5 +++--
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 6 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index f25c238..a40804a 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -21,7 +21,7 @@
           \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
-          \t{RDEPEND} \\
+          \t{RDEPEND}, \t{IDEPEND} \\
       \addlinespace
       \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\
       \bottomrule
@@ -32,7 +32,7 @@
     \label{tab:dep-class-api}
     \begin{tabular}{llll}
       \toprule
-                                & \t{BDEPEND}     & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
+                       & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND}         & \t{RDEPEND}, \t{PDEPEND} \\
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
@@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
+\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
+\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible
+with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and
+\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely
+on them being available.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5, 6 & No  \\
-      7, 8                & Yes \\
+      0, 1, 2, 3, 4, 5, 6 & No  & No  \\
+      7                   & Yes & No  \\
+      8                   & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
 
 \begin{compactitem}
 \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
-    \t{PDEPEND}.
+    \t{PDEPEND}, \t{IDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@.
     In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may
     optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when
@@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st
     followed by an open parenthesis, followed by whitespace, followed by one or more
     of (a dependency item of any kind followed by whitespace), followed by a close parenthesis.
     More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}.
-    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE},
+    \t{REQUIRED_USE}.
 \item An exactly-one-of group, which has the same format as the any-of group, but begins with the
     string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}.
 \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 64a4a2d..8c75e7d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -83,6 +83,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} &
 \t{BDEPEND} & \compactfeatureref{bdepend} &
     No & No & No & Yes & Yes \\
 
+\t{IDEPEND} & \compactfeatureref{idepend} &
+    No & No & No & No & Yes \\
+
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -485,6 +488,7 @@ EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
 \item Selective fetch/mirror restriction, \featureref{uri-restrict}.
+\item \t{IDEPEND}, \featureref{idepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5f17ff8..fce7c6f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,8 +148,9 @@ variable.
     Ditto &
     No &
     \featurelabel{broot} The absolute path to the root directory containing build dependencies
-    satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
-    prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
+    satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
+    applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
+    supporting \t{BROOT}.
     \\
 \t{T} &
     All &

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 59c5b64..4f74e2b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
     for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
     details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
+\item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/eclasses.tex b/eclasses.tex
index bf0007b..7f4ba67 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending
-the value set by each eclass to the resulting value after the previous one is loaded. Then the
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this
-is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
+The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND}
+variables are handled specially when set by an eclass. They must be accumulated across eclasses,
+appending the value set by each eclass to the resulting value after the previous one is loaded.
+Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND},
+this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 33574c4..d69ecdd 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define
     metadata; see table~\ref{tab:optional-vars-table}.
 \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of
     ebuild metadata; see table~\ref{tab:defined-phases-table}.
+\item Install-time dependencies (\t{IDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     83a53b6b30d988b846650523866012131c5c0671
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 18:23:57 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=83a53b6b

EAPI 8 has selective URI restrictions

Bug: https://bugs.gentoo.org/371413
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
[Shortened "selective-uri-restrict" label to make it fit in the margin]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  5 ++++-
 ebuild-vars.tex      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 38109ec..64a4a2d 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -71,6 +71,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
     * & Yes & Yes & Yes & Yes \\
 
+Selective URI restrictions & \compactfeatureref{uri-restrict} &
+    No & No & No & No & Yes \\
+
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
     * & No & No & No & No \\
 
@@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes:
 EAPI 8 is EAPI 7 with the following changes:
 
 \begin{compactitem}
-\item None
+\item Selective fetch/mirror restriction, \featureref{uri-restrict}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9941f3e..59c5b64 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
+\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or
+\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch
+restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror
+restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI.
+
 \ChangeWhenAddingAnEAPI{8}
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
-    \begin{tabular}{ll}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+      \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} &
+      \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1             & No  & No  \\
+      2, 3, 4, 5, 6, 7 & Yes & No  \\
+      8                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     54330c67cb6374e0bd704ea775871161ba7fdf72
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 25 21:20:55 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Apr 30 16:24:30 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=54330c67

pms.cls: Do not define \e for \emph

This is only used a few times, so a shorthand is not needed.
(We really should get rid of \i and \t as well, because redefining
LaTeX internal commands sucks.)

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 appendices.tex       | 2 +-
 dependencies.tex     | 4 ++--
 ebuild-env-state.tex | 2 +-
 ebuild-env-vars.tex  | 2 +-
 ebuild-functions.tex | 2 +-
 introduction.tex     | 4 ++--
 pkg-mgr-commands.tex | 4 ++--
 pms.cls              | 1 -
 profiles.tex         | 2 +-
 tree-layout.tex      | 4 ++--
 10 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 21716d6..3d2ef52 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -52,7 +52,7 @@ DEPEND="
 
 \subsection{CVS versions}
 Portage has very crude support for CVS packages. The package \t{foo} could contain a file named
-\t{foo-cvs.1.2.3.ebuild}. This version would order \e{higher} than any non-CVS version (including
+\t{foo-cvs.1.2.3.ebuild}. This version would order \emph{higher} than any non-CVS version (including
 \t{foo-2.ebuild}). This feature has not seen real world use and breaks versioned dependencies, so
 it must not be used.
 

diff --git a/dependencies.tex b/dependencies.tex
index a641014..557ddce 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -377,8 +377,8 @@ Multiple requirements may be combined using commas, e.\,g.\ \t{[first,-second,th
 When multiple requirements are specified, all must match for a successful match.
 
 \featurelabel{use-dep-defaults} In a 4-style use dependency, the flag name may immediately be
-followed by a \e{default} specified by either \t{(+)} or \t{(-)}. The former indicates that, when
-applying the use dependency to a package that does not have the flag in question in
+followed by a \emph{default} specified by either \t{(+)} or \t{(-)}. The former indicates that,
+when applying the use dependency to a package that does not have the flag in question in
 \t{IUSE_REFERENCEABLE}, the package manager shall behave as if the flag were present and enabled;
 the latter, present and disabled.
 

diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
index 34c41c4..a998660 100644
--- a/ebuild-env-state.tex
+++ b/ebuild-env-state.tex
@@ -5,7 +5,7 @@ Exported and default scope variables are saved between functions. A non-local va
 function earlier in the call sequence must have its value preserved for later functions, including
 functions executed as part of a later uninstall.
 
-\note{\t{pkg_pretend} is \e{not} part of the normal call sequence, and does not take part in
+\note{\t{pkg_pretend} is \emph{not} part of the normal call sequence, and does not take part in
 environment saving.}
 
 Variables that were exported must remain exported in later functions; variables with default

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2736423..332c3d8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -421,7 +421,7 @@ installing a package. Details are beyond the scope of this specification.
 
 \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},
+\t{pkg_postinst}. In addition, it \emph{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.
 

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 3935800..ab3ed9c 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -24,7 +24,7 @@ Ebuilds must not call nor assume the existence of any phase functions.
 
 Some functions may assume that their initial working directory is set to a particular location;
 these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \e{may} assume that the
+the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the
 initial working directory for any phase is a trusted location that may only be written to by a
 privileged user and group.
 

diff --git a/introduction.tex b/introduction.tex
index 8d1f793..b72acc3 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -5,7 +5,7 @@
 This document aims to fully describe the format of an ebuild repository and the ebuilds therein, as
 well as certain aspects of package manager behaviour required to support such a repository.
 
-This document is \e{not} designed to be an introduction to ebuild development. Prior knowledge of
+This document is \emph{not} designed to be an introduction to ebuild development. Prior knowledge of
 ebuild creation and an understanding of how the package management system works is assumed; certain
 less familiar terms are explained in the Glossary in chapter~\ref{ch:glossary}.
 
@@ -28,7 +28,7 @@ incompatibilities with any particular repository.
 \section{Reporting Issues}
 
 Issues (inaccuracies, wording problems, omissions etc.)\ in this document should be reported via
-Gentoo Bugzilla using product \e{Gentoo Hosted Projects}, component \e{PMS/EAPI} and the default
+Gentoo Bugzilla using product \i{Gentoo Hosted Projects}, component \i{PMS/EAPI} and the default
 assignee. There should be one bug per issue, and one issue per bug.
 
 Patches (in \t{git format-patch} form if possible) may be submitted either via Bugzilla or to the

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b807117..59edc1c 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -184,7 +184,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     a failure message provided in its first and only argument, and then aborts the build process.
 
     \featurelabel{subshell-die} In EAPIs listed in table~\ref{tab:die-properties} as not providing
-    subshell support, \t{die} is \e{not} guaranteed to work correctly if called from a subshell
+    subshell support, \t{die} is \emph{not} guaranteed to work correctly if called from a subshell
     environment.
 \item[assert] Checks the value of the shell's pipe status variable, and if any component is non-zero
     (indicating failure), calls \t{die}, passing any parameters to it.
@@ -1027,7 +1027,7 @@ has returned.
     \item \featurelabel{unpack-absolute} Otherwise, for EAPIs listed in
         table~\ref{tab:unpack-behaviour} as supporting absolute and relative paths, the argument is
         interpreted as a literal path (absolute, or relative to the working directory); for EAPIs
-        listed as \e{not} supporting such paths, \t{unpack} shall abort the build process.
+        listed as \emph{not} supporting such paths, \t{unpack} shall abort the build process.
     \end{compactitem}
 
     Any unrecognised file format shall be skipped silently. If unpacking a supported file format

diff --git a/pms.cls b/pms.cls
index d7c6ed8..ee0d60f 100644
--- a/pms.cls
+++ b/pms.cls
@@ -110,7 +110,6 @@
     \renewcommand{\i}[1]{\textit{#1}}
     \renewcommand{\t}[1]{\texttt{#1}}
 }
-\newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
 % Because we are lazy, we define a table environment to fulfil our needs

diff --git a/profiles.tex b/profiles.tex
index 76c9278..a3e666e 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -40,7 +40,7 @@ If a profile contains a file named \t{deprecated}, it is treated as such. The fi
 file should contain the path from the \t{profiles} directory of the repository to a valid profile
 that is the recommended upgrade path from this profile. The remainder of the file can contain any
 text, which may be displayed to users using this profile by the package manager. This file is not
-inherited---profiles which inherit from a deprecated profile are \e{not} deprecated.
+inherited---profiles which inherit from a deprecated profile are \emph{not} deprecated.
 
 This file must not contain comments or make use of line continuations.
 

diff --git a/tree-layout.tex b/tree-layout.tex
index 80d70d6..138e533 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -35,7 +35,7 @@ the category. Each category directory shall contain:
 \end{compactitem}
 
 Category directories may contain additional files, whose purpose is not covered by this
-specification. Additional directories that are not for a package may \e{not} be present, to avoid
+specification. Additional directories that are not for a package may \emph{not} be present, to avoid
 conflicts with package name directories; an exception is made for filesystem components whose name
 starts with a dot, which the package manager must ignore, and for any directory named \t{CVS}.
 
@@ -120,7 +120,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[desc/] This directory contains files analogous to \t{use.desc} for the various \t{USE_EXPAND}
     variables. Each file in it is named \t{<varname>.desc}, where \t{<varname>} is the variable
     name, in lowercase, whose possible values the file describes. The format of each file is as for
-    \t{use.desc}, described in section~\ref{sec:use.desc}. The \t{USE_EXPAND} name is \e{not}
+    \t{use.desc}, described in section~\ref{sec:use.desc}. The \t{USE_EXPAND} name is \emph{not}
     included as a prefix here.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     b54d0385f412f55d4accc9340abf13e63c18babd
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:17:19 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b54d0385

EAPI feature table: Consolidate EAPIs 0 to 4

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex | 191 +++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 98 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index d5513c3..38109ec 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,23 +1,22 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main text for specifics.
-For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table
+For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table
 below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.}
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{6}{c}{\textbf{EAPIs}} \\
+\multicolumn{5}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3} &
-\multicolumn{1}{c}{4} &
+\multicolumn{1}{c}{0, 1, 2, 3, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
@@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 & 6 \\
+    * & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -139,190 +137,187 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
-    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No & No \\
+    * & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
     \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
-    None & disable dependency tracking &
+    * &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
-    \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     87a945a9d317f0a3bfba745127c66b44ffbf8b40
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu May 10 17:08:50 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 10:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=87a945a9

Add an EAPI 8 identical to EAPI 7

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++----
 eapi-differences.tex  | 201 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   3 +-
 ebuild-env-vars.tex   |  24 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  42 +++++------
 ebuild-vars.tex       |  24 +++---
 merge.tex             |   4 +-
 pkg-mgr-commands.tex  |  84 ++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   4 +-
 14 files changed, 230 insertions(+), 214 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..3ed4fe7 100644
--- a/commands.tex
+++ b/commands.tex
@@ -32,7 +32,7 @@ The following commands must always be available in the ebuild environment:
     table~\ref{tab:system-commands-table} as requiring GNU find.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{System commands for EAPIs}
     \label{tab:system-commands-table}
     \begin{tabular}{lll}
@@ -43,7 +43,7 @@ The following commands must always be available in the ebuild environment:
       \midrule
       0, 1, 2, 3, 4     & Undefined & Any \\
       5, 6              & Yes       & Any \\
-      7                 & Yes       & 2.7 \\
+      7, 8              & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..f25c238 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
     dependency.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{ll}
@@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses:
       \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -146,7 +146,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -155,7 +155,7 @@ In particular, note that whitespace is not optional.
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched.
 In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as
 being matched.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -205,7 +205,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7                   & No  \\
+      7, 8                & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -241,7 +241,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0                 & No                 & No  \\
       1, 2, 3, 4        & Named only         & No  \\
-      5, 6, 7           & Named and operator & Yes \\
+      5, 6, 7, 8        & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u
       \midrule
       0, 1              & No      \\
       2, 3              & 2-style \\
-      4, 5, 6, 7        & 4-style \\
+      4, 5, 6, 7, 8     & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -301,7 +301,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -310,8 +310,8 @@ described in table~\ref{tab:bang-strength-table}.
       \multicolumn{1}{c}{\textbf{\t{!}}} &
       \multicolumn{1}{c}{\textbf{\t{!!}}} \\
       \midrule
-      0, 1              & Unspecified & Forbidden \\
-      2, 3, 4, 5, 6, 7  & Weak        & Strong    \\
+      0, 1                & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bc49a33..d5513c3 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -6,34 +6,36 @@ below; entries marked with an asterisk differ between these EAPIs. See the 2012-
 of this document for a complete table of previous EAPIs.}
 % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
 \multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
+\multicolumn{6}{c}{\textbf{EAPIs}} \\
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{} &
 \multicolumn{1}{c}{0, 1, 2, 3} &
 \multicolumn{1}{c}{4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} \\
+\multicolumn{1}{c}{7} &
+\multicolumn{1}{c}{8} \\
 \midrule
 \endhead
 \midrule
@@ -42,92 +44,92 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & Optional & No \\
+    Optional & Optional & Optional & Optional & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\
+    3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    Optionally & Yes & Yes & Yes & Yes \\
+    Optionally & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named & Named and Operator & Named and Operator & Named and Operator \\
+    * & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\
 
 Sub-slots & \compactfeatureref{sub-slot} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Use dependencies & \compactfeatureref{use-deps} &
-    * & 4-style & 4-style & 4-style & 4-style \\
+    * & 4-style & 4-style & 4-style & 4-style & 4-style \\
 
 \t{!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Weak & Weak & Weak & Weak \\
+    * & Weak & Weak & Weak & Weak & Weak \\
 
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
-    * & Strong & Strong & Strong & Strong \\
+    * & Strong & Strong & Strong & Strong & Strong \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    Always & Conditional & Conditional & Conditional & Conditional \\
+    Always & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} & \compactfeatureref{src-prepare} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_prepare} style & \compactfeatureref{src-prepare} &
-    * & no-op & no-op & 6 & 6 \\
+    * & no-op & no-op & 6 & 6 & 6 \\
 
 \t{src_configure} & \compactfeatureref{src-configure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_compile} style & \compactfeatureref{src-compile} &
-    * & 2 & 2 & 2 & 2 \\
+    * & 2 & 2 & 2 & 2 & 2 \\
 
 Parallel tests & \compactfeatureref{parallel-tests} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    no-op & 4 & 4 & 6 & 6 \\
+    no-op & 4 & 4 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    Installed & Both & Both & Both & Both \\
+    Installed & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -137,185 +139,190 @@ Parallel tests & \compactfeatureref{parallel-tests} &
         \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} &
+    \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+        \t{src_compile}, \t{src_test}, \t{src_install} &
     \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
         \t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    Yes & No & No & No & No \\
+    Yes & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Undefined & Yes & Yes \\
+    Undefined & Undefined & Undefined & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & Any & 2.7 \\
+    Any & Any & Any & Any & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    No & Yes & Yes & Yes & Function / external \\
+    No & Yes & Yes & Yes & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    Yes & Banned & Banned & Banned & Banned \\
+    Yes & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 Query command options & \compactfeatureref{pm-query-options} &
-    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\
+    None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} &
+    \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     None & disable dependency tracking &
     disable dependency tracking, disable silent rules &
     disable dependency tracking, disable silent rules, docdir, htmldir &
+    disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\
 
 \t{dodoc -r} & \compactfeatureref{dodoc} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman} languages & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doman -i18n} precedence & \compactfeatureref{doman-langs} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{domo} destination path & \compactfeatureref{domo-path} &
-    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} &
+    \t{/usr} \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -474,7 +481,15 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\section{EAPI 8}
+
+EAPI 8 is EAPI 7 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{8}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index 6c015a2..746decf 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{compactdesc}
 \item[0] The `original' base EAPI.
 \item[1] EAPI `1' contains a number of extensions to EAPI `0'.
@@ -29,6 +29,7 @@ The following EAPIs are defined by this specification:
 \item[5] EAPI `5' contains a number of extensions to EAPI `4'.
 \item[6] EAPI `6' contains a number of extensions to EAPI `5'.
 \item[7] EAPI `7' contains a number of extensions to EAPI `6'.
+\item[8] EAPI `8' contains a number of extensions to EAPI `7'.
 \end{compactdesc}
 
 Except where explicitly noted, everything in this specification

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..5f17ff8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -262,7 +262,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -278,12 +278,12 @@ variable.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4                 & Yes & Yes & Yes & No  & No  & No  \\
       5, 6              & Yes & Yes & Yes & Yes & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -298,12 +298,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7                 & No  & No  & No  & No  & No  & No  \\
+      7, 8              & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -316,7 +316,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7                 & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -340,7 +340,7 @@ must be unset, for EAPIs listed in table~\ref{tab:profile-env-unset} as supporti
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in
 table~\ref{tab:locale-settings}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -349,7 +349,7 @@ table~\ref{tab:locale-settings}.
       \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      6, 7, 8           & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -435,7 +435,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,7 +444,7 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
       0, 1, 2           & No  \\
-      3, 4, 5, 6, 7     & Yes \\
+      3, 4, 5, 6, 7, 8  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -475,7 +475,7 @@ specifies the system root directory, it will consist of a single slash (\t{/}).
 a trailing slash, the package manager guarantees that a trailing slash will never be present.
 If the path specifies the system root directory, it will be empty.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -487,7 +487,7 @@ If the path specifies the system root directory, it will be empty.
       \t{D}, \t{ED} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & always & always \\
-      7                   & never  & never  \\
+      7, 8                & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index d53d773..c2224bf 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -16,7 +16,7 @@ certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:e
 for specific information), and must not call any external programs, write anything to standard
 output or standard error, or modify the state of the system in any way.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -26,7 +26,7 @@ output or standard error, or modify the state of the system in any way.
       \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
-      6, 7              & 4.2 & Yes \\
+      6, 7, 8           & 4.2 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..108b8bc 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -44,7 +44,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -53,7 +53,7 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Fallback to \t{WORKDIR} permitted?}} \\
       \midrule
       0, 1, 2, 3        & Always            \\
-      4, 5, 6, 7        & Conditional error \\
+      4, 5, 6, 7, 8     & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -75,7 +75,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -84,7 +84,7 @@ before the next phase is executed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_pretend}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -147,7 +147,7 @@ src_prepare() {
 For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks
 the \t{src_prepare} function is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -158,7 +158,7 @@ the \t{src_prepare} function is a no-op.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
-      6, 7              & Yes & 6              \\
+      6, 7, 8           & Yes & 6              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -185,7 +185,7 @@ src_configure() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -193,8 +193,8 @@ src_configure() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -258,7 +258,7 @@ src_compile() {
 \end{verbatim}
 \end{listing}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -266,9 +266,9 @@ src_compile() {
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                 & 0 \\
-      1                 & 1 \\
-      2, 3, 4, 5, 6, 7  & 2 \\
+      0                   & 0 \\
+      1                   & 1 \\
+      2, 3, 4, 5, 6, 7, 8 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -292,7 +292,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -301,7 +301,7 @@ be disabled by user too, using a PM-specific mechanism.
       \multicolumn{1}{c}{\textbf{Supports parallel tests?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -360,7 +360,7 @@ src_install() {
 For other EAPIs, the default implementation used when the ebuild lacks the \t{src_install} function
 is a no-op.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -370,7 +370,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7              & 6     \\
+      6, 7, 8           & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -428,7 +428,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -437,7 +437,7 @@ that dependencies may not be installed.
       \multicolumn{1}{c}{\textbf{Supports \t{pkg_info} on non-installed packages?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -459,7 +459,7 @@ named \t{default_}(phase) that behaves as the default implementation for that EA
 when executing any ebuild phase listed in the table. Ebuilds must not call these functions except
 when in the phase in question.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -470,7 +470,7 @@ when in the phase in question.
       0, 1              & None \\
       2, 3              & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test} \\
-      4, 5, 6, 7        & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
                           \t{src_compile}, \t{src_test}, \t{src_install} \\
       \bottomrule
     \end{tabular}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..9941f3e 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -88,7 +88,7 @@ Ebuilds may define any of the following variables:
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -96,13 +96,13 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{IUSE} defaults?}} \\
       \midrule
-      0                         & No  \\
-      1, 2, 3, 4, 5, 6, 7       & Yes \\
+      0                      & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -112,7 +112,7 @@ Ebuilds may define any of the following variables:
       \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally & No  \\
-      4, 5, 6, 7        & Yes        & Yes \\
+      4, 5, 6, 7, 8     & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -169,7 +169,7 @@ on the right of the arrow. When consulting mirrors (except for those explicitly
 of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
 instead of the filename in the URI.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}
@@ -177,8 +177,8 @@ instead of the filename in the URI.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
       \midrule
-      0, 1              & No  \\
-      2, 3, 4, 5, 6, 7  & Yes \\
+      0, 1                & No  \\
+      2, 3, 4, 5, 6, 7, 8 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -261,7 +261,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -270,7 +270,7 @@ the ebuild portion, and any \t{DEPEND} value set in an eclass does not get treat
       \multicolumn{1}{c}{\textbf{\t{RDEPEND=DEPEND}?}} \\
       \midrule
       0, 1, 2, 3        & Yes \\
-      4, 5, 6, 7        & No  \\
+      4, 5, 6, 7, 8     & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -305,7 +305,7 @@ not be exported to the ebuild environment:
 \note{Thus, by extension of section~\ref{sec:metadata-invariance}, phase functions must not be
 defined based upon any variant condition.}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -314,7 +314,7 @@ defined based upon any variant condition.}
       \multicolumn{1}{c}{\textbf{Supports \t{DEFINED_PHASES}?}} \\
       \midrule
       0, 1, 2, 3        & Optionally \\
-      4, 5, 6, 7        & Yes        \\
+      4, 5, 6, 7, 8     & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/merge.tex b/merge.tex
index 6649d35..0e6738d 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Preservation of file modification times (mtimes)}
     \label{tab:mtime-preserve}
     \begin{tabular}{ll}
@@ -95,7 +95,7 @@ is undefined.
       \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\
       \midrule
       0, 1, 2           & Undefined \\
-      3, 4, 5, 6, 7     & Yes       \\
+      3, 4, 5, 6, 7, 8  & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..f401472 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -30,7 +30,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -42,7 +42,7 @@ The following commands affect this behaviour:
       \midrule
       0, 1, 2, 3        & Non-zero exit & No  & n/a \\
       4, 5, 6           & Aborts        & Yes & No  \\
-      7                 & Aborts        & Yes & Yes \\
+      7, 8              & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -53,7 +53,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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -71,7 +71,7 @@ called, the package manager must abort the build process indicating an error.
       0, 1, 2, 3        & No  & No  & No  & No  & No  & No  \\
       4, 5              & Yes & Yes & No  & No  & No  & No  \\
       6                 & Yes & Yes & Yes & No  & No  & No  \\
-      7                 & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -109,7 +109,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -122,7 +122,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7                 & No  & Yes & Yes & Yes \\
+      7, 8              & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -158,7 +158,7 @@ output, using stdout as an output facility is forbidden.
     message followed by a failure indicator. Returns its first argument as exit status.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -168,7 +168,7 @@ output, using stdout as an output facility is forbidden.
       \multicolumn{1}{c}{\textbf{Supports \t{eqawarn}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes & No  \\
-      7                   & No  & Yes \\
+      7, 8                & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -190,7 +190,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
     (indicating failure), calls \t{die}, passing any parameters to it.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -203,7 +203,7 @@ completing. Ebuilds must not run any of these commands once the current phase fu
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
       6                 & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -267,7 +267,7 @@ Ebuilds must not run any of these commands once the current phase function has r
     subsequent calls, the command will do nothing and return~0.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -277,7 +277,7 @@ Ebuilds must not run any of these commands once the current phase function has r
       \multicolumn{1}{c}{\textbf{\t{eapply_user}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5  & No  & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -326,7 +326,7 @@ commands once the current phase function has returned.
         occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{llllll}
@@ -342,7 +342,7 @@ commands once the current phase function has returned.
           4                 & Yes & No  & No  & No  & No  \\
           5                 & Yes & Yes & No  & No  & No  \\
           6                 & Yes & Yes & Yes & Yes & No  \\
-          7                 & Yes & Yes & Yes & Yes & Yes \\
+          7, 8              & Yes & Yes & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -618,7 +618,7 @@ the current phase function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -627,12 +627,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -641,12 +641,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -655,12 +655,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -671,12 +671,12 @@ the current phase function has returned.
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7        & Yes & Yes            \\
+      4, 5, 6, 7, 8     & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -685,12 +685,12 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -699,7 +699,7 @@ the current phase function has returned.
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7                   & \t{/usr/share/locale} \\
+      7, 8                & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -809,7 +809,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -820,7 +820,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7                 & Yes & Yes \\
+      7, 8              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -864,7 +864,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -873,12 +873,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7        & Error     \\
+      4, 5, 6, 7, 8     & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}}
     \label{tab:use-with-third-arg}
     \begin{tabular}{ll}
@@ -887,12 +887,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7        & Yes \\
+      4, 5, 6, 7, 8     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -903,7 +903,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7              & Yes & Yes \\
+      6, 7, 8           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -983,7 +983,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -994,7 +994,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7                   & Yes & Yes & Yes \\
+      7, 8                & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1068,7 +1068,7 @@ has returned.
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions in a case-insensitive
     manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour}.
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1078,12 +1078,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7              & Yes & Yes \\
+          6, 7, 8           & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{7}
+    \ChangeWhenAddingAnEAPI{8}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llll}
@@ -1095,7 +1095,7 @@ has returned.
           \midrule
           0, 1, 2           & No  & No  & No  \\
           3, 4, 5           & Yes & Yes & No  \\
-          6, 7              & Yes & Yes & Yes \\
+          6, 7, 8           & Yes & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1162,7 +1162,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1174,7 +1174,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7              & Yes & Yes & Yes \\
+      6, 7, 8           & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/pms.tex b/pms.tex
index 7840252..f54b1a0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -21,8 +21,8 @@
     pdfkeywords={Gentoo, package manager, specification},
 }
 
-\CurrentEAPIIs{7}
-\ChangeWhenAddingAnEAPI{7}
+\CurrentEAPIIs{8}
+\ChangeWhenAddingAnEAPI{8}
 
 \begin{document}
 \maketitle

diff --git a/profile-variables.tex b/profile-variables.tex
index f34c7c5..ba40bf4 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -40,7 +40,7 @@ Other variables, except where they affect only package-manager-specific function
 Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
 completely override those in parent profiles.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs}
     \label{tab:profile-iuse-injection-table}
     \begin{tabular}{ll}
@@ -49,12 +49,12 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile-defined unsetting of variables in EAPIs}
     \label{tab:profile-env-unset}
     \begin{tabular}{ll}
@@ -63,7 +63,7 @@ completely override those in parent profiles.
       \multicolumn{1}{c}{\textbf{Supports \t{ENV_UNSET}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index a3e666e..d6e8649 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -78,7 +78,7 @@ in that directory, unless their name begins with a dot, will be concatenated in
 filename in the POSIX locale and the result will be processed as if it were a single file.
 Any subdirectories will be ignored.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting directories for profile files}
     \label{tab:profile-file-dirs}
     \begin{tabular}{ll}
@@ -87,7 +87,7 @@ Any subdirectories will be ignored.
       \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -123,7 +123,7 @@ it is actually installed. Because it has severe adverse effects on USE-based and
 dependencies, its use is strongly deprecated and package manager support must be regarded as purely
 optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{package.provided} in profiles}
     \label{tab:package-provided}
     \begin{tabular}{ll}
@@ -132,7 +132,7 @@ optional. Supported in EAPIs as per table~\ref{tab:package-provided}.
       \multicolumn{1}{c}{\textbf{Supports \t{package.provided}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Optionally \\
-      7                   & No         \\
+      7, 8                & No         \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -165,7 +165,7 @@ 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{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Profile directory support for masking/forcing use flags in stable versions only}
     \label{tab:profile-stablemask}
     \begin{tabular}{ll}
@@ -174,7 +174,7 @@ stable in a package.
       \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7           & Yes \\
+      5, 6, 7, 8        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..ab8a02a 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -125,7 +125,7 @@ manager must ignore any files in this directory that it does not recognise.
 \item[updates/] This directory is described in section~\ref{sec:updates-dir}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{7}
+\ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting a directory for \t{package.mask}}
     \label{tab:package-mask-dir}
     \begin{tabular}{ll}
@@ -134,7 +134,7 @@ manager must ignore any files in this directory that it does not recognise.
       \multicolumn{1}{c}{\textbf{\t{package.mask} can be a directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  \\
-      7                   & Yes \\
+      7, 8                & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     c338e3716133ee676b9fcf1252103a855e47831f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 28 18:14:55 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 28 18:14:55 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c338e371

Revert "pms.cls: Remove some tex4ht conditionals."

The PSNFSS packages cause an issue with missing whitespace between
normal and boldface text in HTML output.

This partially reverts commit 9d681052334b8b581e0c1218a0fc0c4f6897d091.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index f01ace6..351b3dd 100644
--- a/pms.cls
+++ b/pms.cls
@@ -29,8 +29,6 @@
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
     fontenc,    % Load extended font sets
-    mathptmx,   % Use Postscript fonts: Times ...
-    helvet,     % ... and Helvetica
     isodate,    % Date formatting and conversions
     geometry,   % Set page layout
     inputenc,   % Allow input methods apart from ASCII
@@ -59,6 +57,8 @@
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
     \RequirePackage{%
+        mathptmx,       % Use Postscript fonts: Times ...
+        helvet,         % ... and Helvetica
         pdfpages        % Insert whole PDF documents as separate pages
     }
     \setboolean{TEX4HT-HACKS}{false}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     e39511f0353770fdc4b7e4ce45b7ff0ed034b6d8
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 25 18:38:51 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Jul  5 19:03:44 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e39511f0

ebuild-functions.tex: Phase functions can write to temporary dirs.

All package managers support that functions like pkg_pretend() write
to temporary directories T, TMPDIR and HOME. This is also used in the
tree, see for example bug 469210. Update the spec to match this.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-functions.tex | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4a13db6..3935800 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -6,11 +6,12 @@
 The following is a list of functions that an ebuild, or eclass, may define, and which will be called
 by the package manager as part of the build and/or install process. In all cases the package manager
 must provide a default implementation of these functions; unless otherwise stated this must be a
-no-op. Most functions must assume only that they have write access to the package's working
-directory (the \t{WORKDIR} environment variable; see section~\ref{sec:ebuild-env-vars}), and the
-temporary directory \t{T}; exceptions are noted below. All functions may assume that they have read
-access to all system libraries, binaries and configuration files that are accessible to normal
-users.
+no-op. All functions may assume that they have read access to all system libraries, binaries and
+configuration files that are accessible to normal users, as well as write access to the temporary
+directories specified by the \t{T}, \t{TMPDIR} and \t{HOME} environment variables
+(see section~\ref{sec:ebuild-env-vars}). Most functions must assume only that they have additional
+write access to the package's working directory (the \t{WORKDIR} environment variable); exceptions
+are noted below.
 
 The environment for functions run outside of the build sequence (that is, \t{pkg_config},
 \t{pkg_info}, \t{pkg_prerm} and \t{pkg_postrm}) must be the environment used for the build of the


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:eapi-8 commit in: /
@ 2021-05-13 11:42 Ulrich Müller
  0 siblings, 0 replies; 263+ messages in thread
From: Ulrich Müller @ 2021-05-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     1a510e755d964b4b96a1cbc429b3e5774e8234bc
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 24 16:39:44 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun 24 16:39:44 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=1a510e75

pms.cls: Drop the caption package because it interferes with TeX4ht.

The "caption" package already caused issues in the past (for example,
see commits b35f619 and 467f1b7), and version v3.4h finally broke the
list of tables in HTML output. TeX4ht upstream says that the package
should be avoided: https://puszcza.gnu.org.ua/bugs/?313#comment8

Positioning the caption above the table is simple enough without using
the package. So we only lose the boldface labels which is a very minor
issue.

As an added bonus, this allows removal of most workarounds that were
necessary for TeX4ht.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 67 +++++++++++++++++++++++++++--------------------------------------
 1 file changed, 28 insertions(+), 39 deletions(-)

diff --git a/pms.cls b/pms.cls
index d7047cf..d7dc8e8 100644
--- a/pms.cls
+++ b/pms.cls
@@ -17,8 +17,6 @@
 \PassOptionsToPackage{textwidth=400pt,textheight=700pt,
     left=20mm,marginparsep=10pt,marginparwidth=40mm,
     vmarginratio=1:2,includehead}{geometry}
-% Position caption of float environments at the top
-\PassOptionsToPackage{position=top,labelfont=bf}{caption}
 % Enable UTF-8 input encoding
 \PassOptionsToPackage{utf8}{inputenc}
 \PassOptionsToPackage{quiet}{marginnote}
@@ -43,20 +41,14 @@
     parskip,    % Space between paragraphs instead of indentation
     underscore, % Allow simple _ instead of \_
     chngcntr,   % Redefinition of counters
-    tocbibind   % Add bibliography to table of contents
+    tocbibind,  % Add bibliography to table of contents
+    float,      % More control over float environments
+    hyperref,   % Support for hyperlinks
+    gitinfo2,   % Metadata from git
+    algorithm,  %
+    algorithmic % Set algorithms
 }
 
-% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
-\g@addto@macro\@documentclasshook{
-    \RequirePackage{
-        caption,        % Extended float environment formatting
-        float,          % More control over float environments
-        hyperref,       % Support for hyperlinks
-        gitinfo2,       % Metadata from git
-        algorithm,      %
-        algorithmic     % Set algorithms
-    }
-}
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
     Specification, loaded baseclass: \ClassToLoad\MessageBreak}
 
@@ -75,15 +67,6 @@
     \setboolean{TEX4HT-HACKS}{true}
 \fi
 
-% tex4ht workaround: these need to happen after loading the float package
-\g@addto@macro\@documentclasshook{
-    \floatstyle{ruled}
-    \captionsetup[ruled]{labelsep=default,labelfont=bf}
-    \newfloat{listing}{tbp}{lol}[chapter]
-    \floatname{listing}{Listing}
-}
-\newcommand{\listoflistings}{\listof{listing}{List of Listings}}
-
 % Define own label and reference commands, that display the label in
 % the page margin.
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%
@@ -117,11 +100,8 @@
 \counterwithout{footnote}{chapter}
 
 % Some shorthands for the lazy ones.
-% tex4ht workaround: this needs to happen after loading hyperref
-\g@addto@macro\@documentclasshook{
-    \renewcommand{\i}[1]{\textit{#1}}
-    \renewcommand{\t}[1]{\texttt{#1}}
-}
+\renewcommand{\i}[1]{\textit{#1}}
+\renewcommand{\t}[1]{\texttt{#1}}
 \newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
@@ -138,6 +118,17 @@
 % Define a new column type P for tables, like p but with ragged-right text
 \newcolumntype{P}[1]{>{\setlength\rightskip{0pt plus 1fil}}p{#1}}
 
+% Define a float environment for listings
+\floatstyle{ruled}
+\newfloat{listing}{tbp}{lol}[chapter]
+\floatname{listing}{Listing}
+\newcommand{\listoflistings}{\listof{listing}{List of Listings}}
+
+% We always place captions above floats, so redefine vertical spacings
+% Don't use the "caption" package because it interferes with TeX4ht
+\setlength\belowcaptionskip{\abovecaptionskip}
+\setlength\abovecaptionskip{0pt}
+
 % Prevent numbers in list of tables from overrunning into the table captions
 \renewcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{2.8em}} % was 2.3em
 \let\l@table\l@figure
@@ -148,18 +139,16 @@
 \setlength\emergencystretch{1em} % was 0
 
 % Define some PDF meta-data.
-% tex4ht workaround: this needs to happen after loading hyperref
-\g@addto@macro\@documentclasshook{
-    \hypersetup{%
-        urlcolor=black,
-        colorlinks=true,
-        citecolor=black,
-        linkcolor=black,
-        pdflang={en},
-        pdfcreator={pdfLaTeX and hyperref},
-        pdfproducer={pdfLaTeX and hyperref},
-    }
+\hypersetup{%
+    urlcolor=black,
+    colorlinks=true,
+    citecolor=black,
+    linkcolor=black,
+    pdflang={en},
+    pdfcreator={pdfLaTeX and hyperref},
+    pdfproducer={pdfLaTeX and hyperref},
 }
+
 % Reads the last commit date from the Git repository and even succeeds
 % when none is available
 \date{%


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2021-05-01 10:28 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-05-01 10:28 UTC (permalink / raw
  To: gentoo-commits

commit:     224ba73717ad9dac063156290a15afdecf9a55d9
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 25 20:46:01 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Apr 30 16:24:30 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=224ba737

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index e2e434c..7840252 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
     \small
-    \textcopyright{} 2007--2020 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
+    \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned
     by their respective authors, and may have been changed substantially before inclusion.
 
     This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2021-05-01 10:28 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-05-01 10:28 UTC (permalink / raw
  To: gentoo-commits

commit:     aede3621e7208e29d65d0cf1af656ca2ac0c528b
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 25 20:23:51 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Apr 30 16:24:30 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=aede3621

pms.cls: Reinstate TeX4ht/hyperref workaround

This had been removed in commit 1a510e7, but apparently it is needed
again with TeX Live 2021.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/pms.cls b/pms.cls
index 7fff027..d7c6ed8 100644
--- a/pms.cls
+++ b/pms.cls
@@ -44,10 +44,16 @@
     chngcntr,   % Redefinition of counters
     tocbibind,  % Add bibliography to table of contents
     float,      % More control over float environments
-    hyperref,   % Support for hyperlinks
-    gitinfo2,   % Metadata from git
-    algorithm,  %
-    algorithmic % Set algorithms
+    gitinfo2    % Metadata from git
+}
+
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+    \RequirePackage{%
+        hyperref,       % Support for hyperlinks
+        algorithm,      %
+        algorithmic     % Set algorithms
+    }
 }
 
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
@@ -99,8 +105,11 @@
 \counterwithout{footnote}{chapter}
 
 % Some shorthands for the lazy ones.
-\renewcommand{\i}[1]{\textit{#1}}
-\renewcommand{\t}[1]{\texttt{#1}}
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+    \renewcommand{\i}[1]{\textit{#1}}
+    \renewcommand{\t}[1]{\texttt{#1}}
+}
 \newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
@@ -142,14 +151,17 @@
 \setlength\emergencystretch{1em} % was 0
 
 % Define some PDF meta-data.
-\hypersetup{%
-    urlcolor=black,
-    colorlinks=true,
-    citecolor=black,
-    linkcolor=black,
-    pdflang={en},
-    pdfcreator={pdfLaTeX and hyperref},
-    pdfproducer={pdfLaTeX and hyperref},
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+    \hypersetup{%
+        urlcolor=black,
+        colorlinks=true,
+        citecolor=black,
+        linkcolor=black,
+        pdflang={en},
+        pdfcreator={pdfLaTeX and hyperref},
+        pdfproducer={pdfLaTeX and hyperref},
+    }
 }
 
 % Reads the last commit date from the Git repository and even succeeds


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2021-04-25 20:39 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-04-25 20:39 UTC (permalink / raw
  To: gentoo-commits

commit:     df255447c59ccff0873134ff58ef629d91a0a715
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 15 08:00:42 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Apr 15 08:00:42 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=df255447

ebuild-env-vars.tex: Clarify wording for profile IUSE injection

Subsume IUSE_REFERENCEABLE and IUSE_EFFECTIVE under a single
conditional, which will clarify that these variables are equal if the
feature is supported.

Also the profile-iuse-inject featurelabel was misplaced (it didn't
cover IUSE_REFERENCEABLE).

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-env-vars.tex | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 117a19d..2736423 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -375,12 +375,8 @@ In all cases, the values of \t{IUSE_REFERENCEABLE} and \t{IUSE_EFFECTIVE} are un
 metadata generation.
 
 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}.
-
-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:
+\t{IUSE} injection, \t{IUSE_REFERENCEABLE} is equal to the calculated \t{IUSE} value, and
+\t{IUSE_EFFECTIVE} contains the following values:
 
 \begin{compactitem}
 \item All values in the calculated \t{IUSE} value.
@@ -390,7 +386,8 @@ For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporti
 \end{compactitem}
 
 \featurelabel{profile-iuse-inject} 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:
+as supporting profile defined \t{IUSE} injection, \t{IUSE_REFERENCEABLE} and \t{IUSE_EFFECTIVE}
+are equal and contain the following values:
 
 \begin{compactitem}
 \item All values in the calculated \t{IUSE} value.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2021-01-19 20:01 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2021-01-19 20:01 UTC (permalink / raw
  To: gentoo-commits

commit:     e16c8dc8a5e6aedbbec768e9d1c807e456bd1230
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 12:56:41 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Jan 16 12:56:41 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=e16c8dc8

pms.cls: Silence hyperref messages

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pms.cls b/pms.cls
index 351b3dd..7fff027 100644
--- a/pms.cls
+++ b/pms.cls
@@ -123,6 +123,10 @@
 \floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{List of Listings}}
 
+% Silence hyperref messages (see hint 11.3 in the hyperref manual)
+\providecommand*{\toclevel@algorithm}{0}
+\providecommand*{\toclevel@listing}{0}
+
 % We always place captions above floats, so redefine vertical spacings
 % Don't use the "caption" package because it interferes with TeX4ht
 \setlength\belowcaptionskip{\abovecaptionskip}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-09-21 19:25 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-09-21 19:25 UTC (permalink / raw
  To: gentoo-commits

commit:     c5013f3b60593f9155b0cd4beaba347c82e370d5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 21 19:13:59 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 19:13:59 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=c5013f3b

pms.cls: Change line length to reflect what is actually used.

fill-column (Emacs) and tw (Vim) set to 80.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index a5e3084..f01ace6 100644
--- a/pms.cls
+++ b/pms.cls
@@ -175,7 +175,7 @@
     }%
 }
 
-% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+% vim: set filetype=tex fileencoding=utf8 et tw=80 spell spelllang=en :
 
 %%% Local Variables:
 %%% mode: latex
@@ -183,5 +183,5 @@
 %%% LaTeX-indent-level: 4
 %%% LaTeX-item-indent: 0
 %%% TeX-brace-indent-level: 4
-%%% fill-column: 100
+%%% fill-column: 80
 %%% End:


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-09-21 19:25 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-09-21 19:25 UTC (permalink / raw
  To: gentoo-commits

commit:     9d681052334b8b581e0c1218a0fc0c4f6897d091
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 21 19:13:22 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 19:13:22 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=9d681052

pms.cls: Remove some tex4ht conditionals.

mathptmx.sty and helvet.sty work just fine. (Apparently Helvetica
isn't used, but leave the package in place.)

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index 88dbb89..a5e3084 100644
--- a/pms.cls
+++ b/pms.cls
@@ -11,6 +11,7 @@
 \ProcessOptions\relax
 \LoadClass{\ClassToLoad}
 \PassOptionsToPackage{T1}{fontenc}
+\PassOptionsToPackage{scaled=0.92}{helvet}
 \PassOptionsToPackage{orig,english}{isodate}
 % Dimensions of the text area. Define a narrow left margin to make
 % room for margin notes in the right (outer) margin
@@ -28,6 +29,8 @@
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
     fontenc,    % Load extended font sets
+    mathptmx,   % Use Postscript fonts: Times ...
+    helvet,     % ... and Helvetica
     isodate,    % Date formatting and conversions
     geometry,   % Set page layout
     inputenc,   % Allow input methods apart from ASCII
@@ -56,10 +59,8 @@
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
     \RequirePackage{%
-        mathptmx,
         pdfpages        % Insert whole PDF documents as separate pages
     }
-    \RequirePackage[scaled=.90]{helvet}
     \setboolean{TEX4HT-HACKS}{false}
 \else
     \setboolean{TEX4HT-HACKS}{true}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-09-21 19:25 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-09-21 19:25 UTC (permalink / raw
  To: gentoo-commits

commit:     06cfb9db11d6708fd0fe911bbceaa45e93d18dbc
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 21 19:19:04 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 19:19:04 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=06cfb9db

pms.tex: Fix an \includepdf warning in DVI mode.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.tex | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/pms.tex b/pms.tex
index f9b2460..e2e434c 100644
--- a/pms.tex
+++ b/pms.tex
@@ -86,12 +86,11 @@
 
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%
     \chapter{Desk Reference}
-
     \href{eapi-cheatsheet.pdf}{EAPI Cheat Sheet}
 }{%
     % Make sure that the cheat sheet starts on an odd page
     \clearpage\ifthenelse{\isodd{\thepage}}{}{\null\newpage}%
-    \includepdf[pages=-,landscape,turn=false,%
+    \includepdf[pages=-,landscape,turn=false,lastpage=2,%
         addtotoc={1,chapter,0,Desk Reference,cheatsheet}]{eapi-cheatsheet}
 }
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-09-21 19:25 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-09-21 19:25 UTC (permalink / raw
  To: gentoo-commits

commit:     78b49d4523e4f36a256d6c160a197346ed910f3f
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 16 15:48:39 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 19:23:18 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=78b49d45

ebuild-vars.tex: Allow other tokens in PROPERTIES.

The spec allows other tokens for RESTRICT but not for PROPERTIES.
There appears to be not good reason to treat the variables differently
in this respect.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ebuild-vars.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 476ea13..cd03882 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -227,7 +227,7 @@ The following tokens are permitted inside \t{PROPERTIES}:
     installed.
 \end{description}
 
-Ebuilds may not rely upon any token being supported.
+Package managers may recognise other tokens. Ebuilds may not rely upon any token being supported.
 
 \subsection{Restrict}
 \label{sec:restrict}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-08-06 16:12 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-08-06 16:12 UTC (permalink / raw
  To: gentoo-commits

commit:     29644801858ad0fffc23f1dcfc444e2da827ed64
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 14 16:09:47 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Jul 14 16:09:47 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=29644801

glossary: The term "slave repository" is not used anywhere else.

So we need not explain it in the glossary.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 glossary.tex | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/glossary.tex b/glossary.tex
index f8cd376..181febc 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -8,10 +8,10 @@ be immediately obvious.
 \item[qualified package name] A package name along with its associated category. For example,
     \t{app-editors/vim} is a qualified package name.
 \item[stand-alone repository] An (ebuild) repository which is intended to function on its own as the
-    only, or primary, repository on a system. Contrast with \i{slave repository} below.
-\item[slave repository, non-stand-alone repository] An (ebuild) repository which is not complete
-    enough to function on its own, but needs one or more \i{master repositories} to
-    satisfy dependencies and provide repository-level support files. Known in Portage as an overlay.
+    only, or primary, repository on a system. Contrast with \i{non-stand-alone repository} below.
+\item[non-stand-alone repository] An (ebuild) repository which is not complete enough to function
+    on its own, but needs one or more \i{master repositories} to satisfy dependencies and provide
+    repository-level support files. Known in Portage as an overlay.
 \item[master repository] See above.
 
 \end{description}


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-07-07  7:55 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-07-07  7:55 UTC (permalink / raw
  To: gentoo-commits

commit:     b0127163c5cb1fdd5f0c2f27135c20c90b0dca26
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  7 07:52:00 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Jul  7 07:52:00 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b0127163

Cheat sheet: Update ESYSROOT, following PMS.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 98300c0..d4abb1a 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -433,8 +433,8 @@ differences between these previous EAPIs.
         \item[\code{SYSROOT}] The path to the root directory for
         \code{DEPEND} type dependencies.
         See \featureref{sysroot}.
-        \item[\code{ESYSROOT}] The concatenation of the \code{SYSROOT}
-        and \code{EPREFIX} paths, for convenience.
+        \item[\code{ESYSROOT}] The concatenation of \code{SYSROOT} and
+        the applicable offset-prefix. See \featureref{sysroot}.
         \item[\code{BROOT}] The prefixed root directory path for
         \code{BDEPEND} type dependencies, typically executable build
         tools.


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-06-29 17:35 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-06-29 17:35 UTC (permalink / raw
  To: gentoo-commits

commit:     01c81d95476ce0cc44aa485c36c953ca135ba410
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 29 16:08:09 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Jun 29 16:08:09 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=01c81d95

Revert "pms.cls: Another workaround for tex4ht."

The workaround for gitinfo2/eso-pic is no longer needed (and won't
work anyway, as we no longer load gitinfo2 in the documentclasshook).

This reverts commit e9536369d4c032f088683bd8fddfe30d12c3dcc8.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 pms.cls | 2 --
 1 file changed, 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index d7dc8e8..88dbb89 100644
--- a/pms.cls
+++ b/pms.cls
@@ -62,8 +62,6 @@
     \RequirePackage[scaled=.90]{helvet}
     \setboolean{TEX4HT-HACKS}{false}
 \else
-    % Prevent implicit loading of eso-pic (by gitinfo2)
-    \@namedef{ver@eso-pic.sty}{9999/12/31}
     \setboolean{TEX4HT-HACKS}{true}
 \fi
 


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-06-28 10:46 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-06-28 10:46 UTC (permalink / raw
  To: gentoo-commits

commit:     039b450670c4b7c632c0c4b52f3f4dfed3e7ae15
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 28 21:37:35 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 28 09:01:27 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=039b4506

Correct the definition of ESYSROOT as EPREFIX isn't always applicable

It was originally envisaged (but not stated in PMS) that SYSROOT would
only ever need to equal / or ROOT as a distinct SYSROOT would have no
benefit. A check was added to Portage to ensure this held. Myself, the
ChromiumOS team, and others have since been caught out by this check
when trying to bootstrap brand new systems from scratch. You cannot
bootstrap with no headers at all! The check will therefore be adjusted
to merely ensure that SYSROOT is / when ROOT is /.

There were differing assumptions about how prefixes applied to the
above. EPREFIX is traditionally something the user sets so some
thought that it would be applied to SYSROOT, regardless of the
latter's value. In order to honor the rule about there being no
distinct SYSROOT, this would mean that if SYSROOT is / then EPREFIX
would have to match BROOT. Despite that limitation, ESYSROOT was
written into PMS with a fixed value of ${SYSROOT}${EPREFIX}. Being
somewhat unfamiliar with prefix at the time, I didn't realise that
this view didn't align with what I'd had in mind and it was only when
I came to need a distinct SYSROOT that I realised there was a problem.

crossdev toolchains are installed to ${EPREFIX}/usr/${CHOST} but have
no further prefix appended and packages subsequently installed with
cross-emerge are placed in this location by setting ROOT. Bug #642604
recently revealed that the build system's prefix was being erroneously
duplicated on the end but I have now fixed this.

What if we want to bootstrap a brand new prefixed system using the
crossdev system as SYSROOT? This is the distinct SYSROOT case. The
problem is that there is no distinct variable for SYSROOT's prefix
and, as already stated, ESYSROOT is always ${SYSROOT}${EPREFIX}. We
therefore cannot do it! If the crossdev prefix is blank then ROOT's
must be blank too.

I also never intended to have the aforementioned limitation where
EPREFIX must match BROOT when SYSROOT is /. These are both entirely
artificial restrictions.

So how should it work instead? We originally intended for SYSROOT to
equal either / or ROOT so I imagined the prefix would automatically be
adjusted to match the prefix applicable at the matching location,
namely BROOT or EPREFIX. This is obviously more flexible than forcing
it to match EPREFIX.

What about the distinct SYSROOT case? With no distinct variable, we
have no way to explicitly set a prefix but this is likely only needed
when bootstrapping against crossdev systems, which are unprefixed by
nature. We therefore simply assume that the prefix is blank in this
case.

What about the cross-prefix case? Here, SYSROOT matches both / and
ROOT so which prefix do we choose? The bootstrap-prefix.sh script sets
flags to build against the target prefix so EPREFIX is used in this
case. This happens to fit the current definition of ESYSROOT anyway.

Legitimate concerns have been raised about building for a system with
a different prefix to the one you're building against. The only
binaries that leak from SYSROOT to ROOT are static libraries. Headers
from SYSROOT will obviously also influence how ROOT's binaries are
built. It is entirely possible that SYSROOT's prefix may leak through
a header but grepping /usr/include on my own main system reveals only
a few paths from a small handful of packages. pkg-config files
invariably include paths but these are almost always used at build
time, not runtime. A differing prefix would likely only occur in cases
involving core packages like the libc and kernel headers anyway. Also
consider that we have never prevented this from happening in the
past. It has always been possible to do "EPREFIX=/foo emerge bar" from
some system with a different prefix or no prefix at all. All we're
doing here is including the prefix (if any) in the ESYSROOT variable.

Should this warrant a new EAPI? I don't think so. All existing usage
of ESYSROOT that I have seen still fits with this new definition and
most of that usage has come from me. We're not even changing what the
variable is used for, just loosening the constraints around what it
can be set to.

If you have doubts about whether this makes sense or actually works in
practise, I have experimented with a prefixed system using all the
different combinations I could think of, including cross-compiling,
and it all worked as expected. Keep in mind that ESYSROOT is not magic
and currently isn't used very much. As such, neither the toolchain nor
pkg-config will use this sysroot if you don't explicitly tell them
to. For the former, I find CC="${CHOST}-gcc --sysroot=${ESYSROOT}"
works well. For the latter, crossdev installs a cross-pkg-config
wrapper but it is completely lacking prefix support at the moment. I
have fixes waiting on this change.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
[Replaced "/" by "empty", reworded table cell in ebuild-env-vars.tex]
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 dependencies.tex    | 16 +++++++++++++++-
 ebuild-env-vars.tex |  6 +++---
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 3305b86..a641014 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -36,13 +36,27 @@
       \midrule
       Binary compatible with    & \t{CBUILD}      & \t{CHOST}          & \t{CHOST}         \\
       Base unprefixed path      & \t{/}           & \t{\$\{SYSROOT\}}  & \t{\$\{ROOT\}}    \\
-      Relevant offset-prefix    & \t{\$\{BROOT\}} & \t{\$\{EPREFIX\}}  & \t{\$\{EPREFIX\}} \\
+      Relevant offset-prefix    & \t{\$\{BROOT\}} & See table~\ref{tab:depend-prefix}
+                                                                       & \t{\$\{EPREFIX\}} \\
       Path combined with prefix & \t{\$\{BROOT\}} & \t{\$\{ESYSROOT\}} & \t{\$\{EROOT\}}   \\
       PM query command option   & \t{-b}          & \t{-d}             & \t{-r}            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
+\begin{centertable}{Prefix values for \t{DEPEND}}
+    \label{tab:depend-prefix}
+    \begin{tabular}{llll}
+      \toprule
+      If \t{SYSROOT} is:     & \t{\$\{ROOT\}}    & Empty, and \t{ROOT} is non-empty
+                                                                   & Other             \\
+      \midrule
+      Then offset-prefix is: & \t{\$\{EPREFIX\}} & \t{\$\{BROOT\}} & Empty             \\
+      And \t{ESYSROOT} is:   & \t{\$\{EROOT\}}   & \t{\$\{BROOT\}} & \t{\$\{SYSROOT\}} \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 There are three classes of dependencies supported by ebuilds:
 
 \begin{compactitem}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index ae8bd7d..117a19d 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -141,9 +141,9 @@ variable.
 \t{ESYSROOT} &
     Ditto &
     No &
-    Contains the concatenation of the paths in the \t{SYSROOT} and \t{EPREFIX} variables,
-    for convenience. See also the \t{EPREFIX} variable. Only for EAPIs listed
-    in table~\ref{tab:offset-env-vars-table} as supporting \t{ESYSROOT}. \\
+    Contains the concatenation of the \t{SYSROOT} path and applicable prefix value, as determined
+    by table~\ref{tab:depend-prefix}. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table}
+    as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
     Ditto &
     No &


^ permalink raw reply related	[flat|nested] 263+ messages in thread
* [gentoo-commits] proj/pms:master commit in: /
@ 2020-06-15 17:38 Ulrich Müller
  2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
  0 siblings, 1 reply; 263+ messages in thread
From: Ulrich Müller @ 2020-06-15 17:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ee879159b86b19cb72ccd708eb7a42de664f72c9
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 15 17:03:21 2020 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Jun 15 17:03:21 2020 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ee879159

Makefile: Remove workaround for list of tables.

This broke HTML output with TeX Live 2020. Without the workaround,
formatting within the list of tables is consistent, but the list of
tables is now inconsistent with the table of contents.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 Makefile | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/Makefile b/Makefile
index 612af4c..89fd7a2 100644
--- a/Makefile
+++ b/Makefile
@@ -51,10 +51,6 @@ pms.html: $(LATEXFILES) pms.bbl $(COMMITINFO)
 	@# replace ligatures by their component letters
 	LC_ALL=C sed -i "$$(printf 's/\\xef\\xac\\x8%s/%s/g;' \
 	  0 ff 1 fi 2 fl 3 ffi 4 ffl)" $@
-	@# work around irregularity in how links to longtables are
-	@# formatted in the List of Tables
-	LC_ALL=C sed -Ei '/<span class="lotToc" *>\B/{N;N;'\
-	's/([^>]*<a\s+href="[^"]+">)([0-9A-Z.]+)\s+/\2\1/;}' $@
 	@# remove redundant span elements
 	LC_ALL=C sed -Ei ':x;/<span(\s+[^>]*)?$$/{N;bx;};'\
 	':y;s,(<span\s+[^>]*>)([^<]*)</span>\1,\1\2,;ty' $@


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

end of thread, other threads:[~2021-06-13 19:15 UTC | newest]

Thread overview: 263+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-18  5:44 [gentoo-commits] proj/pms:eapi-8 commit in: / Ulrich Müller
  -- strict thread matches above, loose matches on Subject: below --
2021-06-13 19:15 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-05  8:57 Ulrich Müller
2021-06-03  8:55 Ulrich Müller
2021-06-03  8:55 Ulrich Müller
2021-06-03  8:55 Ulrich Müller
2021-06-03  8:21 Ulrich Müller
2021-06-03  8:21 Ulrich Müller
2021-06-03  8:21 Ulrich Müller
2021-06-03  8:21 Ulrich Müller
2021-06-02 19:44 Ulrich Müller
2021-06-02 19:44 Ulrich Müller
2021-06-02 19:44 Ulrich Müller
2021-06-02 19:44 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-27 19:27 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-26  7:13 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 19:39 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24 10:35 Ulrich Müller
2021-05-24  8:54 [gentoo-commits] proj/pms:retroactive " Ulrich Müller
2021-05-24 10:35 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 Ulrich Müller
2021-05-22  6:36 [gentoo-commits] proj/pms:retroactive " Ulrich Müller
2021-05-22  6:36 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-19 15:38 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-18  5:44 Ulrich Müller
2021-05-17 21:30 Ulrich Müller
2021-05-17 21:30 Ulrich Müller
2021-05-17 21:30 Ulrich Müller
2021-05-17 21:30 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 21:23 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 19:37 Ulrich Müller
2021-05-17 16:56 Ulrich Müller
2021-05-17 16:17 Ulrich Müller
2021-05-17 16:17 Ulrich Müller
2021-05-17 16:17 Ulrich Müller
2021-05-17 16:17 Ulrich Müller
2021-05-17 16:17 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-17 16:16 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-16 19:13 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-13 11:42 Ulrich Müller
2021-05-01 10:28 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2021-05-01 10:28 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2021-04-25 20:39 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2021-01-19 20:01 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-09-21 19:25 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-09-21 19:25 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-09-21 19:25 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-09-21 19:25 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-08-06 16:12 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-07-07  7:55 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-06-29 17:35 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-06-28 10:46 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller
2020-06-15 17:38 [gentoo-commits] proj/pms:master " Ulrich Müller
2021-05-13 11:42 ` [gentoo-commits] proj/pms:eapi-8 " Ulrich Müller

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