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 1B9301384B4 for ; Sun, 8 Nov 2015 19:37:04 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7B511E085B; Sun, 8 Nov 2015 19:36:57 +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 5312BE0857 for ; Sun, 8 Nov 2015 19:36:56 +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 A07B633FDBF for ; Sun, 8 Nov 2015 19:36:55 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 97D0D22CA for ; Sun, 8 Nov 2015 19:36:52 +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: <1447010960.a8196cb8791b2eba41e27e9adae2c591fcefa04c.ulm@gentoo> Subject: [gentoo-commits] proj/pms:eapi-6 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: pkg-mgr-commands.tex X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: a8196cb8791b2eba41e27e9adae2c591fcefa04c X-VCS-Branch: eapi-6 Date: Sun, 8 Nov 2015 19:36:52 +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: 697e3908-c2cc-4713-a9ae-87a06293b751 X-Archives-Hash: eba718a005d61b2cf8a1f06740049d9c commit: a8196cb8791b2eba41e27e9adae2c591fcefa04c Author: Michał Górny gentoo org> AuthorDate: Wed Oct 14 16:44:02 2015 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Sun Nov 8 19:29:20 2015 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=a8196cb8 EAPI 6: Explain eapply behavior. Bug: 463768 pkg-mgr-commands.tex | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex index 28a96b0..89c00ff 100644 --- a/pkg-mgr-commands.tex +++ b/pkg-mgr-commands.tex @@ -148,14 +148,47 @@ These commands are used during the \t{src\_prepare} phase to apply patches to th Ebuilds must not run any of these commands once the current phase function has returned. \begin{description} -\item[eapply] \featurelabel{eapply} +\item[eapply] \featurelabel{eapply} Takes zero or more GNU patch options, followed by one or more + file or directory paths. Processes options and applies all patches found in specified locations + according to Algorithm~\ref{alg:eapply}. If applying the patches fails, it aborts the build + using \t{die}, unless run using \t{nonfatal}, in which case it returns non-zero exit status. Only available in EAPIs listed in table~\ref{tab:patch-commands} as supporting \t{eapply}. \end{description} \begin{algorithm} \caption{eapply logic} \label{alg:eapply} \begin{algorithmic}[1] -\STATE \COMMENT{WORK IN PROGRESS} +\IF{any parameter is equal to \t{"-{}-"}} + \STATE collect all parameters before the first \t{"-{}-"} in the \t{options} array + \STATE collect all parameters after the first \t{"-{}-"} in the \t{files} array +\ELSIF{any parameter that begins with a hyphen follows one that does not} + \STATE abort the build process with an error +\ELSE + \STATE collect all parameters beginning with a hyphen in the \t{options} array + \STATE collect all remaining parameters in the \t{files} array +\ENDIF +\IF{the \t{files} array is empty} + \STATE abort the build process with an error +\ENDIF +\FORALL{\t{x} in the \t{files} array} + \IF{\t{\$x} is a directory} + \IF{\NOT any files match \t{\$x/*.diff} or \t{\$x/*.patch}} + \STATE abort the build process with an error + \ENDIF + \FORALL{files \t{f} matching \t{\$x/*.diff} or \t{\$x/*.patch}, sorted in POSIX locale} + \STATE call \t{patch -p1 -f -g0 -{}-no-backup-if-mismatch "\$\{options[@]\}" < "\$f"} + \IF{child process returned with non-zero exit status} + \RETURN immediately with that status + \ENDIF + \ENDFOR + \ELSE + \STATE call \t{patch -p1 -f -g0 -{}-no-backup-if-mismatch "\$\{options[@]\}" < "\$x"} + \IF{child process returned with non-zero exit status} + \RETURN immediately with that status + \ENDIF + \ENDIF +\ENDFOR +\RETURN shell true (0) \end{algorithmic} \end{algorithm}