From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/pms:eapi-7 commit in: /
Date: Wed, 4 Oct 2017 16:42:36 +0000 (UTC) [thread overview]
Message-ID: <1507135333.59a2d7e1474b93e9437fb51e00a434aa5e9a3991.mgorny@gentoo> (raw)
commit: 59a2d7e1474b93e9437fb51e00a434aa5e9a3991
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 4 16:42:13 2017 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 4 16:42:13 2017 +0000
URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=59a2d7e1
EAPI 7 has binding leftmost-of dep groups (||=).
Bug: https://bugs.gentoo.org/489458
dependencies.tex | 45 ++++++++++++++++++++++++++++++++++++++-------
eapi-differences.tex | 4 ++++
2 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/dependencies.tex b/dependencies.tex
index e1a4247..2e3183f 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -98,6 +98,12 @@ be surrounded on both sides by whitespace, except at the start and end of the st
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}.
+\item \featurelabel{binding-leftmost-of} A binding leftmost-of group, which consists of the string
+ \t{||=}, followed by whitespace, followed by an open parenthesis, followed by whitespace,
+ followed by zero 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} in EAPIs
+ listed in table~\ref{tab:dep-group-table} as supporting \t{||=}\ groups.
\item An exactly-one-of group, which consists of the string \t{\textasciicircum\textasciicircum},
followed by whitespace, followed by an open parenthesis, followed by whitespace, followed by
zero or more of (a dependency item of any kind followed by whitespace), followed by a close
@@ -109,7 +115,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
zero or more of (a dependency item of any kind followed by whitespace), followed by a close
parenthesis. More formally: \t{at-most-one-of} \t{::=} \t{'??'\ whitespace '(' whitespace
(item whitespace)* ')'}. Permitted in \t{REQUIRED_USE} in EAPIs listed in
- table~\ref{tab:at-most-one-of-table} as supporting \t{REQUIRED_USE ??}\ groups.
+ table~\ref{tab:dep-group-table} as supporting \t{REQUIRED_USE ??}\ groups.
\item A use-conditional group, which consists of an optional exclamation mark, followed by
a use flag name, followed by a question mark, followed by whitespace, followed by
an open parenthesis, followed by whitespace, followed by zero or more of (a dependency item
@@ -150,15 +156,17 @@ In particular, note that whitespace is not optional.
\end{centertable}
\ChangeWhenAddingAnEAPI{7}
-\begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups}
- \label{tab:at-most-one-of-table}
- \begin{tabular}{ll}
+\begin{centertable}{EAPIs supporting additional group types}
+ \label{tab:dep-group-table}
+ \begin{tabular}{lll}
\toprule
\multicolumn{1}{c}{\textbf{EAPI}} &
- \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} \\
+ \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED_USE ??}\ groups?}} &
+ \multicolumn{1}{c}{\textbf{Supports \t{||=}\ groups?}} \\
\midrule
- 0, 1, 2, 3, 4 & No \\
- 5, 6, 7 & Yes \\
+ 0, 1, 2, 3, 4 & No & No \\
+ 5, 6 & Yes & No \\
+ 7 & Yes & Yes \\
\bottomrule
\end{tabular}
\end{centertable}
@@ -186,6 +194,29 @@ considered to be matched if its associated package dependency specification is n
An empty any-of group counts as being matched.
+\subsection{Binding leftmost-of dependency specifications}
+
+Any use-conditional group that is an immediate child of a binding leftmost-of group, if not enabled
+(disabled for an exclamation mark prefixed use flag name), is not considered a member of the binding
+leftmost-of group for match purposes.
+
+In a binding leftmost-of group, at least one immediate child element must be matched. A blocker is
+considered to be matched if its associated package dependency specification is not matched.
+In addition, for runtime dependencies, indicates that the package will break unless the dependency
+corresponding to the first immediate child (in order of listing) matched at the time the package was
+built is satisfied.
+
+An empty binding leftmost-of group counts as being matched.
+
+To implement the binding leftmost-of operator, the package manager will need to store which of
+the immediate child elements were matched. This syntax is only for package manager use and must not
+be used by ebuilds. Only the first matched child element needs to be indicated.
+
+Whenever the binding leftmost-of group is used in an enabled dependency group, the dependencies
+(\t{DEPEND}) must ensure that at least one of the immediate child elements is also matched at build
+time. It is invalid to use the binding leftmost-of group inside PDEPEND or inside any-of dependency
+specifications.
+
\subsection{Exactly-one-of dependency specifications}
Any use-conditional group that is an immediate child of an exactly-one-of group, if not enabled
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 87ce708..a89f5f8 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -41,6 +41,9 @@ of this document for a complete table of previous EAPIs.
\bottomrule
\endlastfoot
+\t{||=} dependency group & \compactfeatureref{binding-leftmost-of} &
+ No & No & No & No & Yes \\
+
\t{REQUIRED_USE} autoenforced & \compactfeatureref{auto-req-use} &
No & No & No & No & Yes \\
@@ -467,6 +470,7 @@ EAPI 7 is EAPI 6 with the following changes:
\featureref{nonfatal-fallback}.
\item \t{die} guaranteed to work in a subshell environment, \featureref{subshell-die}.
\item automatic enforcing of \t{REQUIRED_USE} is supported, \featureref{auto-req-use}.
+\item binding leftmost-of (\t{||=}) dependency group is supported, \featureref{binding-leftmost-of}.
\end{compactitem}
\ChangeWhenAddingAnEAPI{7}
next reply other threads:[~2017-10-04 16:42 UTC|newest]
Thread overview: 207+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-04 16:42 Michał Górny [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-04-30 22:13 [gentoo-commits] proj/pms:eapi-7 commit in: / Ulrich Müller
2018-04-26 20:16 Ulrich Müller
2018-04-26 20:16 Ulrich Müller
2018-04-26 6:30 Ulrich Müller
2018-04-05 16:57 Ulrich Müller
2018-04-05 16:57 Ulrich Müller
2018-04-05 16:57 Ulrich Müller
2018-03-09 16:51 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-24 12:58 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2018-02-18 13:36 Ulrich Müller
2017-11-12 19:14 Ulrich Müller
2017-11-09 20:57 Michał Górny
2017-11-09 16:51 Michał Górny
2017-11-07 18:22 Ulrich Müller
2017-11-07 17:23 Ulrich Müller
2017-11-07 17:23 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-09 17:31 Ulrich Müller
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 20:25 Michał Górny
2017-10-04 17:44 Michał Górny
2017-10-04 17:36 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:48 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:25 Michał Górny
2017-10-04 16:10 Michał Górny
2017-10-01 7:11 Michał Górny
2017-10-01 7:11 Michał Górny
2017-10-01 7:11 Michał Górny
2017-09-29 14:33 Michał Górny
2017-09-29 14:33 Michał Górny
2017-09-29 14:03 Michał Górny
2017-09-29 14:03 Michał Górny
2017-09-29 13:42 Michał Górny
2017-09-29 3:17 Michał Górny
2017-09-29 3:17 Michał Górny
2017-09-29 3:17 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 20:53 Michał Górny
2017-09-28 17:51 Michał Górny
2017-09-28 16:58 Michał Górny
2017-09-28 16:58 Michał Górny
2017-09-28 16:58 Michał Górny
2017-09-28 16:58 Michał Górny
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:12 Ulrich Müller
2017-04-10 18:11 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-04-09 8:47 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-03-29 5:12 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-03-20 19:28 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-03-18 7:23 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-03-12 15:33 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-02-23 7:46 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-02-11 7:58 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-02-11 7:58 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2017-02-08 20:15 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2016-11-29 7:33 [gentoo-commits] proj/pms:master " Ulrich Müller
2017-04-10 18:12 ` [gentoo-commits] proj/pms:eapi-7 " Ulrich Müller
2015-12-05 20:15 Ulrich Müller
2015-12-05 20:15 Ulrich Müller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1507135333.59a2d7e1474b93e9437fb51e00a434aa5e9a3991.mgorny@gentoo \
--to=mgorny@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox