From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 70DBE138334 for ; Thu, 28 Mar 2019 07:23:07 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4862EE0B58; Thu, 28 Mar 2019 07:23:06 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EE46CE0B4C for ; Thu, 28 Mar 2019 07:23:05 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CC55F335C7A for ; Thu, 28 Mar 2019 07:23:03 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 73F7B520 for ; Thu, 28 Mar 2019 07:23:02 +0000 (UTC) From: "Ulrich Müller" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" Message-ID: <1553442964.e0e98974e025ee7e71e1a62c81957008cec69dd7.ulm@gentoo> Subject: [gentoo-commits] proj/pms:master commit in: / X-VCS-Repository: proj/pms X-VCS-Files: dependencies.tex eapi-differences.tex ebuild-vars.tex X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: e0e98974e025ee7e71e1a62c81957008cec69dd7 X-VCS-Branch: master Date: Thu, 28 Mar 2019 07:23:02 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f732fa74-3cdc-4351-8c96-2f7a1a03cf82 X-Archives-Hash: 6fe391a147ffc02e07ae6c744e3c8ba0 commit: e0e98974e025ee7e71e1a62c81957008cec69dd7 Author: Ulrich Müller gentoo org> AuthorDate: Sat Mar 23 20:27:04 2019 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Sun Mar 24 15:56:04 2019 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=e0e98974 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 gentoo.org> dependencies.tex | 79 -------------------------------------------------- eapi-differences.tex | 10 +++---- ebuild-vars.tex | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 84 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 299974e..a38b61e 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -132,20 +132,6 @@ be surrounded on both sides by whitespace, except at the start and end of the st In particular, note that whitespace is not optional. -\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} - \ChangeWhenAddingAnEAPI{7} \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups} \label{tab:at-most-one-of-table} @@ -397,71 +383,6 @@ would not have to be part of \t{IUSE}.} It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the flag in \t{IUSE_EFFECTIVE}. -\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{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{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{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 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. - % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : %%% Local Variables: diff --git a/eapi-differences.tex b/eapi-differences.tex index a2d04f8..4c22473 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -68,6 +68,9 @@ Bash version & \compactfeatureref{bash-version} & \t{PROPERTIES} & \compactfeatureref{properties} & Optionally & Yes & Yes & Yes & Yes \\ +\t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & + * & Yes & Yes & Yes & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & Yes & No & No & No & No \\ @@ -84,9 +87,6 @@ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & Yes & Yes & Yes & Yes & No \\ -\t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & - * & Yes & Yes & Yes & Yes \\ - Slot dependencies & \compactfeatureref{slot-deps} & * & Named & Named and Operator & Named and Operator & Named and Operator \\ @@ -343,9 +343,9 @@ EAPI 1 is EAPI 0 with the following changes: EAPI 2 is EAPI 1 with the following changes: \begin{compactitem} +\item \t{SRC_URI} arrows, \featureref{src-uri-arrows}. \item Use dependencies, \featureref{use-deps}. \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. -\item \t{SRC_URI} arrows, \featureref{src-uri-arrows}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. \item Different \t{src_compile} implementation, \featureref{src-compile-2}. @@ -370,8 +370,8 @@ EAPI 3 is EAPI 2 with the following changes: EAPI 4 is EAPI 3 with the following changes: \begin{compactitem} -\item \t{PROPERTIES} support is mandatory, \featureref{properties}. \item \t{REQUIRED_USE}, \featureref{required-use}. +\item \t{PROPERTIES} support is mandatory, \featureref{properties}. \item \t{RDEPEND=DEPEND} no longer done, \featureref{rdepend-depend}. \item \t{DEFINED_PHASES} support is mandatory, \featureref{defined-phases}. \item Use dependency defaults, \featureref{use-dep-defaults}. 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}