commit: bc3575df2a027e714b2a11365a5f5dcedd7eb7b7 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Thu Sep 28 14:10:20 2017 +0000 Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org> CommitDate: Sun Feb 18 13:35:54 2018 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=bc3575df
EAPI 7 disallows stdout output of output functions Bug: https://bugs.gentoo.org/483240 eapi-differences.tex | 4 ++++ pkg-mgr-commands.tex | 22 ++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 96e0c0c..d7153a8 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -236,6 +236,9 @@ Sandbox \t{rm*} commands & \compactfeatureref{sandbox-rm} & Query command options & \compactfeatureref{pm-query-options} & None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\ +Output commands use stdout & \compactfeatureref{output-no-stdout} & + Yes & Yes & Yes & Yes & No \\ + \t{die -n} & \compactfeatureref{nonfatal-die} & No & No & No & Yes & Yes \\ @@ -461,6 +464,7 @@ EAPI 7 is EAPI 6 with the following changes: \item \t{dohtml} banned, \featureref{banned-commands}. \item \t{dolib} and \t{libopts} banned, \featureref{banned-commands}. \item Sandbox path removal commands, \featureref{sandbox-rm}. +\item Output commands no longer use stdout, \featureref{output-no-stdout}. \end{compactitem} \ChangeWhenAddingAnEAPI{7} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 2d23075..4f74fc4 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -161,8 +161,12 @@ These commands display messages to the user. Unless otherwise stated, the entire used as a message, with backslash-escaped characters interpreted as for the \t{echo -e} command of bash, notably \t{\textbackslash t} for a horizontal tab, \t{\textbackslash n} for a new line, and \t{\textbackslash\textbackslash} for a literal backslash. Ebuilds must not run any of these commands -once the current phase function has returned. Unless otherwise noted, output may be sent to stdout, -stderr or some other appropriate facility. +once the current phase function has returned. + +\featurelabel{output-no-stdout} Unless otherwise noted, output may be sent to stderr or some other +appropriate facility. In EAPIs listed in table~\ref{tab:output-commands} as not allowing stdout +output, using stdout as an output facility is forbidden. + \begin{description} \item[einfo] Displays an informational message. \item[einfon] Displays an informational message without a trailing newline. @@ -179,6 +183,20 @@ stderr or some other appropriate facility. message followed by a failure indicator. Returns its first argument as exit status. \end{description} +\ChangeWhenAddingAnEAPI{7} +\begin{centertable}{Output commands for EAPIs} + \label{tab:output-commands} + \begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Commands can output to stdout?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6 & Yes \\ + 7 & No \\ + \bottomrule + \end{tabular} +\end{centertable} + \subsection{Error commands} These commands are used when an error is detected that will prevent the build process from completing. Ebuilds must not run any of these commands once the current phase function has returned.
