From: "Ulrich Müller" <ulm@gentoo.org>
To: gentoo-pms@lists.gentoo.org
Cc: "Ulrich Müller" <ulm@gentoo.org>
Subject: [gentoo-pms] [PATCH 10/21] EAPI 8 has an empty working directory in pkg_* phases
Date: Thu, 27 May 2021 22:25:58 +0200 [thread overview]
Message-ID: <20210527202609.6445-11-ulm@gentoo.org> (raw)
In-Reply-To: <20210527202609.6445-1-ulm@gentoo.org>
https://bugs.gentoo.org/595030
Signed-off-by: Ulrich Müller <ulm@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}
--
2.31.1
next prev parent reply other threads:[~2021-05-27 20:27 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-27 20:25 [gentoo-pms] EAPI 8 draft for review Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 01/21] Add an EAPI 8 identical to EAPI 7 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 02/21] EAPI feature table: Consolidate EAPIs 0 to 4 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 03/21] eapis.tex: Merge redundant descriptions Ulrich Müller
2021-06-05 10:04 ` [gentoo-pms] [PATCH 03/21 v2] " Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 04/21] Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 05/21] EAPI 8 has less strict naming rules in the updates directory Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 06/21] EAPI 8: Bash version is 5.0 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 07/21] Ban nameref variables from exported and default scope Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 08/21] EAPI 8 has selective URI restrictions Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 09/21] EAPI 8 has install-time dependencies (IDEPEND) Ulrich Müller
2021-05-27 20:25 ` Ulrich Müller [this message]
2021-05-27 20:25 ` [gentoo-pms] [PATCH 11/21] Rearrange listings of phase functions Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 12/21] EAPI 8: Default src_prepare doesn't accept options in PATCHES Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 13/21] EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 14/21] EAPI 8: useq, hasv and hasq are banned Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 15/21] EAPI 8 has econf passing --datarootdir Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 16/21] EAPI 8: econf adds --disable-static Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 17/21] Split the econf options table because it has become too wide Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 18/21] EAPI 8 has dosym -r Ulrich Müller
2021-06-03 8:24 ` [gentoo-pms] [PATCH 18/21 v2] " Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 19/21] EAPI 8: insopts and exeopts affect only doins and doexe Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 20/21] EAPI 8: usev has an optional second argument Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 21/21] EAPI 8 removes .7z, .rar, .lha unpack support Ulrich Müller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210527202609.6445-11-ulm@gentoo.org \
--to=ulm@gentoo.org \
--cc=gentoo-pms@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox