commit:     ede65b5d136640575479c9c9a3162ee4d2be953e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  3 20:11:28 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Jan  9 18:13:45 2023 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=ede65b5d

ebuild-env-vars.tex: D is available as a variable in all src_* phases

The D variable has been described as a "phase-specific variable" since
the spec's early draft stage (SVN r19). However, Portage would always
define the variable in all src_* phases, with the restriction that the
directory would exist only in src_install().

In reality, not all ebuilds comply with the spec. For example, Perl
eclasses use D in src_configure(), i.e. they rely on Portage behaviour.

Therefore, lift this unnecessary and somewhat artificial restriction
and make the variable (but not the directory) available outside the
install phase.

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

 ebuild-env-vars.tex | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index a55c366..db693ab 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -179,24 +179,27 @@ variable.
     See also~\ref{sec:offset-vars}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
     as supporting \t{EPREFIX}. \\
 \t{D} &
-    \t{src_install} &
-    No &
+    \t{src_*} &
+    Yes &
     Contains the full path to the image directory into which the package 
should be installed.
+    Ebuilds must not attempt to access the directory in \t{src_*} phases other 
than \t{src_install}.
     The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
     \\
 \t{D} (continued) &
     \t{pkg_preinst}, \t{pkg_postinst} &
-    Yes &
+    Yes\footnote{Consistent across \t{pkg_preinst} and \t{pkg_postinst}, but 
may not necessarily
+    have the same value that it had in the \t{src_*} phases.} &
     Contains the full path to the image that is about to be or has just been 
merged.
     The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
     \\
 \t{ED} &
-    \t{src_install}, \t{pkg_preinst}, \t{pkg_postinst} &
+    \t{src_*}, \t{pkg_preinst}, \t{pkg_postinst} &
     See \t{D} &
     Contains the concatenation of the paths in the \t{D} 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{ED}\@. The presence 
of a trailing slash
-    is EAPI dependent as listed in table~\ref{tab:trailing-slash}. \\
+    table~\ref{tab:offset-env-vars-table} as supporting \t{ED}\@. Ebuilds must 
not attempt to
+    access the directory in \t{src_*} phases other than \t{src_install}. The 
presence of a trailing
+    slash is EAPI dependent as listed in table~\ref{tab:trailing-slash}. \\
 \t{DESTTREE} &
     \t{src_install} &
     No &

Reply via email to