public inbox for gentoo-pms@lists.gentoo.org
 help / color / mirror / Atom feed
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



  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