commit:     12f1e30e82a0ecedd91e77edfbb519366edb17b0
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 13 07:49:00 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Jan 13 08:04:54 2023 +0000
URL:        https://gitweb.gentoo.org/proj/policy-guide.git/commit/?id=12f1e30e

ebuild-format: Restrict D to src_install and pkg_preinst

This used to be specified in PMS (see commit ede65b5 in proj/pms.git),
but makes more sense as a tree policy.

Also exclude pkg_postinst, because nothing in the Gentoo repository
appears to use D there, and in the postinst phase the directory will
be empty of files anyway.

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

 ebuild-format.rst | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/ebuild-format.rst b/ebuild-format.rst
index 041c088..a381e07 100644
--- a/ebuild-format.rst
+++ b/ebuild-format.rst
@@ -126,3 +126,21 @@ allowed.
 *Rationale*: since license names do not contain dynamic parts (such as
 package versions), using variables there has little advantage.  On the
 other hand, variables reduce the usefulness of plain tools such as grep.
+
+
+.. index:: d; variable
+
+D must be used only in src_install and pkg_preinst
+--------------------------------------------------
+:PG: 0107
+:Source: QA
+:Reported: no
+
+The ``D`` and ``ED`` variables must be used only in the ``src_install``
+and ``pkg_preinst`` phase functions.  Exceptions to this policy can be
+granted by the QA team.
+
+*Rationale*: using ``D`` in other phases (e.g. ``src_configure``) is
+error-prone and may lead to the path being embedded in files of the
+installed image.  In addition, the directory pointed to by ``${D}``
+does not exist in other phases.

Reply via email to