diff options
author | Ciaran McCreesh <ciaran.mccreesh@googlemail.com> | 2012-05-06 18:05:31 +0100 |
---|---|---|
committer | Ulrich Müller <ulm@gentoo.org> | 2012-09-13 08:28:16 +0200 |
commit | 6411e547f7ca417ce12c05289211ec96b2d11042 (patch) | |
tree | 63d8b37cf8d9496cc1ecace0e13852b42e878615 | |
parent | Profile IUSE injection is in EAPI 5. (diff) | |
download | pms-6411e547f7ca417ce12c05289211ec96b2d11042.tar.gz pms-6411e547f7ca417ce12c05289211ec96b2d11042.tar.bz2 pms-6411e547f7ca417ce12c05289211ec96b2d11042.zip |
EAPI 5 supports ?? ( ) groups
See bug 354219
-rw-r--r-- | dependencies.tex | 33 | ||||
-rw-r--r-- | eapi-differences.tex | 4 |
2 files changed, 37 insertions, 0 deletions
diff --git a/dependencies.tex b/dependencies.tex index 8f78f3d..ff12299 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -66,6 +66,12 @@ be surrounded on both sides by whitespace, except at the start and end of the st parenthesis. More formally: \t{exactly-one-of ::= '\textasciicircum\textasciicircum' whitespace '(' whitespace (item whitespace)* ')'}. Permitted in \t{REQUIRED\_USE}. +\item \featurelabel{at-most-one-of} An at-most-one-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{exactly-one-of ::= '??' 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. \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 @@ -93,6 +99,23 @@ In particular, note that whitespace is not optional. \end{tabular} \end{centertable} +\ChangeWhenAddingAnEAPI{5} +\begin{centertable}{EAPIs supporting \t{REQUIRED\_USE ??}\ groups} \label{tab:at-most-one-of-table} + \begin{tabular}{ l l } + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Supports \t{REQUIRED\_USE ??}\ groups?}} \\ + \midrule + \t{0} & No \\ + \t{1} & No \\ + \t{2} & No \\ + \t{3} & No \\ + \t{4} & No \\ + \t{5} & Yes \\ + \bottomrule + \end{tabular} +\end{centertable} + \subsection{All-of Dependency Specifications} In an all-of group, all of the child elements must be matched. @@ -126,6 +149,16 @@ In an exactly-one-of group, exactly one immediate child element must be matched. An empty exactly-one-of group counts as being matched. +\subsection{At-most-one-of Dependency Specifications} + +Any use-conditional group that is an immediate child of an at-most-one-of group, if not enabled +(disabled for an exclamation mark prefixed use flag name), is not considered a member of the +at-most-one-of group for match purposes. + +In an at-most-one-of group, at most one immediate child element must be matched. + +An empty at-most-one-of group counts as being matched. + \subsection{Package Dependency Specifications} A package dependency can be in one of the following base formats. A package manager must warn or diff --git a/eapi-differences.tex b/eapi-differences.tex index 8ece012..3e4bf27 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -55,6 +55,9 @@ \t{DEFINED\_PHASES} & \compactfeatureref{defined-phases} & Optionally & Optionally & Optionally & Optionally & Yes & Yes \\ +\t{?? ( ) groups} & \compactfeatureref{at-most-one-of} & + No & No & No & No & No & Yes \\ + \t{SRC\_URI} arrows & \compactfeatureref{src-uri-arrows} & No & No & Yes & Yes & Yes & Yes \\ @@ -248,6 +251,7 @@ EAPI 4 is EAPI 3 with the following changes: EAPI 5 is EAPI 4 with the following changes: \begin{compactitem} +\item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}. \item Slot operator dependencies, \featureref{slot-operator-deps}. \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}. \item \t{econf} adds \t{-{}-disable-silent-rules}, \featureref{econf-options}. |