From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id B72561384C0 for ; Sun, 30 Aug 2015 19:03:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 421CF142B3; Sun, 30 Aug 2015 19:03:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id F20EC142B2 for ; Sun, 30 Aug 2015 19:03:35 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8D525340997 for ; Sun, 30 Aug 2015 19:03:34 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A90EC188 for ; Sun, 30 Aug 2015 19:03:31 +0000 (UTC) From: "Ulrich Müller" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" Message-ID: <1440961053.6f705e02045cd53c461f5dadd6a70c7565c03602.ulm@gentoo> Subject: [gentoo-commits] proj/pms:eapi-6 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: eapi-differences.tex pkg-mgr-commands.tex X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: 6f705e02045cd53c461f5dadd6a70c7565c03602 X-VCS-Branch: eapi-6 Date: Sun, 30 Aug 2015 19:03:31 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 627e6c33-7414-4634-b7d4-362f1f0daa75 X-Archives-Hash: e5a48e38a0319e2a00e07934631dd15b commit: 6f705e02045cd53c461f5dadd6a70c7565c03602 Author: Ulrich Müller gentoo org> AuthorDate: Mon Feb 16 14:42:19 2015 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Sun Aug 30 18:57:33 2015 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=6f705e02 EAPI 6: die and assert called with -n respect nonfatal. See bug 451938. eapi-differences.tex | 4 ++++ pkg-mgr-commands.tex | 33 ++++++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 6ec5209..2a4f840 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -169,6 +169,9 @@ Most utilities die & \compactfeatureref{die-on-failure} & Option \t{-{}-host-root} & \compactfeatureref{host-root-option} & No & No & No & Yes & Yes \\ +\t{die -n} & \compactfeatureref{nonfatal-die} & + No & No & No & No & Yes \\ + \t{econf} arguments & \compactfeatureref{econf-options} & & & disable dependency tracking & disable dependency tracking, disable silent rules & @@ -320,6 +323,7 @@ EAPI 6 is EAPI 5 with the following changes: \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. \item \t{einstall} banned, \featureref{banned-commands}. +\item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. \end{compactitem} \ChangeWhenAddingAnEAPI{6} diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 7e29f3d..ecaee6e 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -18,9 +18,11 @@ The following commands affect this behaviour: \begin{description} \item[nonfatal] \featurelabel{nonfatal} Executes the remainder of its arguments as a command, preserving the exit status. If this results in a command being called that would normally abort - the build process due to a failure (but not due to an explicit \t{die} or \t{assert} call), - instead a non-zero exit status shall be returned. Only in EAPIs listed in - table~\ref{tab:commands-die-table} as supporting \t{nonfatal}. + the build process due to a failure, instead a non-zero exit status shall be returned. Only in + EAPIs listed in table~\ref{tab:commands-die-table} as supporting \t{nonfatal}. + + Explicit \t{die} or \t{assert} commands only respect \t{nonfatal} when called with the \t{-n} + option and in EAPIs supporting this option, see table~\ref{tab:nonfatal-die}. \end{description} \ChangeWhenAddingAnEAPI{6} @@ -117,13 +119,30 @@ stderr or some other appropriate facility. 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. \begin{description} -\item[die] Displays a failure message provided in its first and only argument, and then aborts the - build process. \t{die} is \e{not} guaranteed to work correctly if called from a subshell - environment. +\item[die] \featurelabel{nonfatal-die} If called under the \t{nonfatal} command (as per + section~\ref{sec:failure-behaviour}) and with \t{-n} as its first parameter, displays a failure + message provided in its following argument and then returns a non-zero exit status. Only in + EAPIs listed in table~\ref{tab:nonfatal-die} as supporting option~\t{-n}. Otherwise, displays + a failure message provided in its first and only argument, and then aborts the build process. + \t{die} is \e{not} guaranteed to work correctly if called from a subshell environment. \item[assert] Checks the value of the shell's pipe status variable, and if any component is non-zero - (indicating failure), calls \t{die} with its first argument as a failure message. + (indicating failure), calls \t{die}, passing any parameters to it. \end{description} +\ChangeWhenAddingAnEAPI{6} +\begin{centertable}{EAPIs supporting \t{-n} for \t{die} and \t{assert} commands} + \label{tab:nonfatal-die} + \begin{tabular}{ l l } + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{\t{die} and \t{assert} support \t{-n}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5 & No \\ + 6 & Yes \\ + \bottomrule + \end{tabular} +\end{centertable} + \subsubsection{Build commands} These commands are used during the \t{src\_configure}, \t{src\_compile}, and \t{src\_install} phases to run the package's build commands. Ebuilds must not run any of these commands once the