summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2019-03-23 21:27:04 +0100
committerUlrich Müller <ulm@gentoo.org>2019-03-24 16:56:04 +0100
commite0e98974e025ee7e71e1a62c81957008cec69dd7 (patch)
tree39a213e48c3d60280c89d23ba6822b3c30a55425 /ebuild-vars.tex
parentMakefile: Change encoding of HTML file to UTF-8. (diff)
downloadpms-e0e98974e025ee7e71e1a62c81957008cec69dd7.tar.gz
pms-e0e98974e025ee7e71e1a62c81957008cec69dd7.tar.bz2
pms-e0e98974e025ee7e71e1a62c81957008cec69dd7.zip
Move some subsections out of the "Dependencies" chapter.
SRC_URI, REQUIRED_USE, PROPERTIES, and RESTRICT are ebuild-defined variables. Move them to that chapter. Add reference to tab:uri-arrows-table in SRC_URI section. Otherwise, no change of wording. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'ebuild-vars.tex')
-rw-r--r--ebuild-vars.tex81
1 files changed, 81 insertions, 0 deletions
diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 497bd77..bdd0f6b 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -145,6 +145,45 @@ EAPI, the package manager must make sure that the \t{EAPI} value obtained by sou
with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if
these values are different.
+\subsection{SRC_URI}
+\label{sec:src-uri-behaviour}
+
+All filename components that are enabled (i.\,e.\ not inside a use-conditional block that is not
+matched) in \t{SRC_URI} must be available in the \t{DISTDIR} directory. In addition, these
+components are used to make the \t{A} and \t{AA} variables.
+
+If a component contains a full URI with protocol, that download location must be used. Package
+managers may also consult mirrors for their files.
+
+The special \t{mirror://} protocol must be supported. See section~\ref{sec:thirdpartymirrors} for
+mirror details.
+
+If a simple filename rather than a full URI is provided, the package manager can only use mirrors
+to download the file.
+
+The \t{RESTRICT} metadata key can be used to impose additional restrictions upon downloading---see
+section~\ref{sec:restrict} for details.
+
+\featurelabel{src-uri-arrows} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting
+arrows, if an arrow is used, the filename used when saving to \t{DISTDIR} shall instead be the name
+on the right of the arrow. When consulting mirrors (except for those explicitly listed on the left
+of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested
+instead of the filename in the URI.
+
+\ChangeWhenAddingAnEAPI{7}
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
+ \label{tab:uri-arrows-table}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{1}{c}{\textbf{EAPI}} &
+ \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\
+ \midrule
+ 0, 1 & No \\
+ 2, 3, 4, 5, 6, 7 & Yes \\
+ \bottomrule
+ \end{tabular}
+\end{centertable}
+
\subsection{Keywords}
\label{sec:keywords}
@@ -166,6 +205,48 @@ unlisted architectures.
An empty \t{KEYWORDS} variable indicates uncertain functionality on any architecture.
+\subsection{USE state constraints}
+\label{sec:required-use}
+
+\t{REQUIRED_USE} contains a list of assertions that must be met by the configuration of \t{USE}
+flags to be valid for this ebuild. In order to be matched, a \t{USE} flag in a terminal element
+must be enabled (or disabled if it has an exclamation mark prefix).
+
+If the package manager encounters a package version where \t{REQUIRED_USE} assertions are not met,
+it must treat this package version as if it was masked. No phase functions must be called.
+
+It is an error for a flag to be used if it is not included in \t{IUSE_EFFECTIVE}.
+
+\subsection{Properties}
+\label{sec:properties}
+
+The following tokens are permitted inside \t{PROPERTIES}:
+
+\begin{description}
+\item[interactive] The package may require interaction with the user via the tty.
+\end{description}
+
+Ebuilds may not rely upon any token being supported.
+
+\subsection{Restrict}
+\label{sec:restrict}
+
+The following tokens are permitted inside \t{RESTRICT}:
+
+\begin{description}
+\item[mirror] The package's \t{SRC_URI} entries may not be mirrored, and mirrors should not be
+ checked when fetching.
+\item[fetch] The package's \t{SRC_URI} entries may not be downloaded automatically. If entries are
+ not available, \t{pkg_nofetch} is called. Implies \t{mirror}.
+\item[strip] No stripping of debug symbols from files to be installed may be performed. In EAPIs
+ listed in table~\ref{tab:staging-area-commands} as supporting controllable stripping, this
+ behaviour may be altered by the \t{dostrip} command.
+\item[userpriv] The package manager may not drop root privileges when building the package.
+\item[test] The \t{src_test} phase must not be run.
+\end{description}
+
+Package managers may recognise other tokens, but ebuilds may not rely upon them being supported.
+
\subsection{RDEPEND value}
\label{sec:rdepend-depend}