From b2f9b0e201a30b3a6264df1d04e3b06141990b82 Mon Sep 17 00:00:00 2001
From: Ciaran McCreesh <ciaran.mccreesh@googlemail.com>
Date: Mon, 16 Mar 2009 19:08:19 +0000
Subject: EAPI 3 has use dependency defaults

---
 dependencies.tex | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

(limited to 'dependencies.tex')

diff --git a/dependencies.tex b/dependencies.tex
index bcb5505..ef1132b 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -193,10 +193,10 @@ EAPI not supporting \t{SLOT} dependencies.
 }{
 }
 
-In EAPIs shown in table~\ref{tab:use-deps-table} as supporting 2-style \t{USE} dependencies, a specification
-may additionally be suffixed by at most one 2-style \t{[use]} restriction, as described in
-section~\ref{sec:use-dep}. A package manager must warn or error if this feature is used with an EAPI
-not supporting use dependencies.
+In EAPIs shown in table~\ref{tab:use-deps-table} as supporting 2-style or 3-style \t{USE}
+dependencies, a specification may additionally be suffixed by at most one 2-style or 3-style
+\t{[use]} restriction, as described in section~\ref{sec:use-dep}. A package manager must warn or
+error if this feature is used with an EAPI not supporting use dependencies.
 
 \IFKDEBUILDELSE
 {
@@ -267,7 +267,7 @@ not supporting use dependencies.
     \t{1} & No \\
     \t{kdebuild-1} & kdebuild-style \\
     \t{2} & 2-style \\
-    \t{3} & 2-style \\
+    \t{3} & 3-style \\
     \bottomrule
     \end{tabular}
     \end{centertable}
@@ -281,6 +281,7 @@ not supporting use dependencies.
     \t{0} & No \\
     \t{1} & No \\
     \t{2} & 2-style \\
+    \t{3} & 3-style \\
     \bottomrule
     \end{tabular}
     \end{centertable}
@@ -430,10 +431,10 @@ is only for package manager use and must not be used by ebuilds.
 }{
 }
 
-\subsubsection{2-Style Use Dependencies}
+\subsubsection{2-Style and 3-Style Use Dependencies}
 \label{sec:use-dep}
 
-A 2-style use dependency consists of one of the following:
+A 2-style or 3-style use dependency consists of one of the following:
 
 \begin{description}
 \item{[opt]} The flag must be enabled.
@@ -452,9 +453,20 @@ Multiple requirements may be combined using commas, e.g. \t{[first,-second,third
 
 When multiple requirements are specified, all must match for a successful match.
 
-It is an error for a use dependency to be applied to an ebuild which does not have the flag in
-question in \t{IUSE}, or for an ebuild to use a conditional use dependency when that ebuild does
-not have the flag in \t{IUSE}.
+In a 3-style use dependency, the flag name may immediately be followed by a \e{default} specified by
+either \t{(+)} or \t{(-)}. The former indicates that, when applying the use dependency to a package
+that does not have the flag in question in \t{IUSE}, the package manager shall behave as if the flag
+were present and enabled; the latter, present and disabled.
+
+Unless a 3-style default is specified, it is an error for a use dependency to be applied to an
+ebuild which does not have the flag in question in \t{IUSE}.
+
+\note By extension of the above, a default that could reference an ebuild using an EAPI not
+supporting profile \t{IUSE} injections cannot rely upon any particular behaviour for flags that
+would not have to be part of \t{IUSE}.
+
+It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the
+flag in \t{IUSE}.
 
 \IFKDEBUILDELSE
 {
-- 
cgit v1.2.3-65-gdbad

