commit: cb006611cf537a182aa3f4326c63c39016776438
Author: ingenarel (NeoJesus) <ingenarel_neojesus <AT> disroot <DOT> org>
AuthorDate: Sun Feb 1 08:02:54 2026 +0000
Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Feb 7 08:12:06 2026 +0000
URL: https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=cb006611
ebuild-writing/variables: add QA control variables section
Signed-off-by: ingenarel (NeoJesus) <ingenarel_neojesus <AT> disroot.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>
ebuild-writing/variables/text.xml | 158 ++++++++++++++++++++++++++++++++++++++
1 file changed, 158 insertions(+)
diff --git a/ebuild-writing/variables/text.xml
b/ebuild-writing/variables/text.xml
index 67cc0d4..b10320b 100644
--- a/ebuild-writing/variables/text.xml
+++ b/ebuild-writing/variables/text.xml
@@ -1062,6 +1062,164 @@ rule, as it is intended to be passed to the compiler
driver rather than
</tr>
</table>
+</body>
+</section>
+
+<section>
+<title>QA control variables</title>
+<body>
+
+<p>
+Several QA variables are provided which allow an ebuild to manipulate some of
+the QA checks performed by portage. Use of these variables in ebuilds should
+be kept to an absolute minimum otherwise they defeat the purpose of the QA
+checks, and their use is subject to agreement of the QA team. They are
+primarily intended for use by ebuilds that install closed-source binary
+objects that cannot be altered.
+</p>
+
+<note>
+Objects that violate these rules may fail on some architectures.
+</note>
+
+<table>
+ <tr>
+ <th>Variable</th>
+ <th>Purpose</th>
+ </tr>
+ <tr>
+ <ti><c>QA_AM_MAINTAINER_MODE</c></ti>
+ <ti>
+ A list of lines containing automake missing <c>--run</c> commands. The
+ lines may contain regular expressions with escape-quoted special
+ characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_CONFIG_IMPL_DECL_SKIP</c></ti>
+ <ti>
+ A list of function names to ignore when checking for
+ <c>-Wimplicit-function-declaration</c> in configure logs. This should
only
+ be used for false positives.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_CONFIGURE_OPTIONS</c></ti>
+ <ti>
+ A list of configure options which trigger warnings about unrecognized
+ options. The options may contain regular expressions with escape-quoted
+ special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_DESKTOP_FILE</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of desktop files
+ which should not be validated. The paths may contain regular expressions
+ with escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_MULTILIB_PATHS</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of files that
+ should be ignored for the multilib-strict checks. The paths may contain
+ regular expressions with escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_PKGCONFIG_VERSION</c></ti>
+ <ti>
+ If set, then portage verifies that all pkg-config .pc files have a
+ <c>Version</c> field with the value of <c>QA_PKGCONFIG_VERSION</c>. For
+ example, set <c>QA_PKGCONFIG_VERSION=${PV}</c> if your package is
expected
+ to install all pkg-config .pc files with a <c>Version</c> field
containing
+ <c>${PV}</c> .
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_PREBUILT</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of files that are
+ pre-built binaries. Paths listed here will be appended to each of the
+ <c>QA_*</c> variables listed below. The paths may contain fnmatch-like
+ patterns which will be internally translated to regular expressions for
+ the <c>QA_*</c> variables that support regular expressions instead of
+ fnmatch patterns. The translation mechanism simply replaces <c>*</c> with
+ <c>.*</c>.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_DT_NEEDED</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of shared
libraries
+ that lack NEEDED entries. The paths may contain regular expressions with
+ escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_EXECSTACK</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of objects that
+ require executable stack in order to run. The paths may contain fnmatch
+ patterns. This variable is intended to be used on objects that truly need
+ executable stack (i.e. not those marked to need it which in fact do not).
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_FLAGS_IGNORED</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory,
+ of files that do not contain <c>.GCC.command.line</c> sections or contain
+ <c>.hash</c> sections. This variable is intended to be used on files of
+ binary packages which ignore <c>CFLAGS</c>, <c>CXXFLAGS</c>,
+ <c>FFLAGS</c>, <c>FCFLAGS</c>, and <c>LDFLAGS</c> variables.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_PRESTRIPPED</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of files that
+ contain pre-stripped binaries. The paths may contain regular expressions
+ with escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_SONAME</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of shared
libraries
+ that lack <c>SONAME</c>s. The paths may contain regular expressions with
+ escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_SONAME_NO_SYMLINK</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of shared
libraries
+ that have <c>SONAME</c>s but should not have a corresponding
<c>SONAME</c>
+ symlink in the same directory. The paths may contain regular expressions
+ with escape-quoted special characters.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_TEXTRELS</c></ti>
+ <ti>
+ This variable can be set to a list of file paths, relative to the image
+ directory, of files that contain text relocations that cannot be
+ eliminated. The paths may contain fnmatch patterns. This variable is
+ intended to be used on closed-source binary objects that cannot be
+ altered.
+ </ti>
+ </tr>
+ <tr>
+ <ti><c>QA_WX_LOAD</c></ti>
+ <ti>
+ A list of file paths, relative to the image directory, of files that
+ contain writable and executable segments. These are rare. The paths may
+ contain fnmatch patterns.
+ </ti>
+ </tr>
+</table>
</body>
</section>
</chapter>