From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1367471-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 62FEC15808B
	for <garchives@archives.gentoo.org>; Mon, 14 Feb 2022 07:29:53 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 5D954E087E;
	Mon, 14 Feb 2022 07:29:51 +0000 (UTC)
Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 2AB1DE087E
	for <gentoo-commits@lists.gentoo.org>; Mon, 14 Feb 2022 07:29:51 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id D96C63431F1
	for <gentoo-commits@lists.gentoo.org>; Mon, 14 Feb 2022 07:29:49 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 226942F5
	for <gentoo-commits@lists.gentoo.org>; Mon, 14 Feb 2022 07:29:46 +0000 (UTC)
From: "Ulrich Müller" <ulm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" <ulm@gentoo.org>
Message-ID: <1644823768.a332194c099b2b367bf1d78b3aeee43c984cfb68.ulm@gentoo>
Subject: [gentoo-commits] proj/pms:eapi-9 commit in: /
X-VCS-Repository: proj/pms
X-VCS-Files: commands.tex dependencies.tex eapi-differences.tex eapis.tex ebuild-env-vars.tex ebuild-format.tex ebuild-functions.tex ebuild-vars.tex eclasses.tex merge.tex pkg-mgr-commands.tex pms.tex profile-variables.tex profiles.tex tree-layout.tex
X-VCS-Directories: /
X-VCS-Committer: ulm
X-VCS-Committer-Name: Ulrich Müller
X-VCS-Revision: a332194c099b2b367bf1d78b3aeee43c984cfb68
X-VCS-Branch: eapi-9
Date: Mon, 14 Feb 2022 07:29:46 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 4cdfcae9-3d60-4efb-896f-6fd5f88d0cad
X-Archives-Hash: b386e2765b80dad2dbeede06124bb627

commit:     a332194c099b2b367bf1d78b3aeee43c984cfb68
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  3 16:32:47 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Feb 14 07:29:28 2022 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=a332194c

Add an EAPI 9 identical to EAPI 8

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

 commands.tex          |   4 +-
 dependencies.tex      |  26 +++---
 eapi-differences.tex  | 231 +++++++++++++++++++++++++++-----------------------
 eapis.tex             |   4 +-
 ebuild-env-vars.tex   |  26 +++---
 ebuild-format.tex     |   4 +-
 ebuild-functions.tex  |  46 +++++-----
 ebuild-vars.tex       |  22 ++---
 eclasses.tex          |   4 +-
 merge.tex             |   6 +-
 pkg-mgr-commands.tex  | 100 +++++++++++-----------
 pms.tex               |   4 +-
 profile-variables.tex |   8 +-
 profiles.tex          |  12 +--
 tree-layout.tex       |   8 +-
 15 files changed, 260 insertions(+), 245 deletions(-)

diff --git a/commands.tex b/commands.tex
index d0ad87d..c6f4f36 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8              & Yes       & 2.7 \\
+      7, 8, 9           & Yes       & 2.7 \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/dependencies.tex b/dependencies.tex
index f14a08c..de6e752 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -88,7 +88,7 @@ with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \
 \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}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting additional dependency types}
     \label{tab:depend-table}
     \begin{tabular}{lll}
@@ -99,7 +99,7 @@ on them being available.
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  \\
       7                   & Yes & No  \\
-      8                   & Yes & Yes \\
+      8, 9                & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -155,7 +155,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
     \label{tab:at-most-one-of-table}
     \begin{tabular}{ll}
@@ -164,7 +164,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, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -204,7 +204,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Matching of empty dependency groups in EAPIs}
     \label{tab:empty-dep-groups}
     \begin{tabular}{ll}
@@ -214,7 +214,7 @@ being matched.
         are matched?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & Yes \\
-      7, 8                & No  \\
+      7, 8, 9             & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -250,7 +250,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs}
     \label{tab:slot-deps-table}
     \begin{tabular}{lll}
@@ -261,12 +261,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, 8        & Named and operator & Yes \\
+      5, 6, 7, 8, 9     & Named and operator & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{USE} dependencies}
     \label{tab:use-deps-table}
     \begin{tabular}{ll}
@@ -276,7 +276,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, 8     & 4-style \\
+      4, 5, 6, 7, 8, 9  & 4-style \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -310,7 +310,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Exclamation mark strengths for EAPIs}
     \label{tab:bang-strength-table}
     \begin{tabular}{lll}
@@ -319,8 +319,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, 8 & Weak        & Strong    \\
+      0, 1                   & Unspecified & Forbidden \\
+      2, 3, 4, 5, 6, 7, 8, 9 & Weak        & Strong    \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 900f415..c75404b 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
-\multicolumn{1}{c}{8} \\
+\multicolumn{1}{c}{8} &
+\multicolumn{1}{c}{9} \\
 \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, 4} &
 \multicolumn{1}{c}{5} &
 \multicolumn{1}{c}{6} &
 \multicolumn{1}{c}{7} &
-\multicolumn{1}{c}{8} \\
+\multicolumn{1}{c}{8} &
+\multicolumn{1}{c}{9} \\
 \midrule
 \endhead
 \midrule
@@ -42,104 +44,105 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-    Optional & Optional & Optional & No & No \\
+    Optional & Optional & Optional & No & No & No \\
 
 Stable use masking/forcing & \compactfeatureref{stablemask} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Bash version & \compactfeatureref{bash-version} &
-    3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
+    3.2 & 3.2 & 4.2 & 4.2 & 5.0 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REQUIRED_USE} & \compactfeatureref{required-use} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{PROPERTIES} & \compactfeatureref{properties} &
-    * & 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 \\
 
 Selective URI restrictions & \compactfeatureref{uri-restrict} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-    * & No & No & No & No \\
+    * & No & No & No & No & No \\
 
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{IDEPEND} & \compactfeatureref{idepend} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 Slot dependencies & \compactfeatureref{slot-deps} &
-    * & Named and Operator & 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 & Yes & Yes & Yes & Yes \\
+    No & Yes & 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 \\
 
 Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
-    Any & Any & Any & Any & Empty \\
+    Any & Any & Any & Any & Empty & Empty \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
-    * & Conditional & Conditional & Conditional & Conditional \\
+    * & Conditional & Conditional & Conditional & Conditional & Conditional \\
 
 \t{pkg_pretend} & \compactfeatureref{pkg-pretend} &
-    * & 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 & 6 & 6 & 8 \\
+    * & no-op & 6 & 6 & 8 & 8 \\
 
 \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 & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{src_install} style & \compactfeatureref{src-install} &
-    * & 4 & 6 & 6 & 6 \\
+    * & 4 & 6 & 6 & 6 & 6 \\
 
 \t{pkg_info} & \compactfeatureref{pkg-info} &
-    * & Both & Both & Both & Both \\
+    * & Both & Both & Both & Both & Both \\
 
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
     * &
@@ -149,123 +152,125 @@ 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} \\
 
 Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{AA} & \compactfeatureref{aa} &
-    * & No & No & No & No \\
+    * & No & No & No & No & No \\
 
 \t{PORTDIR} & \compactfeatureref{portdir} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 \t{ECLASSDIR} & \compactfeatureref{eclassdir} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{BROOT} & \compactfeatureref{broot} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{DESTTREE} & \compactfeatureref{desttree} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 \t{INSDESTTREE} & \compactfeatureref{insdesttree} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 \t{KV} & \compactfeatureref{kv} &
-    * & No & No & No & No \\
+    * & No & No & No & No & No \\
 
 \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{MERGE_TYPE} & \compactfeatureref{merge-type} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{ENV_UNSET} & \compactfeatureref{env-unset} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 Sane locale settings & \compactfeatureref{locale-settings} &
-    Undefined & Undefined & Yes & Yes & Yes \\
+    Undefined & Undefined & Yes & Yes & Yes & Yes \\
 
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} &
-    * & 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 & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 GNU \t{patch} version & \compactfeatureref{gnu-patch} &
-    Any & Any & Any & 2.7 & 2.7 \\
+    Any & Any & Any & 2.7 & 2.7 & 2.7 \\
 
 \t{find} is GNU? & \compactfeatureref{gnu-find} &
-    Undefined & Yes & Yes & Yes & Yes \\
+    Undefined & Yes & Yes & Yes & Yes & Yes \\
 
 Most utilities die & \compactfeatureref{die-on-failure} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{nonfatal} & \compactfeatureref{nonfatal} &
-    * & Yes & Yes & Function / external & Function / external \\
+    * & Yes & Yes & Function / external & Function / external & Function / external \\
 
 \t{dohard} & \compactfeatureref{banned-commands} &
-    * & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned & Banned \\
 
 \t{dosed} & \compactfeatureref{banned-commands} &
-    * & Banned & Banned & Banned & Banned \\
+    * & Banned & Banned & Banned & Banned & Banned \\
 
 \t{einstall} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Banned & Banned & Banned \\
+    Yes & Yes & Banned & Banned & Banned & Banned \\
 
 \t{dohtml} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{dolib} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{libopts} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Banned & Banned \\
+    Yes & Yes & Yes & Banned & Banned & Banned \\
 
 \t{useq} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{hasv} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & Banned \\
 
 \t{hasq} & \compactfeatureref{banned-commands} &
-    Yes & Yes & Yes & Yes & Banned \\
+    Yes & Yes & Yes & Yes & Banned & 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} \\
+    \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\
 
 Output commands use stdout & \compactfeatureref{output-no-stdout} &
-    Yes & Yes & Yes & No & No \\
+    Yes & Yes & Yes & No & No & No \\
 
 \t{eqawarn} & \compactfeatureref{eqawarn} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{die -n} & \compactfeatureref{nonfatal-die} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{die} in subshell & \compactfeatureref{subshell-die} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{eapply} & \compactfeatureref{eapply} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{eapply_user} & \compactfeatureref{eapply-user} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{econf} arguments & \compactfeatureref{econf-options} &
     * &
@@ -273,97 +278,99 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
     disable dependency tracking, disable silent rules, docdir, htmldir &
     disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot &
     disable dependency tracking, disable silent rules, disable static,
+    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 \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doheader} & \compactfeatureref{doheader} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{doins} handles symlinks & \compactfeatureref{doins} &
-    * & 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{/usr} & \t{/usr} \\
+    \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} & \t{/usr} \\
 
 \t{dosym -r} & \compactfeatureref{dosym-relative} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{insopts} affects misc.\ commands & \compactfeatureref{insopts} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 Controllable compression & \compactfeatureref{docompress} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{docompress} & \compactfeatureref{docompress} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 Controllable stripping & \compactfeatureref{dostrip} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{dostrip} & \compactfeatureref{dostrip} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{usev} second arg & \compactfeatureref{usev} &
-    No & No & No & No & Yes \\
+    No & No & No & No & Yes & Yes \\
 
 \t{use_with} empty third arg & \compactfeatureref{use-with} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{usex} & \compactfeatureref{usex} &
-    No & Yes & Yes & Yes & Yes \\
+    No & Yes & Yes & Yes & Yes & Yes \\
 
 \t{in_iuse} & \compactfeatureref{in-iuse} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{ver_*} commands & \compactfeatureref{ver-commands} &
-    No & No & No & Yes & Yes \\
+    No & No & No & Yes & Yes & Yes \\
 
 \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & 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 & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} &
-    Yes & Yes & Yes & Yes & No \\
+    Yes & Yes & Yes & Yes & No & No \\
 
 \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{default} function & \compactfeatureref{default-func} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \t{einstalldocs} & \compactfeatureref{einstalldocs} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 \t{get_libdir} & \compactfeatureref{get-libdir} &
-    No & No & Yes & Yes & Yes \\
+    No & No & Yes & Yes & Yes & Yes \\
 
 File mtimes preserved & \compactfeatureref{mtime-preserve} &
-    * & Yes & Yes & Yes & Yes \\
+    * & Yes & Yes & Yes & Yes & Yes \\
 
 \end{longtable}
 \end{landscape}
@@ -545,7 +552,15 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{8}
+\section{EAPI 9}
+
+EAPI 9 is EAPI 8 with the following changes:
+
+\begin{compactitem}
+\item None
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{9}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 

diff --git a/eapis.tex b/eapis.tex
index a6c8109..fd0420c 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -17,8 +17,8 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr
 
 \section{Defined EAPIs}
 
-\ChangeWhenAddingAnEAPI{8}
-This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'.
+\ChangeWhenAddingAnEAPI{9}
+This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', `8', and~`9'.
 EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions
 to its predecessor.
 

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index a55c366..58df6bd 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -263,7 +263,7 @@ variable.
 \end{longtable}
 \end{landscape}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting various added env variables}
     \label{tab:added-env-vars-table}
     \begin{tabular}{lllllll}
@@ -279,12 +279,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, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8, 9           & Yes & Yes & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting various removed env variables}
     \label{tab:removed-env-vars-table}
     \begin{tabular}{lllllll}
@@ -299,12 +299,12 @@ variable.
       \midrule
       0, 1, 2, 3        & Yes & Yes & Yes & Yes & Yes & Yes \\
       4, 5, 6           & No  & No  & Yes & Yes & Yes & Yes \\
-      7, 8              & No  & No  & No  & No  & No  & No  \\
+      7, 8, 9           & No  & No  & No  & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting offset-prefix env variables}
     \label{tab:offset-env-vars-table}
     \begin{tabular}{lllll}
@@ -317,7 +317,7 @@ variable.
       \midrule
       0, 1, 2           & No  & No  & No  & No  \\
       3, 4, 5, 6        & Yes & Yes & Yes & No  \\
-      7, 8              & Yes & Yes & Yes & Yes \\
+      7, 8, 9           & Yes & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -341,7 +341,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Locale settings for EAPIs}
     \label{tab:locale-settings}
     \begin{tabular}{ll}
@@ -350,7 +350,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, 8           & Yes       \\
+      6, 7, 8, 9        & Yes       \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -436,7 +436,7 @@ contain at most one value.
 \subsection{Offset-prefix variables}
 \label{sec:offset-vars}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting offset-prefix}
     \label{tab:offset-support-table}
     \begin{tabular}{ll}
@@ -444,8 +444,8 @@ contain at most one value.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports offset-prefix?}}\\
       \midrule
-      0, 1, 2           & No  \\
-      3, 4, 5, 6, 7, 8  & Yes \\
+      0, 1, 2             & No  \\
+      3, 4, 5, 6, 7, 8, 9 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -476,7 +476,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Variables that always or never end with a trailing slash}
     \label{tab:trailing-slash}
     \begin{tabular}{lll}
@@ -488,7 +488,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, 8                & never  & never  \\
+      7, 8, 9             & never  & never  \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-format.tex b/ebuild-format.tex
index 25ba28e..84d27b7 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -18,7 +18,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Bash version and options}
     \label{tab:bash-version}
     \begin{tabular}{lll}
@@ -29,7 +29,7 @@ output or standard error, or modify the state of the system in any way.
       \midrule
       0, 1, 2, 3, 4, 5  & 3.2 & No  \\
       6, 7              & 4.2 & Yes \\
-      8                 & 5.0 & Yes \\
+      8, 9              & 5.0 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 0c745c3..c878439 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -46,7 +46,7 @@ fallback to \t{WORKDIR} is used:
     executed, are in \t{DEFINED_PHASES}.
 \end{compactitem}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs}
     \label{tab:function-dirs}
     \begin{tabular}{ll}
@@ -55,12 +55,12 @@ fallback to \t{WORKDIR} is used:
       \multicolumn{1}{c}{\textbf{Initial working directory?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & Any   \\
-      8                       & Empty \\
+      8, 9                    & Empty \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks}
     \label{tab:s-fallback-table}
     \begin{tabular}{ll}
@@ -69,7 +69,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, 8     & Conditional error \\
+      4, 5, 6, 7, 8, 9  & Conditional error \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -91,7 +91,7 @@ before the next phase is executed.
 
 \t{pkg_pretend} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{pkg_pretend}}
     \label{tab:pkg-pretend-table}
     \begin{tabular}{ll}
@@ -100,7 +100,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, 8     & Yes \\
+      4, 5, 6, 7, 8, 9  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -149,7 +149,7 @@ 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.
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{src_prepare} support and behaviour for EAPIs}
     \label{tab:src-prepare-table}
     \begin{tabular}{lll}
@@ -161,7 +161,7 @@ the \t{src_prepare} function is a no-op.
       0, 1              & No  & Not applicable \\
       2, 3, 4, 5        & Yes & no-op          \\
       6, 7              & Yes & 6              \\
-      8                 & Yes & 8              \\
+      8, 9              & Yes & 8              \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -206,7 +206,7 @@ The \t{src_configure} function configures the package's build environment. The d
 implementation used when the ebuild lacks the \t{src_configure} function shall behave as in
 listing~\ref{lst:src-configure-2}.
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{src_configure}}
     \label{tab:src-configure-table}
     \begin{tabular}{ll}
@@ -214,8 +214,8 @@ listing~\ref{lst:src-configure-2}.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Supports \t{src_configure}?}} \\
       \midrule
-      0, 1                & No  \\
-      2, 3, 4, 5, 6, 7, 8 & Yes \\
+      0, 1                   & No  \\
+      2, 3, 4, 5, 6, 7, 8, 9 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -244,7 +244,7 @@ implementation used when the ebuild lacks the \t{src_prepare} function shall beh
 listing~\ref{lst:src-compile-0}, listing~\ref{lst:src-compile-1} or listing~\ref{lst:src-compile-2},
 respectively.
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{src_compile} behaviour for EAPIs}
     \label{tab:src-compile-table}
     \begin{tabular}{ll}
@@ -252,9 +252,9 @@ respectively.
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{1}{c}{\textbf{Format}} \\
       \midrule
-      0                   & 0 \\
-      1                   & 1 \\
-      2, 3, 4, 5, 6, 7, 8 & 2 \\
+      0                      & 0 \\
+      1                      & 1 \\
+      2, 3, 4, 5, 6, 7, 8, 9 & 2 \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -317,7 +317,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{src_test} behaviour for EAPIs}
     \label{tab:src-test-table}
     \begin{tabular}{ll}
@@ -326,7 +326,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, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -346,7 +346,7 @@ 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}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{src_install} behaviour for EAPIs}
     \label{tab:src-install-table}
     \begin{tabular}{ll}
@@ -356,7 +356,7 @@ is a no-op.
       \midrule
       0, 1, 2, 3        & no-op \\
       4, 5              & 4     \\
-      6, 7, 8           & 6     \\
+      6, 7, 8, 9        & 6     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -449,7 +449,7 @@ that dependencies may not be installed.
 
 \t{pkg_info} must not write to the filesystem.
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{pkg_info} on non-installed packages}
     \label{tab:pkg-info-table}
     \begin{tabular}{ll}
@@ -458,7 +458,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, 8     & Yes \\
+      4, 5, 6, 7, 8, 9  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -480,7 +480,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}
     \label{tab:default-phase-function-table}
     \begin{tabular}{l P{26em}}
@@ -491,7 +491,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, 8     & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
+      4, 5, 6, 7, 8, 9  & \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 d07cca4..bbd4930 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -89,7 +89,7 @@ Ebuilds may define any of the following variables:
 \item[IDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{IUSE} defaults}
     \label{tab:iuse-defaults-table}
     \begin{tabular}{ll}
@@ -97,13 +97,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, 8 & Yes \\
+      0                         & No  \\
+      1, 2, 3, 4, 5, 6, 7, 8, 9 & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting various ebuild-defined variables}
     \label{tab:optional-vars-table}
     \begin{tabular}{lll}
@@ -113,7 +113,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, 8     & Yes        & Yes \\
+      4, 5, 6, 7, 8, 9  & Yes        & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -176,7 +176,7 @@ selective URI restrictions, the URI protocol can be prefixed by an additional \t
 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}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions}
     \label{tab:uri-arrows-table}
     \begin{tabular}{lll}
@@ -187,7 +187,7 @@ restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for
       \midrule
       0, 1              & No  & No  \\
       2, 3, 4, 5, 6, 7  & Yes & No  \\
-      8                 & Yes & Yes \\
+      8, 9              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -272,7 +272,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs with \t{RDEPEND=DEPEND} default}
     \label{tab:rdepend-depend-table}
     \begin{tabular}{ll}
@@ -281,7 +281,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, 8     & No  \\
+      4, 5, 6, 7, 8, 9  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -316,7 +316,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{DEFINED_PHASES}}
     \label{tab:defined-phases-table}
     \begin{tabular}{ll}
@@ -325,7 +325,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, 8     & Yes        \\
+      4, 5, 6, 7, 8, 9  & Yes        \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/eclasses.tex b/eclasses.tex
index e23dcd8..3f8f653 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -42,7 +42,7 @@ the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars}
 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}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses}
     \label{tab:accumulate-vars}
     \begin{tabular}{lll}
@@ -52,7 +52,7 @@ the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied.
       \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & No  & No  \\
-      8                       & Yes & Yes \\
+      8, 9                    & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

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

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7f57539..dae13d4 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -32,7 +32,7 @@ The following commands affect this behaviour:
     option and in EAPIs supporting this option, see table~\ref{tab:die-properties}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPI command failure behaviour}
     \label{tab:commands-die-table}
     \begin{tabular}{llll}
@@ -44,7 +44,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, 8              & Aborts        & Yes & Yes \\
+      7, 8, 9           & Aborts        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -55,7 +55,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{8}
+\ChangeWhenAddingAnEAPI{9}  % two places
 \begin{centertable}{Banned commands}
     \label{tab:banned-commands-table}
     \begin{tabular}{lllllll}
@@ -73,7 +73,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, 8              & Yes & Yes & Yes & Yes & Yes & Yes \\
+      7, 8, 9           & Yes & Yes & Yes & Yes & Yes & Yes \\
       \midrule
       \multicolumn{1}{c}{\textbf{EAPI}} &
       \multicolumn{6}{c}{\textbf{Command banned?}} \\
@@ -83,7 +83,7 @@ called, the package manager must abort the build process indicating an error.
       \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & No  & No  & No  & & & \\
-      8                       & Yes & Yes & Yes & & & \\
+      8, 9                    & Yes & Yes & Yes & & & \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -121,7 +121,7 @@ are given, \t{-r} is assumed.
     otherwise, prints an empty string. The exit code is unspecified.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Package manager query command options supported by EAPIs}
     \label{tab:pm-query-options}
     \begin{tabular}{lllll}
@@ -134,7 +134,7 @@ are given, \t{-r} is assumed.
       \midrule
       0, 1, 2, 3, 4     & No  & No  & No  & No  \\
       5, 6              & Yes & No  & No  & No  \\
-      7, 8              & No  & Yes & Yes & Yes \\
+      7, 8, 9           & No  & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -171,7 +171,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Output commands for EAPIs}
     \label{tab:output-commands}
     \begin{tabular}{lll}
@@ -181,7 +181,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, 8                & No  & Yes \\
+      7, 8, 9             & No  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -203,7 +203,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Properties of \t{die} and \t{assert} commands in EAPIs}
     \label{tab:die-properties}
     \begin{tabular}{lll}
@@ -216,7 +216,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, 8              & Yes & Yes \\
+      7, 8, 9           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -280,7 +280,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{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Patch commands for EAPIs}
     \label{tab:patch-commands}
     \begin{tabular}{lll}
@@ -290,7 +290,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, 8           & Yes & Yes \\
+      6, 7, 8, 9        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -345,7 +345,7 @@ commands once the current phase function has returned.
         \t{-{}-enable-static} occurs in the output of \t{configure -{}-help}.
     \end{itemize}
 
-    \ChangeWhenAddingAnEAPI{8}
+    \ChangeWhenAddingAnEAPI{9}  % two places
     \begin{centertable}{Extra \t{econf} arguments for EAPIs}
         \label{tab:econf-options-table}
         \begin{tabular}{lllll}
@@ -359,7 +359,7 @@ commands once the current phase function has returned.
           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 \\
+          8, 9              & Yes & Yes & Yes & Yes \\
           \midrule
           \multicolumn{1}{c}{\textbf{EAPI}} &
           \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} &
@@ -369,7 +369,7 @@ commands once the current phase function has returned.
           0, 1, 2, 3        & No  & No  & No  & \\
           4                 & Yes & No  & No  & \\
           5, 6, 7           & Yes & Yes & No  & \\
-          8                 & Yes & Yes & Yes & \\
+          8, 9              & Yes & Yes & Yes & \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -670,7 +670,7 @@ dosym_relative_path() {
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{dodoc -r}}
     \label{tab:dodoc-table}
     \begin{tabular}{ll}
@@ -679,12 +679,12 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{Supports \t{dodoc -r}?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      4, 5, 6, 7, 8, 9  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{doheader} and \t{newheader}}
     \label{tab:doheader-table}
     \begin{tabular}{ll}
@@ -693,12 +693,12 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{Supports \t{doheader} and \t{newheader}?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting symlinks for \t{doins}}
     \label{tab:doins-table}
     \begin{tabular}{ll}
@@ -707,12 +707,12 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{\t{doins} supports symlinks?}} \\
       \midrule
       0, 1, 2, 3        & No  \\
-      4, 5, 6, 7, 8     & Yes \\
+      4, 5, 6, 7, 8, 9  & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{doman} language support options for EAPIs}
     \label{tab:doman-table}
     \begin{tabular}{lll}
@@ -723,12 +723,12 @@ dosym_relative_path() {
       \midrule
       0, 1              & No  & Not applicable \\
       2, 3              & Yes & No             \\
-      4, 5, 6, 7, 8     & Yes & Yes            \\
+      4, 5, 6, 7, 8, 9  & Yes & Yes            \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting stdin for \t{new*} commands}
     \label{tab:newfoo-stdin-table}
     \begin{tabular}{ll}
@@ -737,12 +737,12 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{\t{new*} can read from stdin?}} \\
       \midrule
       0, 1, 2, 3, 4     & No  \\
-      5, 6, 7, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{domo} destination path in EAPIs}
     \label{tab:domo-path}
     \begin{tabular}{ll}
@@ -751,12 +751,12 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{Destination path}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & \t{\$\{DESTTREE\}/share/locale} \\
-      7, 8                & \t{/usr/share/locale} \\
+      7, 8, 9             & \t{/usr/share/locale} \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{dosym -r}}
     \label{tab:dosym-r}
     \begin{tabular}{ll}
@@ -765,7 +765,7 @@ dosym_relative_path() {
       \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & No  \\
-      8                       & Yes \\
+      8, 9                    & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -807,7 +807,7 @@ function has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Commands respecting \t{insopts} for EAPIs}
     \label{tab:insopts-commands}
     \begin{tabular}{lllll}
@@ -819,12 +819,12 @@ function has returned.
       \multicolumn{1}{c}{\textbf{\t{doheader}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes & Yes & Yes \\
-      8                       & Yes & No  & No  & No  \\
+      8, 9                    & Yes & No  & No  & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Commands respecting \t{exeopts} for EAPIs}
     \label{tab:exeopts-commands}
     \begin{tabular}{lll}
@@ -834,7 +834,7 @@ function has returned.
       \multicolumn{1}{c}{\textbf{\t{doinitd}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & Yes & Yes \\
-      8                       & Yes & No  \\
+      8, 9                    & Yes & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -911,7 +911,7 @@ any of these functions from any other phase.
     supporting \t{dostrip}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Commands controlling manipulation of files in the staging area in EAPIs}
     \label{tab:staging-area-commands}
     \begin{tabular}{lll}
@@ -922,7 +922,7 @@ any of these functions from any other phase.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6           & Yes & No  \\
-      7, 8              & Yes & Yes \\
+      7, 8, 9           & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -969,7 +969,7 @@ table~\ref{tab:use-list-strictness}.
     table~\ref{tab:use-list-functions} as supporting \t{in_iuse}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPI behaviour for use queries not in \t{IUSE_EFFECTIVE}}
     \label{tab:use-list-strictness}
     \begin{tabular}{ll}
@@ -978,12 +978,12 @@ table~\ref{tab:use-list-strictness}.
       \multicolumn{1}{c}{\textbf{Behaviour}} \\
       \midrule
       0, 1, 2, 3        & Undefined \\
-      4, 5, 6, 7, 8     & Error     \\
+      4, 5, 6, 7, 8, 9  & Error     \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs}
     \label{tab:use-list-args}
     \begin{tabular}{lll}
@@ -995,12 +995,12 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3        & No  & No  \\
       4, 5, 6, 7        & No  & Yes \\
-      8                 & Yes & Yes \\
+      8, 9              & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting \t{usex} and \t{in_iuse}}
     \label{tab:use-list-functions}
     \begin{tabular}{lll}
@@ -1011,7 +1011,7 @@ table~\ref{tab:use-list-strictness}.
       \midrule
       0, 1, 2, 3, 4     & No  & No  \\
       5                 & Yes & No  \\
-      6, 7, 8           & Yes & Yes \\
+      6, 7, 8, 9        & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1096,7 +1096,7 @@ the second, inclusively.
     section~\ref{sec:version-spec}. Comparison is done using algorithm~\ref{alg:version-comparison}.
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{EAPIs supporting version manipulation commands}
     \label{tab:version-commands}
     \begin{tabular}{llll}
@@ -1107,7 +1107,7 @@ the second, inclusively.
       \multicolumn{1}{c}{\textbf{\t{ver_test}?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6 & No  & No  & No  \\
-      7, 8                & Yes & Yes & Yes \\
+      7, 8, 9             & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -1184,7 +1184,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{8}
+    \ChangeWhenAddingAnEAPI{9}
     \begin{centertable}{\t{unpack} behaviour for EAPIs}
         \label{tab:unpack-behaviour}
         \begin{tabular}{lll}
@@ -1194,12 +1194,12 @@ has returned.
           \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
           \midrule
           0, 1, 2, 3, 4, 5  & No  & No  \\
-          6, 7, 8           & Yes & Yes \\
+          6, 7, 8, 9        & Yes & Yes \\
           \bottomrule
         \end{tabular}
     \end{centertable}
 
-    \ChangeWhenAddingAnEAPI{8}
+    \ChangeWhenAddingAnEAPI{9}
     \begin{centertable}{\t{unpack} extensions for EAPIs}
         \label{tab:unpack-extensions-table}
         \begin{tabular}{llllllll}
@@ -1215,7 +1215,7 @@ has returned.
           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  \\
+          8, 9              & Yes & Yes & Yes & No  & No  & No  \\
           \bottomrule
         \end{tabular}
     \end{centertable}
@@ -1283,7 +1283,7 @@ has returned.
 
 \end{description}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Misc commands for EAPIs}
     \label{tab:misc-commands}
     \begin{tabular}{llll}
@@ -1295,7 +1295,7 @@ has returned.
       \midrule
       0, 1              & No  & No  & No  \\
       2, 3, 4, 5        & Yes & No  & No  \\
-      6, 7, 8           & Yes & Yes & Yes \\
+      6, 7, 8, 9        & Yes & Yes & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

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

diff --git a/profile-variables.tex b/profile-variables.tex
index ba40bf4..0f2dc3c 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
 
-\ChangeWhenAddingAnEAPI{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8                & Yes \\
+      7, 8, 9             & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/profiles.tex b/profiles.tex
index 30da81b..8d8226a 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8                & Yes \\
+      7, 8, 9             & 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8                & No         \\
+      7, 8, 9             & 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8        & Yes \\
+      5, 6, 7, 8, 9     & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}

diff --git a/tree-layout.tex b/tree-layout.tex
index aa04d3d..b988f6e 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{8}
+\ChangeWhenAddingAnEAPI{9}
 \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, 8                & Yes \\
+      7, 8, 9             & Yes \\
       \bottomrule
     \end{tabular}
 \end{centertable}
@@ -233,7 +233,7 @@ 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}
+\ChangeWhenAddingAnEAPI{9}
 \begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}
     \label{tab:updates-filenames}
     \begin{tabular}{ll}
@@ -242,7 +242,7 @@ that slot move in the future.
       \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\
       \midrule
       0, 1, 2, 3, 4, 5, 6, 7  & Yes \\
-      8                       & No  \\
+      8, 9                    & No  \\
       \bottomrule
     \end{tabular}
 \end{centertable}