commit:     837baf076e927538e63fde72c99d72ddcd0ab702
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 23:01:54 2015 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Dec  5 20:14:50 2015 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=837baf07

EAPI 7 supports directories for profile files.

Bug: 282296

 eapi-differences.tex |  5 +++++
 profiles.tex         | 38 +++++++++++++++++++++++++++++++-------
 2 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a66d388..6683488 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
     No & No & No & No & Yes \\
 
+Profile files as directories & \compactfeatureref{profile-file-dirs} &
+    No & No & No & No & Yes \\
+
 Stable use masking/forcing & \compactfeatureref{stablemask} &
     No & No & Yes & Yes & Yes \\
 
@@ -377,6 +380,8 @@ EAPI 7 is EAPI 6 with the following changes:
 
 \begin{compactitem}
 \item \t{profiles/package.mask} can be a directory, 
\featureref{package-mask-dir}.
+\item \t{package.mask}, \t{package.use}, \t{use.*} and \t{package.use.*} in a 
profile can be
+    directories, \featureref{profile-file-dirs}.
 \item \t{dohtml} banned, \featureref{banned-commands}.
 \end{compactitem}
 

diff --git a/profiles.tex b/profiles.tex
index 4a167ea..e56dce0 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -70,6 +70,27 @@ parent profile's list is taken, and the current profile's 
list appended. If any
 hyphen, then any lines previous to it whose contents are equal to the 
remainder of that line are
 removed from the list. Once again, blank lines and those beginning with a \# 
are discarded.
 
+\featurelabel{profile-file-dirs} In EAPIs listed in 
table~\ref{tab:profile-file-dirs} as supporting
+directories for profile files, any of the files \t{package.mask}, 
\t{package.use}, \t{use.*} and
+\t{package.use.*} mentioned below can be a directory instead of a regular 
file. Files contained
+in that directory, unless their name begins with a dot, will be concatenated 
in order of their
+filename in the POSIX locale and the result will be processed as if it were a 
single file.
+Any subdirectories will be ignored.
+
+\ChangeWhenAddingAnEAPI{7}
+\begin{centertable}{EAPIs supporting directories for profile files}
+    \label{tab:profile-file-dirs}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6 & No  \\
+      7                   & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{packages}
 The \t{packages} file is used to define the `system set' for this profile.
 After the above rules for inheritance and comments are applied, its lines must 
take one of two
@@ -85,7 +106,8 @@ but is mentioned here for completeness.
 \subsection{package.mask}
 \t{package.mask} is used to prevent packages from being installed on a given 
profile. Each line
 contains one package dependency specification; anything matching this 
specification will not be
-installed unless unmasked by the user's configuration.
+installed unless unmasked by the user's configuration. In some EAPIs, 
\t{package.mask} can be a
+directory instead of a regular file as per section~\ref{sec:line-stacking}.
 
 Note that the \t{-spec} syntax can be used to remove a mask in a parent 
profile, but not
 necessarily a global mask (from \t{profiles/package.mask}, 
section~\ref{profiles-package.mask}).
@@ -100,18 +122,20 @@ has severe adverse effects on USE-based and slot-based 
dependencies, its use is
 and package manager support must be regarded as purely optional.
 
 \subsection{package.use}
-The \t{package.use} file may be used by the package manager to override the 
default USE flags specified
-by \t{make.defaults} on a per package basis.  The format is to have a package 
dependency specification,
-and then a space delimited list of USE flags to enable.  A USE flag in the 
form of \t{-flag} indicates
-that the package should have the USE flag disabled.  The package dependency 
specification is limited to
-the forms defined by the directory's EAPI.
+The \t{package.use} file may be used by the package manager to override the 
default USE flags
+specified by \t{make.defaults} on a per package basis. The format is to have a 
package dependency
+specification, and then a space delimited list of USE flags to enable. A USE 
flag in the form of
+\t{-flag} indicates that the package should have the USE flag disabled. The 
package dependency
+specification is limited to the forms defined by the directory's EAPI. In some 
EAPIs,
+\t{package.use} can be a directory instead of a regular file as per 
section~\ref{sec:line-stacking}.
 
 \subsection{USE masking and forcing}
 \label{sec:use-masking}
 This section covers the eight files \t{use.mask}, \t{use.force}, 
\t{use.stable.mask},
 \t{use.stable.force}, \t{package.use.mask}, \t{package.use.force}, 
\t{package.use.stable.mask},
 and \t{package.use.\allowbreak stable.force}. They are described together 
because they interact in
-a non-trivial manner.
+a non-trivial manner. In some EAPIs, these files can be directories instead of 
regular files as per
+section~\ref{sec:line-stacking}.
 
 Simply speaking, \t{use.mask} and \t{use.force} are used to say that a given 
USE flag must never or
 always, respectively, be enabled when using this profile. \t{package.use.mask} 
and

Reply via email to