[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 3f08956fc81ce208c56bf91c78276250660afeb4 Author: Ulrich Müller gentoo org> AuthorDate: Sun Jun 13 19:12:50 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sun Jun 13 19:12:50 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3f08956f Cheat sheet: EAPI 8 approval date Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index 451ab85..0d28251 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -518,7 +518,7 @@ differences between these previous EAPIs. See \featureref{banned-commands}. \end{description} -\section{EAPI 8} +\section{EAPI 8 (2021-06-13)} \label{sec:cs:eapi8} \subsection{Additions/Changes} \label{sec:cs:eapi8-additions}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5e135c7e0bbcd87e4bbb854048c21852c87de4b1 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 19:30:41 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5e135c7e Split the econf options table because it has become too wide Signed-off-by: Ulrich Müller gentoo.org> pkg-mgr-commands.tex | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index e74f730..817b52b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -346,23 +346,28 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{} +\begin{tabular}{l} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & - \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & - \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No & No \\ - 6 & Yes & Yes & No & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3, 4, 5 & No & No & No & No \\ + 6 & No & Yes & Yes & No \\ + 7 & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} & + \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\ + \midrule + 0, 1, 2, 3& No & No & No & \\ + 4 & Yes & No & No & \\ + 5, 6, 7 & Yes & Yes & No & \\ + 8 & Yes & Yes & Yes & \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: d73d6d6a5b9bbff4ec3611b9d34a116c4be98a1f Author: Ulrich Müller gentoo org> AuthorDate: Thu May 27 18:30:24 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:43 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=d73d6d6a Cheat sheet: Update for EAPI 8 Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 62 - 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index 82602f2..451ab85 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -15,7 +15,7 @@ \usepackage[local]{gitinfo2} \newcommand{\code}[1]{\texttt{#1}} % This should reflect the latest approved EAPI version -\newcommand{\version}{7.0} +\newcommand{\version}{8.0} \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}} \renewcommand{\familydefault}{\sfdefault} \urlstyle{sf} @@ -517,6 +517,66 @@ differences between these previous EAPIs. used as replacement. See \featureref{banned-commands}. \end{description} + +\section{EAPI 8} +\label{sec:cs:eapi8} +\subsection{Additions/Changes} +\label{sec:cs:eapi8-additions} +\begin{description} +\item[\code{profiles/updates} directory] Arbitrary filenames +are now allowed, instead of strict naming by quarters +(like \code{2Q-2021}). See \featureref{updates-filenames}. +\item[Bash version] Ebuilds can use features of Bash version 5.0 +(was 4.2 before). See \featureref{bash-version}. +\item[Selective fetch/mirror restriction] In \code{SRC_URI}, +adding a \code{fetch+} or \code{mirror+} prefix to an individual +URI means that the file may be fetched or mirrored. This overrides +the corresponding global settings in the \code{RESTRICT} variable. +See \featureref{uri-restrict}. +\item[\code{IDEPEND}] This variable specifies install-time +dependencies on packages used in (e.\,g.) \code{pkg_postinst}. +In a cross-compilation environment, these are dependencies for +native tools (\code{CBUILD}). See \featureref{idepend}. +\item[\code{pkg_*} phases] The initial working directory is +guaranteed to be empty. See \featureref{phase-function-dir}. +\item[\code{src_prepare}] Items in the \code{PATCHES} variable are +interpreted as files, even if their name begins with a hyphen. +See \featureref{src-prepare}. +\item[\code{PROPERTIES} and \code{RESTRICT}] These variables are +accumulated across the ebuild and inherited eclasses, like +\code{IUSE}, \code{REQUIRED\_USE}, and \code{*DEPEND} were before. +See \featureref{accumulate-vars}. +\item[\code{econf}] If supported, options +\code{-{}-disable-static} and +\code{-{}-datarootdir=\$\{EPREFIX\}/usr/share} are passed +to configure, respectively. See \featureref{econf-options}. +\item[\code{dosym}] With the new option \code{-r}, an absolute +path specified for the link target will be converted to a path +relative to the link location. See \featureref{dosym-relative}. +\item[\code{insopts}] Commands \code{doconfd}, \code{doenvd}, +\code{doheader} install files with fixed mode 0644, i.\,e., +they are no longer affected by \code{insopts}. +See \featureref{insopts}. +\item[\code{exeopts}] Command \code{doinitd} installs files +with fixed mode 0755, i.\,e., it is no longer affected by +\code{exeopts}. See \featureref{exeopts}. +\item[\code{usev}] This helper has an optional second argument +now: \code{usev} \emph{ [true]}. If the flag is set, +outputs \emph{[true]}, or the flag's name if called with only one +argument. Otherwise outputs nothing. See \featureref{usev}. +\end{description} +\subsection{Removals/Bans} +\label{sec:cs:eapi8-removalsbans} +\begin{description} +\item[\code{useq}] No longer allowed. Use regular \code{use} as +a drop-in replacement. See \featureref{banned-commands}. +\item[\code{hasv} and \code{hasq}] No longer allowed. Regular +\code{has} should be used instead. +See \featureref{banned-commands}. +\item[\code{unpack}] No longer supports unpacking of 7-Zip, RAR, +and LHA archives. See \featureref{unpack-extensions}. +\end{description} + \end{document} % vim: set filetype=tex fileencoding=utf8 et tw=70 spell spelllang=en :
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: c2847df81db51bc1402aa9a4339d53e5a0179208 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:41 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c2847df8 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d263cbc..5609de6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index af45e62..92447d3 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: c1d561c12f727bf475d3f6f06009a1c924cbc4a2 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 15:45:42 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c1d561c1 EAPI 8: econf adds --disable-static Bug: https://bugs.gentoo.org/744871 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 +++- pkg-mgr-commands.tex | 18 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 32f4a66..bbb8957 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, disable static, +datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7909bdd..e74f730 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -338,27 +338,31 @@ commands once the current phase function has returned. \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed if the string \t{-{}-disable-silent-rules} occurs in the output of \t{configure -{}-help}. +\item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table} +as using it. This option will only be passed if the string \t{-{}-disable-static} occurs +in the output of \t{configure -{}-help}. \end{itemize} \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{lll} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No \\ - 6 & Yes & Yes & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No & No \\ + 6 & Yes & Yes & No & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 537053475a6b9f17ff61cc4af4923bd980213242 Author: Ulrich Müller gentoo org> AuthorDate: Wed May 26 20:12:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:42 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=53705347 Cheat sheet: Remove EAPI 5 to make room for EAPI 8 Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 140 ++-- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index fb62827..82602f2 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -77,7 +77,7 @@ \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}} \end{abstract} -\section{EAPIs 0, 1, 2, 3, and 4} +\section{EAPIs 0, 1, 2, 3, 4, and 5} \label{sec:cs:eapi0-2} Omitted for lack of space. See version~5.0 of this document for differences between these previous EAPIs. @@ -257,75 +257,75 @@ differences between these previous EAPIs. % any more. See \featureref{aa} and \featureref{kv}. % \end{description} -\section{EAPI 5 (2012-09-20)} -\label{sec:cs:eapi5} -\subsection{Additions/Changes} -\label{sec:cs:eapi5-additions} -\begin{description} -\item[Sub-slots] The \code{SLOT} variable and slot dependencies -may contain an optional sub-slot part that follows the regular -slot, delimited by a \code{/} character; for example -\code{2/2.30}. The sub-slot is used to represent cases in which -an upgrade to a new version of a package with a different sub-slot -may require dependent packages to be rebuilt. If the sub-slot is -not specified in \code{SLOT}, it defaults to the regular slot. -See \featureref{sub-slot}. -\item[Slot operator dependencies] Package dependencies can specify -one of the following operators as a suffix, which will affect -updates of runtime dependencies: -\begin{description} -\item[\code{:*}] Any slot value is acceptable. The package -will not break when its dependency is updated. -\item[\code{:=}] Any slot value is acceptable, but the package -can break when its dependency is updated to a different slot -(or sub-slot). -\end{description} -See \featureref{slot-operator-deps}. -\item[Profile \code{IUSE} injection] Apart from the USE flags -explicitly listed in \code{IUSE}, additional flags can be -implicitly provided by profiles. -See \featureref{profile-iuse-inject}. -\item[At-most-one-of groups] In \code{REQUIRED_USE} you can use -"\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag -out of many. -See \featureref{at-most-one-of}. -\item[Parallel tests] The default for \code{src_test} runs -\code{emake} without \code{-j1} now. -See \featureref{parallel-tests}. -\item[\code{econf} changes] The \code{econf} function now always -passes \code{-{}-disable-silent-rules} to \code{configure}. -See \featureref{econf-options}. -\item[\code{has_version} and \code{best_version} changes] -The two helpers support a \code{-{}-host-root} option that causes -the query to apply to the host root instead of \code{ROOT}. -See~\featureref{pm-query-options}. -\item[\code{usex}] Usage for this helper function is -\code{usex} \emph{ [true1] [false1] [true2] [false2]}. -If the USE flag is set, outputs \emph{[true1][true2]} -(defaults to \code{yes}), otherwise outputs -\emph{[false1][false2]} (defaults to \code{no}). -See \featureref{usex}. -\item[\code{doheader} and \code{newheader}] These new helper -functions install the given header file(s) into -\code{/usr/include}. The \code{-r} option enables recursion for -\code{doheader}, similar to \code{doins}. -See \featureref{doheader}. -\item[\code{new*} standard input] The \code{newins} etc.\ commands -read from standard input if the first argument is \code{-} -(a hyphen). -See \featureref{newfoo-stdin}. -\item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to -\code{EBUILD_PHASE}, but contains the name of the current ebuild -function. -See \featureref{ebuild-phase-func}. -\item[Stable use masking/forcing] New files -\code{use.stable.\allowbreak\{mask,force\}} and -\code{package.use.stable.\allowbreak\{mask,force\}} -are supported in profile directories. They are similar to their -non-\code{stable} counterparts, but act only on packages that -would be merged due to a stable keyword. -See \featureref{stablemask}. -\end{description} +% \section{EAPI 5 (2012-09-20)} +% \label{sec:cs:eapi5} +% \subsection{Additions/Changes} +% \label{sec:cs:eapi5-additions} +% \begin{description} +% \item[Sub-slots] The \code{SLOT} variable and slot dependencies +% may contain an optional sub-slot part that follows the regular +% slot, delimited by a \code{/} character; for example +%
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5567f230848b143218f44ba03393bf810e0b4e54 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:40 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5567f230 EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8cfc442..d263cbc 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 4e43c69..af45e62 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5001b56490c821aa8e77f67f9e9bb62e804fa129 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 09:46:26 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:38 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5001b564 EAPI 8 has econf passing --datarootdir Bug: https://bugs.gentoo.org/651958 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- pkg-mgr-commands.tex | 17 +++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a2a74b8..32f4a66 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. +\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index c56e592..7909bdd 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -312,6 +312,9 @@ commands once the current phase function has returned. \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man} \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info} \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share} +\item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in +table~\ref{tab:econf-options-table} as using it. This option will only be passed if the +string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}. \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc} \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib} \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in @@ -340,20 +343,22 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No \\ - 4 & Yes & No & No & No & No \\ - 5 & Yes & Yes & No & No & No \\ - 6 & Yes & Yes & Yes & Yes & No \\ - 7, 8 & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No \\ + 6 & Yes & Yes & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 7ecef5fa690f1fcff2c615e4ea757d629a7bbdcf Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:41 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7ecef5fa EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 5609de6..900f415 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 92447d3..04a8ac4 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 42fdc187b717120717e55d9b1bee06a764e55b5d Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:40 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=42fdc187 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index bbb8957..8cfc442 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..4e43c69 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, the first parameter (the link target) is +converted from an absolute path to a path relative to the the second parameter (the link name). +The algorithm must return a result identical to the one returned by the function in +listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. +Specifying option \t{-r} together with a relative path as first (target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 70b5befa05d872c1aed119ab4e864d98d0a360d2 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 12:05:17 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:38 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=70b5befa EAPI 8: useq, hasv and hasq are banned Bug: https://bugs.gentoo.org/199722 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 11 +++ pkg-mgr-commands.tex | 16 2 files changed, 27 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index c7af2b3..a2a74b8 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} & \t{libopts} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Banned & Banned \\ +\t{useq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + Query command options & \compactfeatureref{pm-query-options} & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\ @@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes: \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 71d1e89..c56e592 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error. 4, 5 & Yes & Yes & No & No & No & No \\ 6 & Yes & Yes & Yes & No & No & No \\ 7, 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{6}{c}{\textbf{Command banned?}} \\ + \multicolumn{1}{c}{} & + \multicolumn{1}{c}{\textbf{\t{useq}}} & + \multicolumn{1}{c}{\textbf{\t{hasv}}} & + \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No & No & & & \\ + 8 & Yes & Yes & Yes & & & \\ \bottomrule \end{tabular} \end{centertable} @@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}. \item[usev] The same as \t{use}, but also prints the flag name if the condition is met. \item[useq] Deprecated synonym for \t{use}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value @@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value. \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent arguments, false otherwise. Guaranteed quiet. \item[hasv] The same as \t{has}, but also prints the first argument if found. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[hasq] Deprecated synonym for \t{has}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \end{description} \subsection{Version manipulation and comparison commands}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: bd0dab0f2c91aa4b1840bff77a34d83c3424d90c Author: Ulrich Müller gentoo org> AuthorDate: Wed May 26 20:11:32 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:42 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=bd0dab0f Cheat sheet: Fix cross references Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index 83ddfa7..fb62827 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -348,10 +348,10 @@ differences between these previous EAPIs. which applies patches from the \code{PATCHES} variable with the new \code{eapply} command, and user-provided patches with \code{eapply_user}. -See \featureref{src-prepare-6}. +See \featureref{src-prepare}. \item[\code{src_install}] The default implementation uses the new \code{einstalldocs} function for installing documentation. -See \featureref{src-install-6}. +See \featureref{src-install}. \item[\code{nonfatal die}] When \code{die} or \code{assert} are called under the \code{nonfatal} command and with the \code{-n} option, they will not abort the build process but return with an
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: a3693aec2011a666a437e3cea777012ac26fa1b2 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 19:06:02 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:37 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a3693aec EAPI 8: Default src_prepare doesn't accept options in PATCHES Also simplify array detection by using the @a operator in parameter expansion. This feature was introduced in bash-4.4. Bug: https://bugs.gentoo.org/752486 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-functions.tex | 21 ++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 842e09f..aeddb6e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & -* & no-op & 6 & 6 & 6 \\ +* & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index b224e0b..0c745c3 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -142,9 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in -listing~\ref{lst:src-prepare-6}. +listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op. \midrule 0, 1 & No & Not applicable \\ 2, 3, 4, 5& Yes & no-op \\ - 6, 7, 8 & Yes & 6 \\ + 6, 7 & Yes & 6 \\ + 8 & Yes & 8 \\ \bottomrule \end{tabular} \end{centertable} @@ -179,6 +180,20 @@ src_prepare() { \end{verbatim} \end{listing} +\begin{listing}[H] +\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8} +\begin{verbatim} +src_prepare() { +if [[ ${PATCHES@a} == *a* ]]; then +[[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}" +else +[[ -n ${PATCHES} ]] && eapply -- ${PATCHES} +fi +eapply_user +} +\end{verbatim} +\end{listing} + \subsection{src_configure} \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5b8055e40ac6698dad463f5df553a9c17928abc9 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:08:50 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:31 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5b8055e4 Add an EAPI 8 identical to EAPI 7 Signed-off-by: Ulrich Müller gentoo.org> commands.tex | 4 +- dependencies.tex | 26 +++ eapi-differences.tex | 201 +++--- eapis.tex | 3 +- ebuild-env-vars.tex | 24 +++--- ebuild-format.tex | 4 +- ebuild-functions.tex | 42 +-- ebuild-vars.tex | 24 +++--- merge.tex | 4 +- pkg-mgr-commands.tex | 84 ++--- pms.tex | 4 +- profile-variables.tex | 8 +- profiles.tex | 12 +-- tree-layout.tex | 4 +- 14 files changed, 230 insertions(+), 214 deletions(-) diff --git a/commands.tex b/commands.tex index 799a20c..d0ad87d 100644 --- a/commands.tex +++ b/commands.tex @@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment: table~\ref{tab:system-commands-table} as requiring GNU find. \end{compactitem} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{System commands for EAPIs} \label{tab:system-commands-table} \begin{tabular}{lll} @@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment: \midrule 0, 1, 2, 3, 4 & Undefined & Any \\ 5, 6 & Yes & Any \\ - 7 & Yes & 2.7 \\ + 7, 8 & Yes & 2.7 \\ \bottomrule \end{tabular} \end{centertable} diff --git a/dependencies.tex b/dependencies.tex index 67855f5..3ef6fa6 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} \begin{tabular}{ll} @@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ \midrule 0, 1, 2, 3, 4, 5, 6 & No \\ - 7 & Yes \\ + 7, 8& Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -146,7 +146,7 @@ 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} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups} \label{tab:at-most-one-of-table} \begin{tabular}{ll} @@ -155,7 +155,7 @@ In particular, note that whitespace is not optional. \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\ \midrule 0, 1, 2, 3, 4 & No \\ - 5, 6, 7 & Yes \\ + 5, 6, 7, 8& Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched. In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as being matched. -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{Matching of empty dependency groups in EAPIs} \label{tab:empty-dep-groups} \begin{tabular}{ll} @@ -205,7 +205,7 @@ being matched. are matched?}} \\ \midrule 0, 1, 2, 3, 4, 5, 6 & Yes \\ - 7 & No \\ + 7, 8& No \\ \bottomrule \end{tabular} \end{centertable} @@ -241,7 +241,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u \note{Order is important. The slot restriction must come before use dependencies.} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs} \label{tab:slot-deps-table} \begin{tabular}{lll} @@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u \midrule 0 & No & No \\ 1, 2, 3, 4& Named only & No \\ - 5, 6, 7 & Named and operator & Yes \\ + 5, 6, 7, 8& Named and operator & Yes \\ \bottomrule \end{tabular} \end{centertable} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting \t{USE} dependencies} \label{tab:use-deps-table} \begin{tabular}{ll} @@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u \midrule 0, 1 & No \\ 2, 3
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 6603c18c63797076bf96cd28f603d1f6a4591f1b Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 14:37:05 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:36 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=6603c18c Rearrange listings of phase functions Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++-- ebuild-functions.tex | 164 --- 2 files changed, 82 insertions(+), 92 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 08c4e9f..842e09f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 00fd259..b224e0b 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack \t{src_prepare}, it may also apply patches and set up the package's build system for further use. The initial working directory must be \t{WORKDIR}, and the default implementation used when -the ebuild lacks the \t{src_unpack} function shall behave as: +the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}. \begin{listing}[H] -\caption{\t{src_unpack}} +\caption{\t{src_unpack}} \label{lst:src-unpack-0} \begin{verbatim} src_unpack() { if [[ -n ${A} ]]; then @@ -142,23 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format -6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave -as: - -\begin{listing}[H] -\caption{\t{src_prepare}, format~6} -\begin{verbatim} -src_prepare() { -if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then -[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" -else -[[ -n ${PATCHES} ]] && eapply ${PATCHES} -fi -eapply_user -} -\end{verbatim} -\end{listing} +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in +listing~\ref{lst:src-prepare-6}. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 687c810ecada6066baceca316039a92bd3961fbd Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 09:45:56 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:36 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=687c810e EAPI 8 has an empty working directory in pkg_* phases https://bugs.gentoo.org/595030 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-functions.tex | 26 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f3af563..08c4e9f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & +Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & * & Conditional & Conditional & Conditional & Conditional \\ @@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. +\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index ffdea16..00fd259 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions. \subsection{Initial working directories} \label{sec:s-to-workdir-fallback} -Some functions may assume that their initial working directory is set to a particular location; -these are noted below. If no initial working directory is mandated, it may be set to anything and -the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the -initial working directory for any phase is a trusted location that may only be written to by a -privileged user and group. +\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is +set to a particular location; these are noted below. If no initial working directory is mandated, +then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set +to a dedicated directory that is empty at the start of the function and may be read-only. For other +EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it. +The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location +that may only be written to by a privileged user and group. \featurelabel{s-workdir-fallback} Some functions are described as having an initial working directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in @@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used: executed, are in \t{DEFINED_PHASES}. \end{compactitem} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs} +\label{tab:function-dirs} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Initial working directory?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Any \\ + 8 & Empty \\ + \bottomrule +\end{tabular} +\end{centertable} + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 3b55b43b16c79e90af9cd99e9a71e469b988922a Author: Ulrich Müller gentoo org> AuthorDate: Sun Nov 5 18:04:28 2017 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:34 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3b55b43b EAPI 8: Bash version is 5.0 Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-format.tex| 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index b89ede0..a334881 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} & No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & No & No & Yes & Yes & Yes \\ @@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. +\item Bash version is 5.0, \featureref{bash-version}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-format.tex b/ebuild-format.tex index c2224bf..4929ba4 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way. \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\ \midrule 0, 1, 2, 3, 4, 5 & 3.2 & No \\ - 6, 7, 8 & 4.2 & Yes \\ + 6, 7 & 4.2 & Yes \\ + 8 & 5.0 & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 3f93cb5890b64d642a68aafa3997abe9dda46a10 Author: Ulrich Müller gentoo org> AuthorDate: Tue May 25 15:59:13 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:34 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3f93cb58 Ban nameref variables from exported and default scope Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> ebuild-format.tex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ebuild-format.tex b/ebuild-format.tex index 4929ba4..25ba28e 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t option of bash is set in the global scope of ebuilds. If set, failed pattern matches during filename expansion result in an error when the ebuild is being sourced. +Name reference variables (introduced in bash version~4.3) must not be used, except in local scope. + The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions} for specific information), and must not call any external programs, write anything to standard
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 11ffdd5a32b9bed132486efb939997b8749fbf9d Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:35 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=11ffdd5a EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 + eapi-differences.tex | 4 ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 3ef6fa6..f14a08c 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{} \toprule -& \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with& \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}}\\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8& Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, -\t{PDEPEND}. +\t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. -Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. +Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, +\t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & +No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 52a242e2f7923f3bee9978ffb14741fa25da9c14 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:46:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:37 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=52a242e2 EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Bug: https://bugs.gentoo.org/701132 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 eclasses.tex | 27 ++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aeddb6e..c7af2b3 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & +No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & * & No & No & No & No \\ @@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index 7f4ba67..a92ce1f 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} -variables are handled specially when set by an eclass. They must be accumulated across eclasses, -appending the value set by each eclass to the resulting value after the previous one is loaded. -Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, -this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, +\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be +accumulated across eclasses, appending the value set by each eclass to the resulting value after +the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating +\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined +value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after +the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. + +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses} +\label{tab:accumulate-vars} +\begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No \\ + 8 & Yes & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} \section{EXPORT_FUNCTIONS}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 2efc05522c75de6dd8e28425515b0501f8559da7 Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 18:23:57 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:35 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2efc0552 EAPI 8 has selective URI restrictions Bug: https://bugs.gentoo.org/371413 Signed-off-by: Michał Górny gentoo.org> [Shortened "selective-uri-restrict" label to make it fit in the margin] Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-vars.tex | 18 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a334881..22f99e2 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} & \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & * & Yes & Yes & Yes & Yes \\ +Selective URI restrictions & \compactfeatureref{uri-restrict} & +No & No & No & No & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & * & No & No & No & No \\ @@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \item Bash version is 5.0, \featureref{bash-version}. +\item Selective fetch/mirror restriction, \featureref{uri-restrict}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 040b02a..f6b1c26 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly 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. +\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting +selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or +\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch +restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror +restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI. + \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} +\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions} \label{tab:uri-arrows-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} & + \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\ \midrule - 0, 1& No \\ - 2, 3, 4, 5, 6, 7, 8 & Yes \\ + 0, 1 & No & No \\ + 2, 3, 4, 5, 6, 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 1bf3b37024383409a54792088a4f84ffb2738c69 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:17:19 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:32 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1bf3b370 EAPI feature table: Consolidate EAPIs 0 to 4 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 191 +-- 1 file changed, 93 insertions(+), 98 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d5513c3..38109ec 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -1,23 +1,22 @@ \chapter{Feature Availability by EAPI} \note{This chapter is informative and for convenience only. Refer to the main text for specifics. -For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table +For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition of this document for a complete table of previous EAPIs.} % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5 \ChangeWhenAddingAnEAPI{8} \begin{landscape} -\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} +\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} \caption{Features in EAPIs}\\ \toprule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.} \midrule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.} \endlastfoot \t{package.mask} directory & \compactfeatureref{package-mask-dir} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ Profile files as directories & \compactfeatureref{profile-file-dirs} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{package.provided} & \compactfeatureref{package-provided} & -Optional & Optional & Optional & Optional & No & No \\ +Optional & Optional & Optional & No & No \\ Stable use masking/forcing & \compactfeatureref{stablemask} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & -No & No & No & Yes & Yes & Yes \\ +No & No & Yes & Yes & Yes \\ \t{IUSE} defaults & \compactfeatureref{iuse-defaults} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{REQUIRED_USE} & \compactfeatureref{required-use} & -No & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{PROPERTIES} & \compactfeatureref{properties} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & -Yes & No & No & No & No & No \\ +* & No & No & No & No \\ \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{BDEPEND} & \compactfeatureref{bdepend} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & -Yes & Yes & Yes & Yes & No & No \\ +Yes & Yes & Yes & No & No \\ Slot dependencies & \compactfeatureref{slot-deps} & -* & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ +* & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ Sub-slots & \compactfeatureref{sub-slot} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Use dependencies & \compactfeatureref{use-deps} & -* & 4-style & 4-style & 4-style & 4-style & 4-style \\ +
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 03aa761dea35f98a221270274b14f7e97e0ffa6f Author: Ulrich Müller gentoo org> AuthorDate: Sat Jan 16 12:00:11 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:33 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=03aa761d Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0 Acked-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 4 ++-- pms.tex | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index d4abb1a..83ddfa7 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -73,8 +73,8 @@ % to the original author or the PMS team. This work is released under the Creative Commons -Attribution-Share Alike 3.0 Licence.% -\footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}} +Attribution-ShareAlike 4.0 International Licence.% +\footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}} \end{abstract} \section{EAPIs 0, 1, 2, 3, and 4} diff --git a/pms.tex b/pms.tex index f54b1a0..8bbd037 100644 --- a/pms.tex +++ b/pms.tex @@ -34,8 +34,9 @@ \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned by their respective authors, and may have been changed substantially before inclusion. -This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The -full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}. +This work is released under the Creative Commons Attribution-ShareAlike 4.0 International +Licence. To~view a copy of this licence, visit +\url{https://creativecommons.org/licenses/by-sa/4.0/}. \commitinfo }
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 2044073eecade023bb335c5b44a49845e34d4404 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:19:32 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:32 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2044073e eapis.tex: Merge redundant descriptions Drop footnote about EAPI kdebuild-1. Signed-off-by: Ulrich Müller gentoo.org> eapis.tex | 21 - 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/eapis.tex b/eapis.tex index 746decf..a6c8109 100644 --- a/eapis.tex +++ b/eapis.tex @@ -17,26 +17,13 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr \section{Defined EAPIs} -The following EAPIs are defined by this specification: - \ChangeWhenAddingAnEAPI{8} -\begin{compactdesc} -\item[0] The `original' base EAPI. -\item[1] EAPI `1' contains a number of extensions to EAPI `0'. -\item[2] EAPI `2' contains a number of extensions to EAPI `1'. -\item[3] EAPI `3' contains a number of extensions to EAPI `2'. -\item[4] EAPI `4' contains a number of extensions to EAPI `3'. -\item[5] EAPI `5' contains a number of extensions to EAPI `4'. -\item[6] EAPI `6' contains a number of extensions to EAPI `5'. -\item[7] EAPI `7' contains a number of extensions to EAPI `6'. -\item[8] EAPI `8' contains a number of extensions to EAPI `7'. -\end{compactdesc} +This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'. +EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions +to its predecessor. Except where explicitly noted, everything in this specification -applies to all of the above EAPIs.% -\footnote{Another unofficial EAPI `kdebuild-1' was a series of -extensions to EAPI `1' formerly used by the Gentoo KDE project. -Some of its features have been included in EAPI `2' or later.} +applies to all of the above EAPIs. \section{Reserved EAPIs}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: a14e130eacbd19fb8e835d2d385ac94ba693f23a Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:44:50 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Sat Jun 5 08:55:33 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a14e130e EAPI 8 has less strict naming rules in the updates directory Bug: https://bugs.gentoo.org/692774 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 5 - tree-layout.tex | 25 + 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 38109ec..b89ede0 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.} \t{package.mask} directory & \compactfeatureref{package-mask-dir} & No & No & No & Yes & Yes \\ +Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} & +No & No & No & No & Yes \\ + Profile files as directories & \compactfeatureref{profile-file-dirs} & No & No & No & Yes & Yes \\ @@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes: EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} -\item None +\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/tree-layout.tex b/tree-layout.tex index 81599a9..aa04d3d 100644 --- a/tree-layout.tex +++ b/tree-layout.tex @@ -207,11 +207,14 @@ differs from that described in \t{use.desc}. \subsection{The updates directory} \label{sec:updates-dir} -The \t{updates} directory is used to inform the package manager that a package has moved categories, -names, or that a version has changed SLOT\@. It contains one file per quarter year, named +\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager +that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs +so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named \t{[1-4]Q-[]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or -\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following -formats: +\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their +name begins with a dot. + +The format of each file is again line-based, with each line having one of the following formats: \begin{verbatim} move slotmove @@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut that has appeared as the origin of a slot move may not be used by packages matching the spec of that slot move in the future. +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs} +\label{tab:updates-filenames} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Yes \\ + 8 & No \\ + \bottomrule +\end{tabular} +\end{centertable} + \section{The Licenses Directory} \label{sec:licenses-dir}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5aa8c120a81e2042411b9e3620f81d1dad8fb657 Author: Ulrich Müller gentoo org> AuthorDate: Wed May 26 20:12:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:08:14 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5aa8c120 Cheat sheet: Remove EAPI 5 to make room for EAPI 8 Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 140 ++-- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index fb62827..82602f2 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -77,7 +77,7 @@ \footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}} \end{abstract} -\section{EAPIs 0, 1, 2, 3, and 4} +\section{EAPIs 0, 1, 2, 3, 4, and 5} \label{sec:cs:eapi0-2} Omitted for lack of space. See version~5.0 of this document for differences between these previous EAPIs. @@ -257,75 +257,75 @@ differences between these previous EAPIs. % any more. See \featureref{aa} and \featureref{kv}. % \end{description} -\section{EAPI 5 (2012-09-20)} -\label{sec:cs:eapi5} -\subsection{Additions/Changes} -\label{sec:cs:eapi5-additions} -\begin{description} -\item[Sub-slots] The \code{SLOT} variable and slot dependencies -may contain an optional sub-slot part that follows the regular -slot, delimited by a \code{/} character; for example -\code{2/2.30}. The sub-slot is used to represent cases in which -an upgrade to a new version of a package with a different sub-slot -may require dependent packages to be rebuilt. If the sub-slot is -not specified in \code{SLOT}, it defaults to the regular slot. -See \featureref{sub-slot}. -\item[Slot operator dependencies] Package dependencies can specify -one of the following operators as a suffix, which will affect -updates of runtime dependencies: -\begin{description} -\item[\code{:*}] Any slot value is acceptable. The package -will not break when its dependency is updated. -\item[\code{:=}] Any slot value is acceptable, but the package -can break when its dependency is updated to a different slot -(or sub-slot). -\end{description} -See \featureref{slot-operator-deps}. -\item[Profile \code{IUSE} injection] Apart from the USE flags -explicitly listed in \code{IUSE}, additional flags can be -implicitly provided by profiles. -See \featureref{profile-iuse-inject}. -\item[At-most-one-of groups] In \code{REQUIRED_USE} you can use -"\code{??\ ( flag1 flag2 \dots\ )}" to allow zero or one USE flag -out of many. -See \featureref{at-most-one-of}. -\item[Parallel tests] The default for \code{src_test} runs -\code{emake} without \code{-j1} now. -See \featureref{parallel-tests}. -\item[\code{econf} changes] The \code{econf} function now always -passes \code{-{}-disable-silent-rules} to \code{configure}. -See \featureref{econf-options}. -\item[\code{has_version} and \code{best_version} changes] -The two helpers support a \code{-{}-host-root} option that causes -the query to apply to the host root instead of \code{ROOT}. -See~\featureref{pm-query-options}. -\item[\code{usex}] Usage for this helper function is -\code{usex} \emph{ [true1] [false1] [true2] [false2]}. -If the USE flag is set, outputs \emph{[true1][true2]} -(defaults to \code{yes}), otherwise outputs -\emph{[false1][false2]} (defaults to \code{no}). -See \featureref{usex}. -\item[\code{doheader} and \code{newheader}] These new helper -functions install the given header file(s) into -\code{/usr/include}. The \code{-r} option enables recursion for -\code{doheader}, similar to \code{doins}. -See \featureref{doheader}. -\item[\code{new*} standard input] The \code{newins} etc.\ commands -read from standard input if the first argument is \code{-} -(a hyphen). -See \featureref{newfoo-stdin}. -\item[\code{EBUILD_PHASE_FUNC}] This variable is very similar to -\code{EBUILD_PHASE}, but contains the name of the current ebuild -function. -See \featureref{ebuild-phase-func}. -\item[Stable use masking/forcing] New files -\code{use.stable.\allowbreak\{mask,force\}} and -\code{package.use.stable.\allowbreak\{mask,force\}} -are supported in profile directories. They are similar to their -non-\code{stable} counterparts, but act only on packages that -would be merged due to a stable keyword. -See \featureref{stablemask}. -\end{description} +% \section{EAPI 5 (2012-09-20)} +% \label{sec:cs:eapi5} +% \subsection{Additions/Changes} +% \label{sec:cs:eapi5-additions} +% \begin{description} +% \item[Sub-slots] The \code{SLOT} variable and slot dependencies +% may contain an optional sub-slot part that follows the regular +% slot, delimited by a \code{/} character; for example +%
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: e0f239a664b1c0103368379f5348d9283ae57329 Author: Ulrich Müller gentoo org> AuthorDate: Wed May 26 20:11:32 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:08:14 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e0f239a6 Cheat sheet: Fix cross references Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index 83ddfa7..fb62827 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -348,10 +348,10 @@ differences between these previous EAPIs. which applies patches from the \code{PATCHES} variable with the new \code{eapply} command, and user-provided patches with \code{eapply_user}. -See \featureref{src-prepare-6}. +See \featureref{src-prepare}. \item[\code{src_install}] The default implementation uses the new \code{einstalldocs} function for installing documentation. -See \featureref{src-install-6}. +See \featureref{src-install}. \item[\code{nonfatal die}] When \code{die} or \code{assert} are called under the \code{nonfatal} command and with the \code{-n} option, they will not abort the build process but return with an
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: c207c2ec6391f884bdfb4de129068e98eb63f2e8 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 27 18:30:24 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu Jun 3 07:04:04 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c207c2ec Cheat sheet: Update for EAPI 8 Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 62 - 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index 82602f2..451ab85 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -15,7 +15,7 @@ \usepackage[local]{gitinfo2} \newcommand{\code}[1]{\texttt{#1}} % This should reflect the latest approved EAPI version -\newcommand{\version}{7.0} +\newcommand{\version}{8.0} \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}} \renewcommand{\familydefault}{\sfdefault} \urlstyle{sf} @@ -517,6 +517,66 @@ differences between these previous EAPIs. used as replacement. See \featureref{banned-commands}. \end{description} + +\section{EAPI 8} +\label{sec:cs:eapi8} +\subsection{Additions/Changes} +\label{sec:cs:eapi8-additions} +\begin{description} +\item[\code{profiles/updates} directory] Arbitrary filenames +are now allowed, instead of strict naming by quarters +(like \code{2Q-2021}). See \featureref{updates-filenames}. +\item[Bash version] Ebuilds can use features of Bash version 5.0 +(was 4.2 before). See \featureref{bash-version}. +\item[Selective fetch/mirror restriction] In \code{SRC_URI}, +adding a \code{fetch+} or \code{mirror+} prefix to an individual +URI means that the file may be fetched or mirrored. This overrides +the corresponding global settings in the \code{RESTRICT} variable. +See \featureref{uri-restrict}. +\item[\code{IDEPEND}] This variable specifies install-time +dependencies on packages used in (e.\,g.) \code{pkg_postinst}. +In a cross-compilation environment, these are dependencies for +native tools (\code{CBUILD}). See \featureref{idepend}. +\item[\code{pkg_*} phases] The initial working directory is +guaranteed to be empty. See \featureref{phase-function-dir}. +\item[\code{src_prepare}] Items in the \code{PATCHES} variable are +interpreted as files, even if their name begins with a hyphen. +See \featureref{src-prepare}. +\item[\code{PROPERTIES} and \code{RESTRICT}] These variables are +accumulated across the ebuild and inherited eclasses, like +\code{IUSE}, \code{REQUIRED\_USE}, and \code{*DEPEND} were before. +See \featureref{accumulate-vars}. +\item[\code{econf}] If supported, options +\code{-{}-disable-static} and +\code{-{}-datarootdir=\$\{EPREFIX\}/usr/share} are passed +to configure, respectively. See \featureref{econf-options}. +\item[\code{dosym}] With the new option \code{-r}, an absolute +path specified for the link target will be converted to a path +relative to the link location. See \featureref{dosym-relative}. +\item[\code{insopts}] Commands \code{doconfd}, \code{doenvd}, +\code{doheader} install files with fixed mode 0644, i.\,e., +they are no longer affected by \code{insopts}. +See \featureref{insopts}. +\item[\code{exeopts}] Command \code{doinitd} installs files +with fixed mode 0755, i.\,e., it is no longer affected by +\code{exeopts}. See \featureref{exeopts}. +\item[\code{usev}] This helper has an optional second argument +now: \code{usev} \emph{ [true]}. If the flag is set, +outputs \emph{[true]}, or the flag's name if called with only one +argument. Otherwise outputs nothing. See \featureref{usev}. +\end{description} +\subsection{Removals/Bans} +\label{sec:cs:eapi8-removalsbans} +\begin{description} +\item[\code{useq}] No longer allowed. Use regular \code{use} as +a drop-in replacement. See \featureref{banned-commands}. +\item[\code{hasv} and \code{hasq}] No longer allowed. Regular +\code{has} should be used instead. +See \featureref{banned-commands}. +\item[\code{unpack}] No longer supports unpacking of 7-Zip, RAR, +and LHA archives. See \featureref{unpack-extensions}. +\end{description} + \end{document} % vim: set filetype=tex fileencoding=utf8 et tw=70 spell spelllang=en :
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 4a735a7e404a6bccbba3da5d47705c12e11220e3 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:07:30 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=4a735a7e EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index bbb8957..8cfc442 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..4e43c69 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, the first parameter (the link target) is +converted from an absolute path to a path relative to the the second parameter (the link name). +The algorithm must return a result identical to the one returned by the function in +listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. +Specifying option \t{-r} together with a relative path as first (target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 8dbcbe956f5fbc813b85b50a72e2fab4730ae411 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:07:36 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8dbcbe95 EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 5609de6..900f415 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 92447d3..04a8ac4 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 61548f3a93bc30fbe1411f4e6b90c43a0d96ae88 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:07:35 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=61548f3a EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8cfc442..d263cbc 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 4e43c69..af45e62 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 9a9396a99ba3f76670047a323bbf9e3d8d1fd520 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:07:36 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=9a9396a9 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d263cbc..5609de6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index af45e62..92447d3 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: aa19ff431400880751d4682aa52b5dc47e32353c Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 19:43:08 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=aa19ff43 EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8cfc442..d263cbc 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7621ca3..2e6975a 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 7a91daf70f67d7c99b4fdc1a70390978390f0eac Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 19:43:09 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7a91daf7 EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 5609de6..900f415 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 4d098cb..df572cf 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 21f91f86303e3d405fe5cf127529c517107a5ed5 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 19:43:03 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=21f91f86 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index bbb8957..8cfc442 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..7621ca3 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, resolves the first parameter relative to the +directory part of the second parameter. The algorithm must return a result identical to the one +returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from +GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first +(target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: f29147041820ffce284f9026c4e276fbaa09e7a5 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 19:43:09 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f2914704 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d263cbc..5609de6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 2e6975a..4d098cb 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: eb607d42aba5be9a9b56b94624a9677a9abaa1c1 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=eb607d42 EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 5609de6..900f415 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index eac17de..848c8da 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 65a29e85e609c7058151d0dcf170de0b1843aab7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=65a29e85 EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8cfc442..d263cbc 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index dd286a6..58254fa 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 1ce95f858016547047b3a82ab32c63a50b9ffbf4 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1ce95f85 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d263cbc..5609de6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 58254fa..eac17de 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 90bccfddf9834c2ae0be236632d8eb1d6ee8fd19 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 15:45:42 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=90bccfdd EAPI 8: econf adds --disable-static Bug: https://bugs.gentoo.org/744871 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 +++- pkg-mgr-commands.tex | 18 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 32f4a66..bbb8957 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, disable static, +datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7909bdd..e74f730 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -338,27 +338,31 @@ commands once the current phase function has returned. \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed if the string \t{-{}-disable-silent-rules} occurs in the output of \t{configure -{}-help}. +\item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table} +as using it. This option will only be passed if the string \t{-{}-disable-static} occurs +in the output of \t{configure -{}-help}. \end{itemize} \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{lll} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No \\ - 6 & Yes & Yes & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No & No \\ + 6 & Yes & Yes & No & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 156001d89c113202522b9faf0cb68b3e7dbe27f9 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 09:46:26 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=156001d8 EAPI 8 has econf passing --datarootdir Bug: https://bugs.gentoo.org/651958 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- pkg-mgr-commands.tex | 17 +++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a2a74b8..32f4a66 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. +\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index c56e592..7909bdd 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -312,6 +312,9 @@ commands once the current phase function has returned. \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man} \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info} \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share} +\item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in +table~\ref{tab:econf-options-table} as using it. This option will only be passed if the +string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}. \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc} \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib} \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in @@ -340,20 +343,22 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No \\ - 4 & Yes & No & No & No & No \\ - 5 & Yes & Yes & No & No & No \\ - 6 & Yes & Yes & Yes & Yes & No \\ - 7, 8 & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No \\ + 6 & Yes & Yes & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 62df2573b906957b844bf7fa9c58f9ede964d3d7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=62df2573 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index bbb8957..8cfc442 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..dd286a6 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, expands the first parameter relative to the +directory part of the second parameter. The algorithm must return a result identical to the one +returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from +GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first +(target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 6ddff747af2abb20af559925bc62833b6895a368 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:46:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=6ddff747 EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Bug: https://bugs.gentoo.org/701132 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 eclasses.tex | 27 ++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aeddb6e..c7af2b3 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & +No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & * & No & No & No & No \\ @@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index 7f4ba67..a92ce1f 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} -variables are handled specially when set by an eclass. They must be accumulated across eclasses, -appending the value set by each eclass to the resulting value after the previous one is loaded. -Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, -this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, +\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be +accumulated across eclasses, appending the value set by each eclass to the resulting value after +the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating +\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined +value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after +the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. + +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses} +\label{tab:accumulate-vars} +\begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No \\ + 8 & Yes & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} \section{EXPORT_FUNCTIONS}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 77f9d02790283c283ed7d85413348038fb9b91a4 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 14:37:05 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=77f9d027 Rearrange listings of phase functions Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++-- ebuild-functions.tex | 164 --- 2 files changed, 82 insertions(+), 92 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 08c4e9f..842e09f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 00fd259..b224e0b 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack \t{src_prepare}, it may also apply patches and set up the package's build system for further use. The initial working directory must be \t{WORKDIR}, and the default implementation used when -the ebuild lacks the \t{src_unpack} function shall behave as: +the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}. \begin{listing}[H] -\caption{\t{src_unpack}} +\caption{\t{src_unpack}} \label{lst:src-unpack-0} \begin{verbatim} src_unpack() { if [[ -n ${A} ]]; then @@ -142,23 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format -6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave -as: - -\begin{listing}[H] -\caption{\t{src_prepare}, format~6} -\begin{verbatim} -src_prepare() { -if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then -[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" -else -[[ -n ${PATCHES} ]] && eapply ${PATCHES} -fi -eapply_user -} -\end{verbatim} -\end{listing} +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in +listing~\ref{lst:src-prepare-6}. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 54d9f8ae26de56409096082a9e07e295e3c1339d Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 19:30:41 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=54d9f8ae Split the econf options table because it has become too wide Signed-off-by: Ulrich Müller gentoo.org> pkg-mgr-commands.tex | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index e74f730..817b52b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -346,23 +346,28 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{} +\begin{tabular}{l} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & - \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & - \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No & No \\ - 6 & Yes & Yes & No & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3, 4, 5 & No & No & No & No \\ + 6 & No & Yes & Yes & No \\ + 7 & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} & + \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\ + \midrule + 0, 1, 2, 3& No & No & No & \\ + 4 & Yes & No & No & \\ + 5, 6, 7 & Yes & Yes & No & \\ + 8 & Yes & Yes & Yes & \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 2c5789d7debc6c573ea4e486d89b678cc24a4bac Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 12:05:17 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2c5789d7 EAPI 8: useq, hasv and hasq are banned Bug: https://bugs.gentoo.org/199722 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 11 +++ pkg-mgr-commands.tex | 16 2 files changed, 27 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index c7af2b3..a2a74b8 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} & \t{libopts} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Banned & Banned \\ +\t{useq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + Query command options & \compactfeatureref{pm-query-options} & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\ @@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes: \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. \item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 71d1e89..c56e592 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error. 4, 5 & Yes & Yes & No & No & No & No \\ 6 & Yes & Yes & Yes & No & No & No \\ 7, 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{6}{c}{\textbf{Command banned?}} \\ + \multicolumn{1}{c}{} & + \multicolumn{1}{c}{\textbf{\t{useq}}} & + \multicolumn{1}{c}{\textbf{\t{hasv}}} & + \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No & No & & & \\ + 8 & Yes & Yes & Yes & & & \\ \bottomrule \end{tabular} \end{centertable} @@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}. \item[usev] The same as \t{use}, but also prints the flag name if the condition is met. \item[useq] Deprecated synonym for \t{use}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value @@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value. \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent arguments, false otherwise. Guaranteed quiet. \item[hasv] The same as \t{has}, but also prints the first argument if found. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[hasq] Deprecated synonym for \t{has}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \end{description} \subsection{Version manipulation and comparison commands}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 1918cf3398adac180d9a5b0ccd7d33de7a59fca7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 19:06:02 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1918cf33 EAPI 8: Default src_prepare doesn't accept options in PATCHES Also simplify array detection by using the @a operator in parameter expansion. This feature was introduced in bash-4.4. Bug: https://bugs.gentoo.org/752486 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-functions.tex | 21 ++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 842e09f..aeddb6e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & -* & no-op & 6 & 6 & 6 \\ +* & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index b224e0b..0c745c3 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -142,9 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in -listing~\ref{lst:src-prepare-6}. +listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op. \midrule 0, 1 & No & Not applicable \\ 2, 3, 4, 5& Yes & no-op \\ - 6, 7, 8 & Yes & 6 \\ + 6, 7 & Yes & 6 \\ + 8 & Yes & 8 \\ \bottomrule \end{tabular} \end{centertable} @@ -179,6 +180,20 @@ src_prepare() { \end{verbatim} \end{listing} +\begin{listing}[H] +\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8} +\begin{verbatim} +src_prepare() { +if [[ ${PATCHES@a} == *a* ]]; then +[[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}" +else +[[ -n ${PATCHES} ]] && eapply -- ${PATCHES} +fi +eapply_user +} +\end{verbatim} +\end{listing} + \subsection{src_configure} \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: fb2c28771a6f69663ef60bf02d6f8ca03cb280c8 Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 18:23:57 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=fb2c2877 EAPI 8 has selective URI restrictions Bug: https://bugs.gentoo.org/371413 Signed-off-by: Michał Górny gentoo.org> [Shortened "selective-uri-restrict" label to make it fit in the margin] Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-vars.tex | 18 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a334881..22f99e2 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} & \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & * & Yes & Yes & Yes & Yes \\ +Selective URI restrictions & \compactfeatureref{uri-restrict} & +No & No & No & No & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & * & No & No & No & No \\ @@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \item Bash version is 5.0, \featureref{bash-version}. +\item Selective fetch/mirror restriction, \featureref{uri-restrict}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 040b02a..f6b1c26 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly 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. +\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting +selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or +\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch +restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror +restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI. + \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} +\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions} \label{tab:uri-arrows-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} & + \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\ \midrule - 0, 1& No \\ - 2, 3, 4, 5, 6, 7, 8 & Yes \\ + 0, 1 & No & No \\ + 2, 3, 4, 5, 6, 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: cddf1f01d377e18db6ed2e27498bf9481f66e2f1 Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=cddf1f01 EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 + eapi-differences.tex | 4 ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 3ef6fa6..f14a08c 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{} \toprule -& \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with& \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}}\\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8& Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, -\t{PDEPEND}. +\t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. -Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. +Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, +\t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & +No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: d600ada4b2d26ced9f0454d927f0e6552015f980 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 09:45:56 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:25 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=d600ada4 EAPI 8 has an empty working directory in pkg_* phases https://bugs.gentoo.org/595030 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-functions.tex | 26 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f3af563..08c4e9f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & +Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & * & Conditional & Conditional & Conditional & Conditional \\ @@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. +\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index ffdea16..00fd259 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions. \subsection{Initial working directories} \label{sec:s-to-workdir-fallback} -Some functions may assume that their initial working directory is set to a particular location; -these are noted below. If no initial working directory is mandated, it may be set to anything and -the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the -initial working directory for any phase is a trusted location that may only be written to by a -privileged user and group. +\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is +set to a particular location; these are noted below. If no initial working directory is mandated, +then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set +to a dedicated directory that is empty at the start of the function and may be read-only. For other +EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it. +The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location +that may only be written to by a privileged user and group. \featurelabel{s-workdir-fallback} Some functions are described as having an initial working directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in @@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used: executed, are in \t{DEFINED_PHASES}. \end{compactitem} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs} +\label{tab:function-dirs} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Initial working directory?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Any \\ + 8 & Empty \\ + \bottomrule +\end{tabular} +\end{centertable} + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: a6094dbb3a288bd728d554953f44761167466466 Author: Ulrich Müller gentoo org> AuthorDate: Tue May 25 15:59:13 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Thu May 27 19:15:20 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a6094dbb Ban nameref variables from exported and default scope Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> ebuild-format.tex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ebuild-format.tex b/ebuild-format.tex index 4929ba4..25ba28e 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t option of bash is set in the global scope of ebuilds. If set, failed pattern matches during filename expansion result in an error when the ebuild is being sourced. +Name reference variables (introduced in bash version~4.3) must not be used, except in local scope. + The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions} for specific information), and must not call any external programs, write anything to standard
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: b645b508eebf064d894bb7497edc9f7d47da1748 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:46:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b645b508 EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Bug: https://bugs.gentoo.org/701132 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 eclasses.tex | 27 ++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aeddb6e..4cd6b8b 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & +No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & * & No & No & No & No \\ @@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index 7f4ba67..a92ce1f 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} -variables are handled specially when set by an eclass. They must be accumulated across eclasses, -appending the value set by each eclass to the resulting value after the previous one is loaded. -Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, -this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, +\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be +accumulated across eclasses, appending the value set by each eclass to the resulting value after +the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating +\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined +value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after +the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. + +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses} +\label{tab:accumulate-vars} +\begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No \\ + 8 & Yes & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} \section{EXPORT_FUNCTIONS}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: d2f7633afa390ecd9e7cfd98648166922f955dce Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 12:05:17 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=d2f7633a EAPI 8: useq, hasv and hasq are banned Bug: https://bugs.gentoo.org/199722 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 11 +++ pkg-mgr-commands.tex | 16 2 files changed, 27 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index 4cd6b8b..8b1f7a6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} & \t{libopts} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Banned & Banned \\ +\t{useq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + Query command options & \compactfeatureref{pm-query-options} & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\ @@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes: \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 71d1e89..c56e592 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error. 4, 5 & Yes & Yes & No & No & No & No \\ 6 & Yes & Yes & Yes & No & No & No \\ 7, 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{6}{c}{\textbf{Command banned?}} \\ + \multicolumn{1}{c}{} & + \multicolumn{1}{c}{\textbf{\t{useq}}} & + \multicolumn{1}{c}{\textbf{\t{hasv}}} & + \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No & No & & & \\ + 8 & Yes & Yes & Yes & & & \\ \bottomrule \end{tabular} \end{centertable} @@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}. \item[usev] The same as \t{use}, but also prints the flag name if the condition is met. \item[useq] Deprecated synonym for \t{use}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value @@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value. \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent arguments, false otherwise. Guaranteed quiet. \item[hasv] The same as \t{has}, but also prints the first argument if found. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[hasq] Deprecated synonym for \t{has}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \end{description} \subsection{Version manipulation and comparison commands}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 35bfeddf102e90f7d67b9aacc7537e63d1f281d7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 19:06:02 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:00:27 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=35bfeddf EAPI 8: Default src_prepare doesn't accept options in PATCHES Also simplify array detection by using the @a operator in parameter expansion. This feature was introduced in bash-4.4. Bug: https://bugs.gentoo.org/752486 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-functions.tex | 21 ++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 842e09f..aeddb6e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & -* & no-op & 6 & 6 & 6 \\ +* & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index b224e0b..0c745c3 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -142,9 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in -listing~\ref{lst:src-prepare-6}. +listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op. \midrule 0, 1 & No & Not applicable \\ 2, 3, 4, 5& Yes & no-op \\ - 6, 7, 8 & Yes & 6 \\ + 6, 7 & Yes & 6 \\ + 8 & Yes & 8 \\ \bottomrule \end{tabular} \end{centertable} @@ -179,6 +180,20 @@ src_prepare() { \end{verbatim} \end{listing} +\begin{listing}[H] +\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8} +\begin{verbatim} +src_prepare() { +if [[ ${PATCHES@a} == *a* ]]; then +[[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}" +else +[[ -n ${PATCHES} ]] && eapply -- ${PATCHES} +fi +eapply_user +} +\end{verbatim} +\end{listing} + \subsection{src_configure} \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 6b3cf2189ce9e661384b6d4e360e5bf839eb750c Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 14:37:05 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 19:56:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=6b3cf218 Rearrange listings of phase functions Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++-- ebuild-functions.tex | 164 --- 2 files changed, 82 insertions(+), 92 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 08c4e9f..842e09f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 00fd259..b224e0b 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack \t{src_prepare}, it may also apply patches and set up the package's build system for further use. The initial working directory must be \t{WORKDIR}, and the default implementation used when -the ebuild lacks the \t{src_unpack} function shall behave as: +the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}. \begin{listing}[H] -\caption{\t{src_unpack}} +\caption{\t{src_unpack}} \label{lst:src-unpack-0} \begin{verbatim} src_unpack() { if [[ -n ${A} ]]; then @@ -142,23 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format -6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave -as: - -\begin{listing}[H] -\caption{\t{src_prepare}, format~6} -\begin{verbatim} -src_prepare() { -if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then -[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" -else -[[ -n ${PATCHES} ]] && eapply ${PATCHES} -fi -eapply_user -} -\end{verbatim} -\end{listing} +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in +listing~\ref{lst:src-prepare-6}. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: a5fff31f4571e24d25ff87ee528720221253610d Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 09:45:56 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 19:56:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a5fff31f EAPI 8 has an empty working directory in pkg_* phases https://bugs.gentoo.org/595030 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-functions.tex | 26 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f3af563..08c4e9f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & +Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & * & Conditional & Conditional & Conditional & Conditional \\ @@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. +\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index ffdea16..00fd259 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions. \subsection{Initial working directories} \label{sec:s-to-workdir-fallback} -Some functions may assume that their initial working directory is set to a particular location; -these are noted below. If no initial working directory is mandated, it may be set to anything and -the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the -initial working directory for any phase is a trusted location that may only be written to by a -privileged user and group. +\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is +set to a particular location; these are noted below. If no initial working directory is mandated, +then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set +to a dedicated directory that is empty at the start of the function and may be read-only. For other +EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it. +The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location +that may only be written to by a privileged user and group. \featurelabel{s-workdir-fallback} Some functions are described as having an initial working directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in @@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used: executed, are in \t{DEFINED_PHASES}. \end{compactitem} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs} +\label{tab:function-dirs} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Initial working directory?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Any \\ + 8 & Empty \\ + \bottomrule +\end{tabular} +\end{centertable} + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: d5678d213a6aa60e4e917e4097bad243d043539f Author: Ulrich Müller gentoo org> AuthorDate: Tue May 25 15:59:13 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 19:56:47 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=d5678d21 Ban nameref variables from exported and default scope Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> ebuild-format.tex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ebuild-format.tex b/ebuild-format.tex index 4929ba4..3f45242 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -11,6 +11,8 @@ compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported t option of bash is set in the global scope of ebuilds. If set, failed pattern matches during filename expansion result in an error when the ebuild is being sourced. +Name reference variables (introduced in Bash version~4.3) must not be used, except in local scope. + The file encoding must be UTF-8 with Unix-style newlines. When sourced, the ebuild must define certain variables and functions (see chapters~\ref{ch:ebuild-vars} and~\ref{ch:ebuild-functions} for specific information), and must not call any external programs, write anything to standard
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: dfbcc109fabee8ec703e0ae7a91105f933550698 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=dfbcc109 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 16820dd..f0ea62c 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 58254fa..eac17de 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: b2b72987b46e4a677c57a40a1dbac913b77b44ce Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 09:46:26 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b2b72987 EAPI 8 has econf passing --datarootdir Bug: https://bugs.gentoo.org/651958 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- pkg-mgr-commands.tex | 17 +++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8b1f7a6..41f7294 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. +\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index c56e592..7909bdd 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -312,6 +312,9 @@ commands once the current phase function has returned. \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man} \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info} \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share} +\item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in +table~\ref{tab:econf-options-table} as using it. This option will only be passed if the +string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}. \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc} \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib} \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in @@ -340,20 +343,22 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No \\ - 4 & Yes & No & No & No & No \\ - 5 & Yes & Yes & No & No & No \\ - 6 & Yes & Yes & Yes & Yes & No \\ - 7, 8 & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No \\ + 6 & Yes & Yes & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 786778355746adaa07699b7b76221679db0c6b20 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=78677835 EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f0ea62c..7f107e9 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index eac17de..848c8da 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: f0fb2d5886ed710a427720fdb4f380a46aa44bc0 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f0fb2d58 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d50b593..aa06551 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..dd286a6 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, expands the first parameter relative to the +directory part of the second parameter. The algorithm must return a result identical to the one +returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from +GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first +(target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 27c81f8ee90a5bd12b96bf907ff126e2bc16c22e Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 15:45:42 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=27c81f8e EAPI 8: econf adds --disable-static Bug: https://bugs.gentoo.org/744871 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 +++- pkg-mgr-commands.tex | 18 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 41f7294..d50b593 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, disable static, +datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7909bdd..e74f730 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -338,27 +338,31 @@ commands once the current phase function has returned. \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed if the string \t{-{}-disable-silent-rules} occurs in the output of \t{configure -{}-help}. +\item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table} +as using it. This option will only be passed if the string \t{-{}-disable-static} occurs +in the output of \t{configure -{}-help}. \end{itemize} \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{lll} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No \\ - 6 & Yes & Yes & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No & No \\ + 6 & Yes & Yes & No & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 4470561e8ae96901a4ed42b95ecc3ca720401615 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=4470561e EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aa06551..16820dd 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index dd286a6..58254fa 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 18856bf39ae1b4834499708830345c6a4e5313ce Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 19:30:41 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 20:03:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=18856bf3 Split the econf options table because it has become too wide Signed-off-by: Ulrich Müller gentoo.org> pkg-mgr-commands.tex | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index e74f730..817b52b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -346,23 +346,28 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{} +\begin{tabular}{l} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & - \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & - \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No & No \\ - 6 & Yes & Yes & No & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3, 4, 5 & No & No & No & No \\ + 6 & No & Yes & Yes & No \\ + 7 & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} & + \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\ + \midrule + 0, 1, 2, 3& No & No & No & \\ + 4 & Yes & No & No & \\ + 5, 6, 7 & Yes & Yes & No & \\ + 8 & Yes & Yes & Yes & \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: e9e9a1167def7ca65e2dfc7c1f255701d3c7737f Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 19:56:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e9e9a116 EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 + eapi-differences.tex | 4 ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 3ef6fa6..f14a08c 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{} \toprule -& \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with& \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}}\\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8& Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, -\t{PDEPEND}. +\t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. -Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. +Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, +\t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & +No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 8f6eacff576fbd5fb1e09025dd1a301b221a4c0c Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 18:23:57 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Tue May 25 19:56:56 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8f6eacff EAPI 8 has selective URI restrictions Bug: https://bugs.gentoo.org/371413 Signed-off-by: Michał Górny gentoo.org> [Shortened "selective-uri-restrict" label to make it fit in the margin] Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-vars.tex | 18 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a334881..22f99e2 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} & \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & * & Yes & Yes & Yes & Yes \\ +Selective URI restrictions & \compactfeatureref{uri-restrict} & +No & No & No & No & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & * & No & No & No & No \\ @@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \item Bash version is 5.0, \featureref{bash-version}. +\item Selective fetch/mirror restriction, \featureref{uri-restrict}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 040b02a..f6b1c26 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly 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. +\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting +selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or +\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch +restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror +restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI. + \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} +\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions} \label{tab:uri-arrows-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} & + \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\ \midrule - 0, 1& No \\ - 2, 3, 4, 5, 6, 7, 8 & Yes \\ + 0, 1 & No & No \\ + 2, 3, 4, 5, 6, 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 0758b3343f9c3b25deb8fe099d3cbd53eb0f2ce8 Author: Ulrich Müller gentoo org> AuthorDate: Sun Nov 5 18:04:28 2017 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0758b334 EAPI 8: Bash version is 5.0 Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-format.tex| 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index b89ede0..a334881 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} & No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & No & No & Yes & Yes & Yes \\ @@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. +\item Bash version is 5.0, \featureref{bash-version}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-format.tex b/ebuild-format.tex index c2224bf..4929ba4 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way. \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\ \midrule 0, 1, 2, 3, 4, 5 & 3.2 & No \\ - 6, 7, 8 & 4.2 & Yes \\ + 6, 7 & 4.2 & Yes \\ + 8 & 5.0 & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5c919daa62bb2621101683f9affbcb32fff3d5f7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5c919daa EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aa06551..16820dd 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index dd286a6..58254fa 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 30e3995b6bf6a7ef8b69ceb8242409046e5e12c2 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 14:37:05 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=30e3995b Rearrange listings of phase functions Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++-- ebuild-functions.tex | 164 --- 2 files changed, 82 insertions(+), 92 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 08c4e9f..842e09f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 00fd259..b224e0b 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack \t{src_prepare}, it may also apply patches and set up the package's build system for further use. The initial working directory must be \t{WORKDIR}, and the default implementation used when -the ebuild lacks the \t{src_unpack} function shall behave as: +the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}. \begin{listing}[H] -\caption{\t{src_unpack}} +\caption{\t{src_unpack}} \label{lst:src-unpack-0} \begin{verbatim} src_unpack() { if [[ -n ${A} ]]; then @@ -142,23 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format -6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave -as: - -\begin{listing}[H] -\caption{\t{src_prepare}, format~6} -\begin{verbatim} -src_prepare() { -if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then -[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" -else -[[ -n ${PATCHES} ]] && eapply ${PATCHES} -fi -eapply_user -} -\end{verbatim} -\end{listing} +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in +listing~\ref{lst:src-prepare-6}. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 0ee176427425bc43b0dc33de9fb663b78bef8a42 Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0ee17642 EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 + eapi-differences.tex | 4 ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 3ef6fa6..f14a08c 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{} \toprule -& \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with& \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}}\\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8& Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, -\t{PDEPEND}. +\t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. -Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. +Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, +\t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & +No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 360a4c1b05750b204421fe5eb1c4355acec4b220 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 12:05:17 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=360a4c1b EAPI 8: useq, hasv and hasq are banned Bug: https://bugs.gentoo.org/199722 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 11 +++ pkg-mgr-commands.tex | 16 2 files changed, 27 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index 4cd6b8b..8b1f7a6 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} & \t{libopts} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Banned & Banned \\ +\t{useq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + Query command options & \compactfeatureref{pm-query-options} & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\ @@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes: \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 71d1e89..c56e592 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error. 4, 5 & Yes & Yes & No & No & No & No \\ 6 & Yes & Yes & Yes & No & No & No \\ 7, 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{6}{c}{\textbf{Command banned?}} \\ + \multicolumn{1}{c}{} & + \multicolumn{1}{c}{\textbf{\t{useq}}} & + \multicolumn{1}{c}{\textbf{\t{hasv}}} & + \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No & No & & & \\ + 8 & Yes & Yes & Yes & & & \\ \bottomrule \end{tabular} \end{centertable} @@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}. \item[usev] The same as \t{use}, but also prints the flag name if the condition is met. \item[useq] Deprecated synonym for \t{use}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value @@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value. \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent arguments, false otherwise. Guaranteed quiet. \item[hasv] The same as \t{has}, but also prints the first argument if found. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[hasq] Deprecated synonym for \t{has}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \end{description} \subsection{Version manipulation and comparison commands}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: b88b9f57d27d25841590f3e8e77d034581886679 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b88b9f57 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d50b593..aa06551 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..dd286a6 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, expands the first parameter relative to the +directory part of the second parameter. The algorithm must return a result identical to the one +returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from +GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first +(target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 8cb79731cf936aee82fb75b7c01f08e48eacac72 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:08:50 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8cb79731 Add an EAPI 8 identical to EAPI 7 Signed-off-by: Ulrich Müller gentoo.org> commands.tex | 4 +- dependencies.tex | 26 +++ eapi-differences.tex | 201 +++--- eapis.tex | 3 +- ebuild-env-vars.tex | 24 +++--- ebuild-format.tex | 4 +- ebuild-functions.tex | 42 +-- ebuild-vars.tex | 24 +++--- merge.tex | 4 +- pkg-mgr-commands.tex | 84 ++--- pms.tex | 4 +- profile-variables.tex | 8 +- profiles.tex | 12 +-- tree-layout.tex | 4 +- 14 files changed, 230 insertions(+), 214 deletions(-) diff --git a/commands.tex b/commands.tex index 799a20c..d0ad87d 100644 --- a/commands.tex +++ b/commands.tex @@ -33,7 +33,7 @@ The following commands must always be available in the ebuild environment: table~\ref{tab:system-commands-table} as requiring GNU find. \end{compactitem} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{System commands for EAPIs} \label{tab:system-commands-table} \begin{tabular}{lll} @@ -44,7 +44,7 @@ The following commands must always be available in the ebuild environment: \midrule 0, 1, 2, 3, 4 & Undefined & Any \\ 5, 6 & Yes & Any \\ - 7 & Yes & 2.7 \\ + 7, 8 & Yes & 2.7 \\ \bottomrule \end{tabular} \end{centertable} diff --git a/dependencies.tex b/dependencies.tex index 67855f5..3ef6fa6 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -82,7 +82,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} \begin{tabular}{ll} @@ -91,7 +91,7 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ \midrule 0, 1, 2, 3, 4, 5, 6 & No \\ - 7 & Yes \\ + 7, 8& Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -146,7 +146,7 @@ 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} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups} \label{tab:at-most-one-of-table} \begin{tabular}{ll} @@ -155,7 +155,7 @@ In particular, note that whitespace is not optional. \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\ \midrule 0, 1, 2, 3, 4 & No \\ - 5, 6, 7 & Yes \\ + 5, 6, 7, 8& Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -195,7 +195,7 @@ In an exactly-one-of group, exactly one immediate child element must be matched. In EAPIs specified in table~\ref{tab:empty-dep-groups}, an empty exactly-one-of group counts as being matched. -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{Matching of empty dependency groups in EAPIs} \label{tab:empty-dep-groups} \begin{tabular}{ll} @@ -205,7 +205,7 @@ being matched. are matched?}} \\ \midrule 0, 1, 2, 3, 4, 5, 6 & Yes \\ - 7 & No \\ + 7, 8& No \\ \bottomrule \end{tabular} \end{centertable} @@ -241,7 +241,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u \note{Order is important. The slot restriction must come before use dependencies.} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{Support for \t{SLOT} dependencies and sub-slots in EAPIs} \label{tab:slot-deps-table} \begin{tabular}{lll} @@ -252,12 +252,12 @@ manager must warn or error if this feature is used with an EAPI not supporting u \midrule 0 & No & No \\ 1, 2, 3, 4& Named only & No \\ - 5, 6, 7 & Named and operator & Yes \\ + 5, 6, 7, 8& Named and operator & Yes \\ \bottomrule \end{tabular} \end{centertable} -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting \t{USE} dependencies} \label{tab:use-deps-table} \begin{tabular}{ll} @@ -267,7 +267,7 @@ manager must warn or error if this feature is used with an EAPI not supporting u \midrule 0, 1 & No \\ 2, 3
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 3c087a736bb77f17aefa0b591b86ac546a7ff5c4 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 15:45:42 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3c087a73 EAPI 8: econf adds --disable-static Bug: https://bugs.gentoo.org/744871 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 +++- pkg-mgr-commands.tex | 18 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 41f7294..d50b593 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, disable static, +datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7909bdd..e74f730 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -338,27 +338,31 @@ commands once the current phase function has returned. \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed if the string \t{-{}-disable-silent-rules} occurs in the output of \t{configure -{}-help}. +\item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table} +as using it. This option will only be passed if the string \t{-{}-disable-static} occurs +in the output of \t{configure -{}-help}. \end{itemize} \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{lll} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No \\ - 6 & Yes & Yes & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No & No \\ + 6 & Yes & Yes & No & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: deb235b793539a91c9b4e01a57fd022af57f3df7 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 09:45:56 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=deb235b7 EAPI 8 has an empty working directory in pkg_* phases https://bugs.gentoo.org/595030 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-functions.tex | 26 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f3af563..08c4e9f 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & +Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & * & Conditional & Conditional & Conditional & Conditional \\ @@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. +\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index ffdea16..00fd259 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions. \subsection{Initial working directories} \label{sec:s-to-workdir-fallback} -Some functions may assume that their initial working directory is set to a particular location; -these are noted below. If no initial working directory is mandated, it may be set to anything and -the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the -initial working directory for any phase is a trusted location that may only be written to by a -privileged user and group. +\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is +set to a particular location; these are noted below. If no initial working directory is mandated, +then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set +to a dedicated directory that is empty at the start of the function and may be read-only. For other +EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it. +The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location +that may only be written to by a privileged user and group. \featurelabel{s-workdir-fallback} Some functions are described as having an initial working directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in @@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used: executed, are in \t{DEFINED_PHASES}. \end{compactitem} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Initial working directory in \t{pkg_*} phase functions for EAPIs} +\label{tab:function-dirs} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Initial working directory?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Any \\ + 8 & Empty \\ + \bottomrule +\end{tabular} +\end{centertable} + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 784ab67c64f0981a3fb4496d2d3890054fc80163 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:17:19 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=784ab67c EAPI feature table: Consolidate EAPIs 0 to 4 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 191 +-- 1 file changed, 93 insertions(+), 98 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d5513c3..38109ec 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -1,23 +1,22 @@ \chapter{Feature Availability by EAPI} \note{This chapter is informative and for convenience only. Refer to the main text for specifics. -For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table +For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition of this document for a complete table of previous EAPIs.} % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5 \ChangeWhenAddingAnEAPI{8} \begin{landscape} -\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} +\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} \caption{Features in EAPIs}\\ \toprule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.} \midrule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.} \endlastfoot \t{package.mask} directory & \compactfeatureref{package-mask-dir} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ Profile files as directories & \compactfeatureref{profile-file-dirs} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{package.provided} & \compactfeatureref{package-provided} & -Optional & Optional & Optional & Optional & No & No \\ +Optional & Optional & Optional & No & No \\ Stable use masking/forcing & \compactfeatureref{stablemask} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & -No & No & No & Yes & Yes & Yes \\ +No & No & Yes & Yes & Yes \\ \t{IUSE} defaults & \compactfeatureref{iuse-defaults} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{REQUIRED_USE} & \compactfeatureref{required-use} & -No & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{PROPERTIES} & \compactfeatureref{properties} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & -Yes & No & No & No & No & No \\ +* & No & No & No & No \\ \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{BDEPEND} & \compactfeatureref{bdepend} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & -Yes & Yes & Yes & Yes & No & No \\ +Yes & Yes & Yes & No & No \\ Slot dependencies & \compactfeatureref{slot-deps} & -* & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ +* & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ Sub-slots & \compactfeatureref{sub-slot} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Use dependencies & \compactfeatureref{use-deps} & -* & 4-style & 4-style & 4-style & 4-style & 4-style \\ +
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 0246dbf298b67f64b30ff7ec11e74c6060389a10 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:46:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0246dbf2 EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Bug: https://bugs.gentoo.org/701132 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 eclasses.tex | 27 ++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index aeddb6e..4cd6b8b 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & +No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & * & No & No & No & No \\ @@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index 7f4ba67..a92ce1f 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} -variables are handled specially when set by an eclass. They must be accumulated across eclasses, -appending the value set by each eclass to the resulting value after the previous one is loaded. -Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, -this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, +\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be +accumulated across eclasses, appending the value set by each eclass to the resulting value after +the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating +\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined +value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after +the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. + +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses} +\label{tab:accumulate-vars} +\begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No \\ + 8 & Yes & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} \section{EXPORT_FUNCTIONS}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 244623f1a4a5e0f1496e42e0e5a0af8e5967ca71 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:44:50 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=244623f1 EAPI 8 has less strict naming rules in the updates directory Bug: https://bugs.gentoo.org/692774 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 5 - tree-layout.tex | 25 + 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 38109ec..b89ede0 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.} \t{package.mask} directory & \compactfeatureref{package-mask-dir} & No & No & No & Yes & Yes \\ +Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} & +No & No & No & No & Yes \\ + Profile files as directories & \compactfeatureref{profile-file-dirs} & No & No & No & Yes & Yes \\ @@ -481,7 +484,7 @@ EAPI 7 is EAPI 6 with the following changes: EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} -\item None +\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/tree-layout.tex b/tree-layout.tex index 81599a9..aa04d3d 100644 --- a/tree-layout.tex +++ b/tree-layout.tex @@ -207,11 +207,14 @@ differs from that described in \t{use.desc}. \subsection{The updates directory} \label{sec:updates-dir} -The \t{updates} directory is used to inform the package manager that a package has moved categories, -names, or that a version has changed SLOT\@. It contains one file per quarter year, named +\featurelabel{updates-filenames} The \t{updates} directory is used to inform the package manager +that a package has moved categories, names, or that a version has changed SLOT\@. For EAPIs +so specified by table~\ref{tab:updates-filenames}, it contains one file per quarter year, named \t{[1-4]Q-[]} for the first to fourth quarter of a given year, for example \t{1Q-2004} or -\t{3Q-2006}. The format of each file is again line-based, with each line having one of the following -formats: +\t{3Q-2006}. For other EAPIs, all regular files in this directory will be processed, unless their +name begins with a dot. + +The format of each file is again line-based, with each line having one of the following formats: \begin{verbatim} move slotmove @@ -230,6 +233,20 @@ Any name that has appeared as the origin of a move must not be reused in the fut that has appeared as the origin of a slot move may not be used by packages matching the spec of that slot move in the future. +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs} +\label{tab:updates-filenames} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Files per quarter year?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Yes \\ + 8 & No \\ + \bottomrule +\end{tabular} +\end{centertable} + \section{The Licenses Directory} \label{sec:licenses-dir}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: a52c83ee5281a393ffc1ed6a590e892557d11d54 Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:19:32 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a52c83ee eapis.tex: Merge redundant descriptions Signed-off-by: Ulrich Müller gentoo.org> eapis.tex | 16 +++- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/eapis.tex b/eapis.tex index 746decf..f902869 100644 --- a/eapis.tex +++ b/eapis.tex @@ -17,20 +17,10 @@ EAPIs are also used for profile directories, as described in section~\ref{sec:pr \section{Defined EAPIs} -The following EAPIs are defined by this specification: - \ChangeWhenAddingAnEAPI{8} -\begin{compactdesc} -\item[0] The `original' base EAPI. -\item[1] EAPI `1' contains a number of extensions to EAPI `0'. -\item[2] EAPI `2' contains a number of extensions to EAPI `1'. -\item[3] EAPI `3' contains a number of extensions to EAPI `2'. -\item[4] EAPI `4' contains a number of extensions to EAPI `3'. -\item[5] EAPI `5' contains a number of extensions to EAPI `4'. -\item[6] EAPI `6' contains a number of extensions to EAPI `5'. -\item[7] EAPI `7' contains a number of extensions to EAPI `6'. -\item[8] EAPI `8' contains a number of extensions to EAPI `7'. -\end{compactdesc} +This specification defines EAPIs `0', `1', `2', `3', `4', `5', `6', `7', and~`8'. +EAPI~`0' is the `original' base EAPI\@. Each of the later EAPIs contains a number of extensions +to its predecessor. Except where explicitly noted, everything in this specification applies to all of the above EAPIs.%
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: f3ed73959e6cc3f76c18d0b8feaa6f11aae54915 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 19:30:41 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f3ed7395 Split the econf options table because it has become too wide Signed-off-by: Ulrich Müller gentoo.org> pkg-mgr-commands.tex | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index e74f730..817b52b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -346,23 +346,28 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{} +\begin{tabular}{l} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & - \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & - \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No & No \\ - 6 & Yes & Yes & No & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3, 4, 5 & No & No & No & No \\ + 6 & No & Yes & Yes & No \\ + 7 & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} & + \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\ + \midrule + 0, 1, 2, 3& No & No & No & \\ + 4 & Yes & No & No & \\ + 5, 6, 7 & Yes & Yes & No & \\ + 8 & Yes & Yes & Yes & \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 63fcb765df29dbececb74336e04f27272a8c44f1 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 09:46:26 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=63fcb765 EAPI 8 has econf passing --datarootdir Bug: https://bugs.gentoo.org/651958 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- pkg-mgr-commands.tex | 17 +++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 8b1f7a6..41f7294 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,7 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -514,6 +514,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. +\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index c56e592..7909bdd 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -312,6 +312,9 @@ commands once the current phase function has returned. \item \t{-{}-mandir} must be \t{\$\{EPREFIX\}/usr/share/man} \item \t{-{}-infodir} must be \t{\$\{EPREFIX\}/usr/share/info} \item \t{-{}-datadir} must be \t{\$\{EPREFIX\}/usr/share} +\item \t{-{}-datarootdir} must be \t{\$\{EPREFIX\}/usr/share}, if the EAPI is listed in +table~\ref{tab:econf-options-table} as using it. This option will only be passed if the +string \t{-{}-datarootdir} occurs in the output of \t{configure -{}-help}. \item \t{-{}-sysconfdir} must be \t{\$\{EPREFIX\}/etc} \item \t{-{}-localstatedir} must be \t{\$\{EPREFIX\}/var/lib} \item \t{-{}-docdir} must be \t{\$\{EPREFIX\}/usr/share/doc/\$\{PF\}}, if the EAPI is listed in @@ -340,20 +343,22 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No \\ - 4 & Yes & No & No & No & No \\ - 5 & Yes & Yes & No & No & No \\ - 6 & Yes & Yes & Yes & Yes & No \\ - 7, 8 & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No \\ + 6 & Yes & Yes & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 11266ab01b368d08fb5a5aa07c4c6fe69c9d260e Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 19:06:02 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=11266ab0 EAPI 8: Default src_prepare doesn't accept options in PATCHES Bug: https://bugs.gentoo.org/752486 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-functions.tex | 21 ++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 842e09f..aeddb6e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -124,7 +124,7 @@ Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & -* & no-op & 6 & 6 & 6 \\ +* & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. \item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index b224e0b..d95d8ce 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -142,9 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in -listing~\ref{lst:src-prepare-6}. +listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op. \midrule 0, 1 & No & Not applicable \\ 2, 3, 4, 5& Yes & no-op \\ - 6, 7, 8 & Yes & 6 \\ + 6, 7 & Yes & 6 \\ + 8 & Yes & 8 \\ \bottomrule \end{tabular} \end{centertable} @@ -179,6 +180,20 @@ src_prepare() { \end{verbatim} \end{listing} +\begin{listing}[H] +\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8} +\begin{verbatim} +src_prepare() { +if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then +[[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}" +else +[[ -n ${PATCHES} ]] && eapply -- ${PATCHES} +fi +eapply_user +} +\end{verbatim} +\end{listing} + \subsection{src_configure} \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: f9527f5a54e68ad0b0b2cd07b3d197496697ebae Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 18:23:57 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f9527f5a EAPI 8 has selective URI restrictions Bug: https://bugs.gentoo.org/371413 Signed-off-by: Michał Górny gentoo.org> [Shortened "selective-uri-restrict" label to make it fit in the margin] Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-vars.tex | 18 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a334881..22f99e2 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -74,6 +74,9 @@ Bash version & \compactfeatureref{bash-version} & \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & * & Yes & Yes & Yes & Yes \\ +Selective URI restrictions & \compactfeatureref{uri-restrict} & +No & No & No & No & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & * & No & No & No & No \\ @@ -486,6 +489,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \item Bash version is 5.0, \featureref{bash-version}. +\item Selective fetch/mirror restriction, \featureref{uri-restrict}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 040b02a..f6b1c26 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -169,16 +169,24 @@ on the right of the arrow. When consulting mirrors (except for those explicitly 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. +\featurelabel{uri-restrict} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting +selective URI restrictions, the URI protocol can be prefixed by an additional \t{fetch+} or +\t{mirror+} term. If the ebuild is fetch restricted, the \t{fetch+} prefix undoes the fetch +restriction for the URI (but not the implied mirror restriction). If the ebuild is fetch or mirror +restricted, the \t{mirror+} prefix undoes both fetch and mirror restrictions for the URI. + \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} +\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows and selective URI restrictions} \label{tab:uri-arrows-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} & + \multicolumn{1}{c}{\textbf{Supports selective URI restrictions?}} \\ \midrule - 0, 1& No \\ - 2, 3, 4, 5, 6, 7, 8 & Yes \\ + 0, 1 & No & No \\ + 2, 3, 4, 5, 6, 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 35dc5f534febcdd129ceedebcd76d143ae279969 Author: Ulrich Müller gentoo org> AuthorDate: Sat Jan 16 12:00:11 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=35dc5f53 Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0 Acked-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-cheatsheet.tex | 4 ++-- pms.tex | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex index d4abb1a..83ddfa7 100644 --- a/eapi-cheatsheet.tex +++ b/eapi-cheatsheet.tex @@ -73,8 +73,8 @@ % to the original author or the PMS team. This work is released under the Creative Commons -Attribution-Share Alike 3.0 Licence.% -\footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}} +Attribution-ShareAlike 4.0 International Licence.% +\footnote{\url{https://creativecommons.org/licenses/by-sa/4.0/}} \end{abstract} \section{EAPIs 0, 1, 2, 3, and 4} diff --git a/pms.tex b/pms.tex index f54b1a0..8bbd037 100644 --- a/pms.tex +++ b/pms.tex @@ -34,8 +34,9 @@ \textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. Contributions are owned by their respective authors, and may have been changed substantially before inclusion. -This document is released under the Creative Commons Attribution-ShareAlike 3.0 Licence. The -full text of this licence can be found at \url{https://creativecommons.org/licenses/by-sa/3.0/}. +This work is released under the Creative Commons Attribution-ShareAlike 4.0 International +Licence. To~view a copy of this licence, visit +\url{https://creativecommons.org/licenses/by-sa/4.0/}. \commitinfo }
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 2760c39bf0c1f4f55d7faf5aaaf01492a2c99082 Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2760c39b EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f0ea62c..7f107e9 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index eac17de..848c8da 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 569bf13926cb7a37d5ada37bca9ad549fa2351d4 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 19:19:39 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=569bf139 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 16820dd..f0ea62c 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 58254fa..eac17de 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 364f563408ff94793285b0d49a00204af5c6d991 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:59:37 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=364f5634 EAPI 8: usev has an optional second argument Bug: https://bugs.gentoo.org/744868 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 23 ++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 2ac78ba..9b1e98b 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -317,6 +317,9 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{dostrip} & \compactfeatureref{dostrip} & No & No & No & Yes & Yes \\ +\t{usev} second arg & \compactfeatureref{usev} & +No & No & No & No & Yes \\ + \t{use_with} empty third arg & \compactfeatureref{use-with} & * & Yes & Yes & Yes & Yes \\ @@ -529,6 +532,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{dosym} can create relative paths, \featureref{dosym-relative}. \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 566c103..0520f92 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -936,15 +936,17 @@ table~\ref{tab:use-list-strictness}. \item[use] Returns shell true (0) if the first argument (a \t{USE} flag name) is enabled, false otherwise. If the flag name is prefixed with \t{!}, returns true if the flag is disabled, and false if it is enabled. It is guaranteed that this command is quiet. -\item[usev] The same as \t{use}, but also prints the flag name if the condition -is met. +\item[usev] \featurelabel{usev} The same as \t{use}, but also prints the flag name if the condition +is met. In EAPIs listed in table~\ref{tab:use-list-args} as supporting an optional second +argument for \t{usev}, prints the second argument instead, if it is specified and if the +condition is met. \item[useq] Deprecated synonym for \t{use}. In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value -(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-with-third-arg} as not supporting it, +(\t{\$\{value\}}). For EAPIs listed in table~\ref{tab:use-list-args} as not supporting it, an empty third argument is treated as if it weren't provided. If the USE flag is set, outputs \t{-{}-with-\$\{opt\}=\$\{value\}} if the third argument was provided, and \t{-{}-with-\$\{opt\}} otherwise. If the flag is not set, then it outputs @@ -979,15 +981,18 @@ table~\ref{tab:use-list-strictness}. \end{centertable} \ChangeWhenAddingAnEAPI{8} -\begin{centertable}{EAPIs supporting empty third argument in \t{use_with} and \t{use_enable}} -\label{tab:use-with-third-arg} -\begin{tabular}{ll} +\begin{centertable}{\t{usev}, \t{use_with} and \t{use_enable} arguments for EAPIs} +\label{tab:use-list-args} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports empty third argument?}} \\ + \multicolumn{1}{P{8em}}{\textbf{\t{usev} has optional second argument?}} & + \multicolumn{1}{P{14em}}{\textbf{\t{use_with} and \t{use_enable} support empty third +argument?}} \\ \midrule - 0, 1, 2, 3& No \\ - 4, 5, 6, 7, 8 & Yes \\ + 0, 1, 2, 3& No & No \\ + 4, 5, 6, 7& No & Yes \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 4fc292a5b8a0d453c4866199645e461a33e53a10 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 16:15:04 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=4fc292a5 EAPI 8: insopts and exeopts affect only doins and doexe Bug: https://bugs.gentoo.org/657580 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 8 +++ pkg-mgr-commands.tex | 64 ++-- 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index ebe5ccc..2ac78ba 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -299,6 +299,12 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & +Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & +Yes & Yes & Yes & Yes & No \\ + Controllable compression & \compactfeatureref{docompress} & * & Yes & Yes & Yes & Yes \\ @@ -521,6 +527,8 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 323b26d..566c103 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -460,8 +460,9 @@ the current phase function has returned. \t{joe:users}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doconfd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[dodir] Creates the given directories, by default with file mode \t{0755}, or with the \t{install} options set by the most recent \t{diropts} call. Failure behaviour is EAPI @@ -478,8 +479,9 @@ the current phase function has returned. section~\ref{sec:failure-behaviour}. \item[doenvd] Installs the given environment files into \t{/etc/env.d/}, by default with file mode -\t{0644}, or with the \t{install} options set by the most recent \t{insopts} call. -Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. +\t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} as respecting \t{insopts} +in \t{doenvd}, the \t{install} options set by the most recent \t{insopts} call override +the default. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doexe] Installs the given files into the directory specified by the most recent \t{exeinto} call. If \t{exeinto} has not yet been called, behaviour is undefined. Files are installed by @@ -494,9 +496,10 @@ the current phase function has returned. section~\ref{sec:banned-commands}. \item[doheader] \featurelabel{doheader} Installs the given header files into \t{/usr/include/}, -by default with file mode \t{0644}, or with the \t{install} options set by the most recent -\t{insopts} call. If the first argument is \t{-r}, then operates recursively, descending -into any directories given. +by default with file mode \t{0644}. For EAPIs listed in table~\ref{tab:insopts-commands} +as respecting \t{insopts} in \t{doheader}, the \t{install} options set by the most recent +\t{insopts} call override the default. If the first argument is \t{-r}, then operates +recursively, descending into any directories given. Only available in EAPIs listed in table~\ref{tab:doheader-table} as supporting \t{doheader}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -529,8 +532,9 @@ the current phase function has returned. \t{0644}. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. \item[doinitd] Installs the given initscript files into \t{/etc/init.d}, by default with file mode -\t{0755}, or with the \t{install} options set by the most recent \t{exeopts} call. -Failure behaviour is EAPI
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 5f0db8dbf82f6046b86da76b9c8f0931e6dc875f Author: Michał Górny gentoo org> AuthorDate: Tue Dec 24 21:50:30 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5f0db8db EAPI 8 removes .7z, .rar, .lha unpack support Bug: https://bugs.gentoo.org/690968 Signed-off-by: Michał Górny gentoo.org> Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++ pkg-mgr-commands.tex | 21 ++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 9b1e98b..0afc131 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -341,6 +341,15 @@ Controllable stripping & \compactfeatureref{dostrip} & \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & No & No & Yes & Yes & Yes \\ +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & +Yes & Yes & Yes & Yes & No \\ + \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & No & No & Yes & Yes & Yes \\ @@ -533,6 +542,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. \item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. \item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 0520f92..33a976b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -1153,10 +1153,13 @@ has returned. \item bzip2-compressed tar files (\t{*.tar.bz2, *.tbz2, *.tar.bz, *.tbz}). Ebuilds must ensure that bzip2 and GNU tar are installed. \item zip files (\t{*.zip, *.ZIP, *.jar}). Ebuilds must ensure that Info-ZIP Unzip is installed. -\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. +\item 7zip files (\t{*.7z, *.7Z}). Ebuilds must ensure that P7ZIP is installed. Only for EAPIs +listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.7z}. \item rar files (\t{*.rar, *.RAR}). Ebuilds must ensure that RARLAB's unrar is installed. +Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting \t{.rar}. \item LHA archives (\t{*.LHA, *.LHa, *.lha, *.lzh}). Ebuilds must ensure that the lha program is -installed. +installed. Only for EAPIs listed in table~\ref{tab:unpack-extensions-table} as supporting +\t{.lha}. \item ar archives (\t{*.a}). Ebuilds must ensure that GNU binutils is installed. \item deb packages (\t{*.deb}). Ebuilds must ensure that the deb2targz program is installed on those platforms where the GNU binutils ar program is not available and the installed ar @@ -1195,16 +1198,20 @@ has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{\t{unpack} extensions for EAPIs} \label{tab:unpack-extensions-table} -\begin{tabular}{} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{c}{\textbf{\t{.xz}?}} & \multicolumn{1}{c}{\textbf{\t{.tar.xz}?}} & - \multicolumn{1}{c}{\textbf{\t{.txz}?}} \\ + \multicolumn{1}{c}{\textbf{\t{.txz}?}} & + \multicolumn{1}{c}{\textbf{\t{.7z}?}} & + \multicolumn{1}{c}{\textbf{\t{.rar}?}} & + \multicolumn{1}{c}{\textbf{\t{.lha}?}} \\ \midrule - 0, 1, 2 & No & No & No \\ - 3, 4, 5 & Yes & Yes & No \\ - 6, 7, 8 & Yes & Yes & Yes \\ + 0, 1, 2 & No & No & No & Yes & Yes & Yes \\ + 3, 4, 5 & Yes & Yes & No & Yes & Yes & Yes \\ + 6, 7 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & No & No & No \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 8aac19dfe15c2605aa9dc1371c21f12ef76995bc Author: Ulrich Müller gentoo org> AuthorDate: Thu May 10 17:17:19 2018 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8aac19df EAPI feature table: Consolidate EAPIs 0 to 4 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 191 +-- 1 file changed, 93 insertions(+), 98 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index d5513c3..38109ec 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -1,23 +1,22 @@ \chapter{Feature Availability by EAPI} \note{This chapter is informative and for convenience only. Refer to the main text for specifics. -For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table +For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition of this document for a complete table of previous EAPIs.} % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5 \ChangeWhenAddingAnEAPI{8} \begin{landscape} -\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} +\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} \caption{Features in EAPIs}\\ \toprule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -27,11 +26,10 @@ of this document for a complete table of previous EAPIs.} \midrule \multicolumn{1}{c}{\textbf{Feature}} & \multicolumn{1}{c}{\textbf{Reference}} & -\multicolumn{6}{c}{\textbf{EAPIs}} \\ +\multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{7} & @@ -44,92 +42,92 @@ of this document for a complete table of previous EAPIs.} \endlastfoot \t{package.mask} directory & \compactfeatureref{package-mask-dir} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ Profile files as directories & \compactfeatureref{profile-file-dirs} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{package.provided} & \compactfeatureref{package-provided} & -Optional & Optional & Optional & Optional & No & No \\ +Optional & Optional & Optional & No & No \\ Stable use masking/forcing & \compactfeatureref{stablemask} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & -No & No & No & Yes & Yes & Yes \\ +No & No & Yes & Yes & Yes \\ \t{IUSE} defaults & \compactfeatureref{iuse-defaults} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{REQUIRED_USE} & \compactfeatureref{required-use} & -No & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{PROPERTIES} & \compactfeatureref{properties} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & -* & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & -Yes & No & No & No & No & No \\ +* & No & No & No & No \\ \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & -Optionally & Yes & Yes & Yes & Yes & Yes \\ +* & Yes & Yes & Yes & Yes \\ \t{BDEPEND} & \compactfeatureref{bdepend} & -No & No & No & No & Yes & Yes \\ +No & No & No & Yes & Yes \\ \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & -Yes & Yes & Yes & Yes & No & No \\ +Yes & Yes & Yes & No & No \\ Slot dependencies & \compactfeatureref{slot-deps} & -* & Named & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ +* & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ Sub-slots & \compactfeatureref{sub-slot} & -No & No & Yes & Yes & Yes & Yes \\ +No & Yes & Yes & Yes & Yes \\ Use dependencies & \compactfeatureref{use-deps} & -* & 4-style & 4-style & 4-style & 4-style & 4-style \\ +
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 7ab6f4ddfcea6170da764e5d2bca30001f42564a Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 14:37:05 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7ab6f4dd Rearrange listings of phase functions Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 10 ++-- ebuild-functions.tex | 164 --- 2 files changed, 82 insertions(+), 92 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 2c1073a..1174052 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -349,7 +349,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -362,7 +362,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -391,7 +391,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -436,8 +436,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 44b8b43..1bfa957 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -120,10 +120,10 @@ The \t{src_unpack} function extracts all of the package's sources. In EAPIs lack \t{src_prepare}, it may also apply patches and set up the package's build system for further use. The initial working directory must be \t{WORKDIR}, and the default implementation used when -the ebuild lacks the \t{src_unpack} function shall behave as: +the ebuild lacks the \t{src_unpack} function shall behave as in listing~\ref{lst:src-unpack-0}. \begin{listing}[H] -\caption{\t{src_unpack}} +\caption{\t{src_unpack}} \label{lst:src-unpack-0} \begin{verbatim} src_unpack() { if [[ -n ${A} ]]; then @@ -142,23 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -\featurelabel{src-prepare-6} For EAPIs listed in table~\ref{tab:src-prepare-table} as using format -6, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave -as: - -\begin{listing}[H] -\caption{\t{src_prepare}, format~6} -\begin{verbatim} -src_prepare() { -if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then -[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" -else -[[ -n ${PATCHES} ]] && eapply ${PATCHES} -fi -eapply_user -} -\end{verbatim} -\end{listing} +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in +listing~\ref{lst:src-prepare-6}. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -179,6 +165,20 @@ the \t{src_prepare} function is a no-op.
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 3d7c969ce1310c1f04d6e16309cd60e78e298df6 Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 19:30:41 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3d7c969c Split the econf options table because it has become too wide Signed-off-by: Ulrich Müller gentoo.org> pkg-mgr-commands.tex | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index e74f730..817b52b 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -346,23 +346,28 @@ commands once the current phase function has returned. \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{} +\begin{tabular}{l} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & - \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & - \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No & No \\ - 6 & Yes & Yes & No & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3, 4, 5 & No & No & No & No \\ + 6 & No & Yes & Yes & No \\ + 7 & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{P{5.5em}}{\textbf{-{}-disable-dependency-tracking}} & + \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \\ + \midrule + 0, 1, 2, 3& No & No & No & \\ + 4 & Yes & No & No & \\ + 5, 6, 7 & Yes & Yes & No & \\ + 8 & Yes & Yes & Yes & \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 2d9b9b98bc976edb2a2716eb19f3b6b793852b2a Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2d9b9b98 EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 pkg-mgr-commands.tex | 39 --- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index a163a9c..ebe5ccc 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & \t{domo} destination path & \compactfeatureref{domo-path} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ +\t{dosym -r} & \compactfeatureref{dosym-relative} & +No & No & No & No & Yes \\ + \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & No & Yes & Yes & Yes & Yes \\ @@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 817b52b..323b26d 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -599,9 +599,28 @@ the current phase function has returned. \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}. -\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If -the directory containing the new link does not exist, creates it. Failure behaviour is EAPI -dependent as per section~\ref{sec:failure-behaviour}. +\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. +If the directory containing the new link does not exist, creates it. + +\featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation +of relative paths, when called with option \t{-r}, expands the first parameter relative to +the apparent path of the directory containing the second parameter. The algorithm must return +a result identical to the one returned by the function in listing~\ref{lst:dosym-r}, +with \t{realpath} and \t{dirname} from GNU coreutils version~8.32. Specifying option \t{-r} +together with a relative path as first (target) parameter is an error. + +Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. + +\begin{listing}[h] +\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r} +\begin{verbatim} +dosym_relative_path() { +local link=$(realpath -m -s "/${2#/}") +local linkdir=$(dirname "${link}") +realpath -m -s --relative-to="${linkdir}" "$1" +} +\end{verbatim} +\end{listing} \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}. @@ -729,6 +748,20 @@ the current phase function has returned. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs supporting \t{dosym -r}} +\label{tab:dosym-r} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No \\ + 8 & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} + \subsection{Commands affecting install destinations} The following commands are used to set the various destination trees and options used by the above installation commands. They must be shell functions or aliases, due to the need to set variables
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 93132ba398a5dcb3dd7a2fd369fc38665124197b Author: Ulrich Müller gentoo org> AuthorDate: Mon May 17 15:45:42 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=93132ba3 EAPI 8: econf adds --disable-static Bug: https://bugs.gentoo.org/744871 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 +++- pkg-mgr-commands.tex | 18 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index bc2fcbc..a163a9c 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -272,7 +272,8 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & -disable dependency tracking, disable silent rules, datarootdir, docdir, htmldir, with sysroot \\ +disable dependency tracking, disable silent rules, disable static, +datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & * & Yes & Yes & Yes & Yes \\ @@ -515,6 +516,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{useq} banned, \featureref{banned-commands}. \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7909bdd..e74f730 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -338,27 +338,31 @@ commands once the current phase function has returned. \item \t{-{}-disable-silent-rules}, if the EAPI is listed in table~\ref{tab:econf-options-table} as using it. This option will only be passed if the string \t{-{}-disable-silent-rules} occurs in the output of \t{configure -{}-help}. +\item \t{-{}-disable-static}, if the EAPI is listed in table~\ref{tab:econf-options-table} +as using it. This option will only be passed if the string \t{-{}-disable-static} occurs +in the output of \t{configure -{}-help}. \end{itemize} \ChangeWhenAddingAnEAPI{8} \begin{centertable}{Extra \t{econf} arguments for EAPIs} \label{tab:econf-options-table} -\begin{tabular}{lll} +\begin{tabular}{} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & \multicolumn{1}{P{9em}}{\textbf{-{}-disable-dependency-tracking}} & \multicolumn{1}{P{5em}}{\textbf{-{}-disable-silent-rules}} & + \multicolumn{1}{c}{\textbf{-{}-disable-static}} & \multicolumn{1}{c}{\textbf{-{}-datarootdir}} & \multicolumn{1}{c}{\textbf{-{}-docdir}} & \multicolumn{1}{c}{\textbf{-{}-htmldir}} & \multicolumn{1}{c}{\textbf{-{}-with-sysroot}} \\ \midrule - 0, 1, 2, 3& No & No & No & No & No & No \\ - 4 & Yes & No & No & No & No & No \\ - 5 & Yes & Yes & No & No & No & No \\ - 6 & Yes & Yes & No & Yes & Yes & No \\ - 7 & Yes & Yes & No & Yes & Yes & Yes \\ - 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + 0, 1, 2, 3& No & No & No & No & No & No & No \\ + 4 & Yes & No & No & No & No & No & No \\ + 5 & Yes & Yes & No & No & No & No & No \\ + 6 & Yes & Yes & No & No & Yes & Yes & No \\ + 7 & Yes & Yes & No & No & Yes & Yes & Yes \\ + 8 & Yes & Yes & Yes & Yes & Yes & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 247a5d9bade95d9b67fe92689003185542c06a99 Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=247a5d9b EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 + eapi-differences.tex | 4 ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 3ef6fa6..f14a08c 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{} \toprule -& \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with& \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}}\\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} -\begin{tabular}{ll} +\begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8& Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, -\t{PDEPEND}. +\t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. -Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. +Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, +\t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & +No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: b78e112d89d5651d8ce897c6537bcd8e7718c94a Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:46:09 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b78e112d EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Bug: https://bugs.gentoo.org/701132 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 eclasses.tex | 27 ++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index cb2d26e..6e0ceeb 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -152,6 +152,9 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & +No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & * & No & No & No & No \\ @@ -499,6 +502,7 @@ EAPI 8 is EAPI 7 with the following changes: \item \t{IDEPEND}, \featureref{idepend}. \item Empty default working directory in phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index 7f4ba67..a92ce1f 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,28 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} -variables are handled specially when set by an eclass. They must be accumulated across eclasses, -appending the value set by each eclass to the resulting value after the previous one is loaded. -Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, -this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +\featurelabel{accumulate-vars} The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, +\t{PDEPEND} and \t{IDEPEND} variables are handled specially when set by an eclass. They must be +accumulated across eclasses, appending the value set by each eclass to the resulting value after +the previous one is loaded. For EAPIs listed in table~\ref{tab:accumulate-vars} as accumulating +\t{PROPERTIES} and \t{RESTRICT}, the same is true for these variables. Then the eclass-defined +value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is done after +the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. + +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{EAPIs accumulating \t{PROPERTIES} and \t{RESTRICT} across eclasses} +\label{tab:accumulate-vars} +\begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{PROPERTIES}?}} & + \multicolumn{1}{c}{\textbf{Accumulates \t{RESTRICT}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No \\ + 8 & Yes & Yes \\ + \bottomrule +\end{tabular} +\end{centertable} \section{EXPORT_FUNCTIONS}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 809c355ee7a419319986140a629598d8fb7de375 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 12:05:17 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=809c355e EAPI 8: useq, hasv and hasq are banned Bug: https://bugs.gentoo.org/199722 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 11 +++ pkg-mgr-commands.tex | 16 2 files changed, 27 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index 6e0ceeb..e10f519 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,15 @@ Most utilities die & \compactfeatureref{die-on-failure} & \t{libopts} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Banned & Banned \\ +\t{useq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & +Yes & Yes & Yes & Yes & Banned \\ + Query command options & \compactfeatureref{pm-query-options} & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & \t{-b}, \t{-d}, \t{-r} \\ @@ -503,6 +512,8 @@ EAPI 8 is EAPI 7 with the following changes: \item Empty default working directory in phase functions, \featureref{phase-function-dir}. \item Different \t{src_prepare} implementation, \featureref{src-prepare}. \item \t{PROPERTIES}, \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 71d1e89..c56e592 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -73,6 +73,16 @@ called, the package manager must abort the build process indicating an error. 4, 5 & Yes & Yes & No & No & No & No \\ 6 & Yes & Yes & Yes & No & No & No \\ 7, 8 & Yes & Yes & Yes & Yes & Yes & Yes \\ + \midrule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{6}{c}{\textbf{Command banned?}} \\ + \multicolumn{1}{c}{} & + \multicolumn{1}{c}{\textbf{\t{useq}}} & + \multicolumn{1}{c}{\textbf{\t{hasv}}} & + \multicolumn{1}{c}{\textbf{\t{hasq}}} & & & \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & No & No & No & & & \\ + 8 & Yes & Yes & Yes & & & \\ \bottomrule \end{tabular} \end{centertable} @@ -842,6 +852,8 @@ table~\ref{tab:use-list-strictness}. \item[usev] The same as \t{use}, but also prints the flag name if the condition is met. \item[useq] Deprecated synonym for \t{use}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[use_with] \featurelabel{use-with} Has one-, two-, and three-argument forms. The first argument is a USE flag name, the second a \t{configure} option name (\t{\$\{opt\}}), defaulting to the same as the first argument if not provided, and the third is a string value @@ -916,7 +928,11 @@ These functions check whitespace-separated lists for a particular value. \item[has] Returns shell true (0) if the first argument (a word) is found in the list of subsequent arguments, false otherwise. Guaranteed quiet. \item[hasv] The same as \t{has}, but also prints the first argument if found. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \item[hasq] Deprecated synonym for \t{has}. +In EAPIs listed in table~\ref{tab:banned-commands-table}, this command is banned as per +section~\ref{sec:banned-commands}. \end{description} \subsection{Version manipulation and comparison commands}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 73b0566d6e0a18a8254209e1e650b1b3e55082aa Author: Ulrich Müller gentoo org> AuthorDate: Sun May 23 09:45:56 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=73b0566d EAPI 8 has empty initial working directories in phase functions https://bugs.gentoo.org/595030 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 4 ebuild-functions.tex | 26 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index f3af563..2c1073a 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -111,6 +111,9 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in functions & \compactfeatureref{phase-function-dir} & +Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & * & Conditional & Conditional & Conditional & Conditional \\ @@ -494,6 +497,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. +\item Empty default working directory in phase functions, \featureref{phase-function-dir}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index ffdea16..44b8b43 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -22,11 +22,13 @@ Ebuilds must not call nor assume the existence of any phase functions. \subsection{Initial working directories} \label{sec:s-to-workdir-fallback} -Some functions may assume that their initial working directory is set to a particular location; -these are noted below. If no initial working directory is mandated, it may be set to anything and -the ebuild must not rely upon a particular location for it. The ebuild \emph{may} assume that the -initial working directory for any phase is a trusted location that may only be written to by a -privileged user and group. +\featurelabel{phase-function-dir} Some functions may assume that their initial working directory is +set to a particular location; these are noted below. If no initial working directory is mandated, +then for EAPIs listed in table~\ref{tab:function-dirs} as having an empty directory, it must be set +to a dedicated directory that is empty at the start of the function and may be read-only. For other +EAPIs, it may be set to anything. The ebuild must not rely upon a particular location for it. +The ebuild \emph{may} assume that the initial working directory for any phase is a trusted location +that may only be written to by a privileged user and group. \featurelabel{s-workdir-fallback} Some functions are described as having an initial working directory of \t{S} with an error or fallback to \t{WORKDIR}\@. For EAPIs listed in @@ -44,6 +46,20 @@ fallback to \t{WORKDIR} is used: executed, are in \t{DEFINED_PHASES}. \end{compactitem} +\ChangeWhenAddingAnEAPI{8} +\begin{centertable}{Default initial working directory in phase functions for EAPIs} +\label{tab:function-dirs} +\begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Working dir?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7 & Any \\ + 8 & Empty \\ + \bottomrule +\end{tabular} +\end{centertable} + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs with \t{S} to \t{WORKDIR} fallbacks} \label{tab:s-fallback-table}
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 45db43981669a05be0c0f79cb0a2506ec5aee735 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 19:06:02 2021 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=45db4398 EAPI 8: Default src_prepare doesn't accept options in PATCHES Bug: https://bugs.gentoo.org/752486 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-functions.tex | 21 ++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 1174052..cb2d26e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -124,7 +124,7 @@ Working directory in functions & \compactfeatureref{phase-function-dir} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & -* & no-op & 6 & 6 & 6 \\ +* & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -498,6 +498,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Selective fetch/mirror restriction, \featureref{uri-restrict}. \item \t{IDEPEND}, \featureref{idepend}. \item Empty default working directory in phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-functions.tex b/ebuild-functions.tex index 1bfa957..0cf8b4b 100644 --- a/ebuild-functions.tex +++ b/ebuild-functions.tex @@ -142,9 +142,9 @@ post-unpack source preparation. The initial working directory is \t{S}, with an error or fallback to \t{WORKDIR} as discussed in section~\ref{sec:s-to-workdir-fallback}. -For EAPIs listed in table~\ref{tab:src-prepare-table} as using format~6, the default +For EAPIs listed in table~\ref{tab:src-prepare-table} as using format 6 or~8, the default implementation used when the ebuild lacks the \t{src_prepare} function shall behave as in -listing~\ref{lst:src-prepare-6}. +listing~\ref{lst:src-prepare-6} or listing~\ref{lst:src-prepare-8}, respectively. For other EAPIs supporting \t{src_prepare}, the default implementation used when the ebuild lacks the \t{src_prepare} function is a no-op. @@ -160,7 +160,8 @@ the \t{src_prepare} function is a no-op. \midrule 0, 1 & No & Not applicable \\ 2, 3, 4, 5& Yes & no-op \\ - 6, 7, 8 & Yes & 6 \\ + 6, 7 & Yes & 6 \\ + 8 & Yes & 8 \\ \bottomrule \end{tabular} \end{centertable} @@ -179,6 +180,20 @@ src_prepare() { \end{verbatim} \end{listing} +\begin{listing}[H] +\caption{\t{src_prepare}, format~8} \label{lst:src-prepare-8} +\begin{verbatim} +src_prepare() { +if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then +[[ -n ${PATCHES[@]} ]] && eapply -- "${PATCHES[@]}" +else +[[ -n ${PATCHES} ]] && eapply -- ${PATCHES} +fi +eapply_user +} +\end{verbatim} +\end{listing} + \subsection{src_configure} \featurelabel{src-configure} The \t{src_configure} function is only called for EAPIs listed in
[gentoo-commits] proj/pms:eapi-8 commit in: /
commit: 8cb0536dea998be6fcb73d09484713ae8202ad4e Author: Ulrich Müller gentoo org> AuthorDate: Sun Nov 5 18:04:28 2017 + Commit: Ulrich Müller gentoo org> CommitDate: Mon May 24 09:24:49 2021 + URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8cb0536d EAPI 8: Bash version is 5.0 Bug: https://bugs.gentoo.org/636652 Signed-off-by: Ulrich Müller gentoo.org> eapi-differences.tex | 3 ++- ebuild-format.tex| 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index b89ede0..a334881 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -57,7 +57,7 @@ Stable use masking/forcing & \compactfeatureref{stablemask} & No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & -3.2 & 3.2 & 4.2 & 4.2 & 4.2 \\ +3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & No & No & Yes & Yes & Yes \\ @@ -485,6 +485,7 @@ EAPI 8 is EAPI 7 with the following changes: \begin{compactitem} \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. +\item Bash version is 5.0, \featureref{bash-version}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-format.tex b/ebuild-format.tex index c2224bf..4929ba4 100644 --- a/ebuild-format.tex +++ b/ebuild-format.tex @@ -26,7 +26,8 @@ output or standard error, or modify the state of the system in any way. \multicolumn{1}{c}{\textbf{\t{failglob} in global scope?}} \\ \midrule 0, 1, 2, 3, 4, 5 & 3.2 & No \\ - 6, 7, 8 & 4.2 & Yes \\ + 6, 7 & 4.2 & Yes \\ + 8 & 5.0 & Yes \\ \bottomrule \end{tabular} \end{centertable}