From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-778827-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	by finch.gentoo.org (Postfix) with ESMTP id A75AE138CAE
	for <garchives@archives.gentoo.org>; Tue,  3 Mar 2015 07:37:14 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 2A7BDE0894;
	Tue,  3 Mar 2015 07:37:14 +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 82DE6E08A8
	for <gentoo-commits@lists.gentoo.org>; Tue,  3 Mar 2015 07:37:13 +0000 (UTC)
Received: from manakin.gentoo.org (static-108-28-123-98.washdc.fios.verizon.net [108.28.123.98])
	(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 62CF234090E
	for <gentoo-commits@lists.gentoo.org>; Tue,  3 Mar 2015 07:37:12 +0000 (UTC)
Received: from localhost.localdomain (localhost [127.0.0.1])
	by manakin.gentoo.org (Postfix) with ESMTP id 508E7608E1
	for <gentoo-commits@lists.gentoo.org>; Tue,  3 Mar 2015 06:18:42 +0000 (UTC)
From: "git@oystercatcher mirror+tproxy" <git@oystercatcher.gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "git@oystercatcher mirror+tproxy" <git@oystercatcher.gentoo.org>
Message-ID: <1424333849.85f7a20ba16417742bc053e72a91d467b3a75e66.git@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: git
X-VCS-Committer-Name: git@oystercatcher mirror+tproxy
X-VCS-Revision: 85f7a20ba16417742bc053e72a91d467b3a75e66
X-VCS-Branch: eapi-6
Date: Tue,  3 Mar 2015 06:18:42 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Archives-Salt: bb23e28d-5cb7-43a9-a39c-09484c9e3ffc
X-Archives-Hash: b6c9753f2dc54dad74f73ecf9e7a11e9

commit:     85f7a20ba16417742bc053e72a91d467b3a75e66
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 16 14:42:19 2015 +0000
Commit:     git@oystercatcher mirror+tproxy <git <AT> oystercatcher <DOT> gentoo <DOT> org>
CommitDate: Thu Feb 19 08:17:29 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=85f7a20b

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 9760d7e..7e4cd09 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 14e27d2..bf688f9 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