Lines 13-20
There are three classes of dependencies supported by ebuilds:
Link Here
|
13 |
\item Post dependencies (\t{PDEPEND}). These must be installed at some point. |
13 |
\item Post dependencies (\t{PDEPEND}). These must be installed at some point. |
14 |
\end{compactitem} |
14 |
\end{compactitem} |
15 |
|
15 |
|
16 |
In addition, \t{SRC\_URI}, \t{HOMEPAGE}, \t{PROVIDE}, \t{RESTRICT}, \t{PROPERTIES} and \t{LICENSE} |
16 |
In addition, \t{SRC\_URI}, \t{HOMEPAGE}, \t{PROVIDE}, \t{RESTRICT}, \t{PROPERTIES}, \t{LICENSE} and |
17 |
use dependency-style specifications to specify their values. |
17 |
\t{REQUIRED\_USE} use dependency-style specifications to specify their values. |
18 |
|
18 |
|
19 |
\section{Dependency Specification Format} |
19 |
\section{Dependency Specification Format} |
20 |
|
20 |
|
Lines 31-36
be surrounded on both sides by whitespace, except at the start and end of the st
Link Here
|
31 |
\t{SRC\_URI}. For \t{SRC\_URI} behaviour, see section~\ref{sec:src-uri-behaviour}. |
31 |
\t{SRC\_URI}. For \t{SRC\_URI} behaviour, see section~\ref{sec:src-uri-behaviour}. |
32 |
\item A flat filename. Permitted in \t{SRC\_URI}. |
32 |
\item A flat filename. Permitted in \t{SRC\_URI}. |
33 |
\item A license name (e.\,g.\ \t{GPL-2}). Permitted in \t{LICENSE}. |
33 |
\item A license name (e.\,g.\ \t{GPL-2}). Permitted in \t{LICENSE}. |
|
|
34 |
\item A use flag name, optionally preceded by an exclamation mark. Permitted in \t{REQUIRED\_USE}. |
34 |
\item A simple string. Permitted in \t{RESTRICT} and \t{PROPERTIES}. |
35 |
\item A simple string. Permitted in \t{RESTRICT} and \t{PROPERTIES}. |
35 |
\item An all-of group, which consists of an open parenthesis, followed by whitespace, |
36 |
\item An all-of group, which consists of an open parenthesis, followed by whitespace, |
36 |
followed by zero or more of (a dependency item of any kind followed by whitespace), followed |
37 |
followed by zero or more of (a dependency item of any kind followed by whitespace), followed |
Lines 41-47
be surrounded on both sides by whitespace, except at the start and end of the st
Link Here
|
41 |
followed by an open parenthesis, followed by whitespace, followed by zero or more |
42 |
followed by an open parenthesis, followed by whitespace, followed by zero or more |
42 |
of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. |
43 |
of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. |
43 |
More formally: \t{any-of ::= '||' whitespace '(' whitespace (item whitespace)* ')'}. |
44 |
More formally: \t{any-of ::= '||' whitespace '(' whitespace (item whitespace)* ')'}. |
44 |
Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}. |
45 |
Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED\_USE}. |
|
|
46 |
\item A one-of group, which consists of the string \t{\textasciicircum\textasciicircum}, followed |
47 |
by whitespace, followed by an open parenthesis, followed by whitespace, followed by zero or |
48 |
more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. |
49 |
More formally: \t{one-of ::= '\textasciicircum\textasciicircum' whitespace '(' whitespace |
50 |
(item whitespace)* ')'}. |
51 |
Permitted in \t{REQUIRED\_USE}. |
45 |
\item A use-conditional group, which consists of an optional exclamation mark, followed by |
52 |
\item A use-conditional group, which consists of an optional exclamation mark, followed by |
46 |
a use flag name, followed by a question mark, followed by whitespace, followed by |
53 |
a use flag name, followed by a question mark, followed by whitespace, followed by |
47 |
an open parenthesis, followed by whitespace, followed by zero or more of (a dependency item |
54 |
an open parenthesis, followed by whitespace, followed by zero or more of (a dependency item |
Lines 90-95
considered to be matched if its associated package dependency specification is n
Link Here
|
90 |
|
97 |
|
91 |
An empty any-of group counts as being matched. |
98 |
An empty any-of group counts as being matched. |
92 |
|
99 |
|
|
|
100 |
\subsection{One-of Dependency Specifications} |
101 |
|
102 |
Any use-conditional group that is an immediate child of a one-of group, if not enabled (disabled |
103 |
for an exclamation mark prefixed use flag name), is not considered a member of the one-of group for |
104 |
match purposes. |
105 |
|
106 |
In a one-of group, exactly one immediate child element must be matched. |
107 |
|
108 |
An empty one-of group counts as being matched. |
109 |
|
93 |
\subsection{Package Dependency Specifications} |
110 |
\subsection{Package Dependency Specifications} |
94 |
|
111 |
|
95 |
A package dependency can be in one of the following base formats. A package manager must warn or |
112 |
A package dependency can be in one of the following base formats. A package manager must warn or |
Lines 257-262
would not have to be part of \t{IUSE}.
Link Here
|
257 |
It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the |
274 |
It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the |
258 |
flag in \t{IUSE\_EFFECTIVE}. |
275 |
flag in \t{IUSE\_EFFECTIVE}. |
259 |
|
276 |
|
|
|
277 |
\subsection{Use State Constraints} |
278 |
\label{sec:required-use} |
279 |
\t{REQUIRED\_USE} contains a list of assertions that must be met by the configuration of \t{USE} |
280 |
flags to be valid for this ebuild. In order to be matched, a \t{USE} flag in a terminal element |
281 |
must be enabled (or disabled if it has an exclamation mark prefix). |
282 |
|
283 |
It is an error for a flag to be used if it is not included in \t{IUSE\_EFFECTIVE}. |
284 |
|
260 |
\subsection{Restrict} |
285 |
\subsection{Restrict} |
261 |
\label{sec:restrict} |
286 |
\label{sec:restrict} |
262 |
|
287 |
|