Gentoo Archives: gentoo-commits

From: "Ulrich Müller" <ulm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/pms:eapi-7 commit in: /
Date: Sat, 05 Dec 2015 20:15:21
Message-Id: 1449346490.837baf076e927538e63fde72c99d72ddcd0ab702.ulm@gentoo
1 commit: 837baf076e927538e63fde72c99d72ddcd0ab702
2 Author: Ulrich Müller <ulm <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 29 23:01:54 2015 +0000
4 Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org>
5 CommitDate: Sat Dec 5 20:14:50 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=837baf07
7
8 EAPI 7 supports directories for profile files.
9
10 Bug: 282296
11
12 eapi-differences.tex | 5 +++++
13 profiles.tex | 38 +++++++++++++++++++++++++++++++-------
14 2 files changed, 36 insertions(+), 7 deletions(-)
15
16 diff --git a/eapi-differences.tex b/eapi-differences.tex
17 index a66d388..6683488 100644
18 --- a/eapi-differences.tex
19 +++ b/eapi-differences.tex
20 @@ -44,6 +44,9 @@ of this document for a complete table of previous EAPIs.
21 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
22 No & No & No & No & Yes \\
23
24 +Profile files as directories & \compactfeatureref{profile-file-dirs} &
25 + No & No & No & No & Yes \\
26 +
27 Stable use masking/forcing & \compactfeatureref{stablemask} &
28 No & No & Yes & Yes & Yes \\
29
30 @@ -377,6 +380,8 @@ EAPI 7 is EAPI 6 with the following changes:
31
32 \begin{compactitem}
33 \item \t{profiles/package.mask} can be a directory, \featureref{package-mask-dir}.
34 +\item \t{package.mask}, \t{package.use}, \t{use.*} and \t{package.use.*} in a profile can be
35 + directories, \featureref{profile-file-dirs}.
36 \item \t{dohtml} banned, \featureref{banned-commands}.
37 \end{compactitem}
38
39
40 diff --git a/profiles.tex b/profiles.tex
41 index 4a167ea..e56dce0 100644
42 --- a/profiles.tex
43 +++ b/profiles.tex
44 @@ -70,6 +70,27 @@ parent profile's list is taken, and the current profile's list appended. If any
45 hyphen, then any lines previous to it whose contents are equal to the remainder of that line are
46 removed from the list. Once again, blank lines and those beginning with a \# are discarded.
47
48 +\featurelabel{profile-file-dirs} In EAPIs listed in table~\ref{tab:profile-file-dirs} as supporting
49 +directories for profile files, any of the files \t{package.mask}, \t{package.use}, \t{use.*} and
50 +\t{package.use.*} mentioned below can be a directory instead of a regular file. Files contained
51 +in that directory, unless their name begins with a dot, will be concatenated in order of their
52 +filename in the POSIX locale and the result will be processed as if it were a single file.
53 +Any subdirectories will be ignored.
54 +
55 +\ChangeWhenAddingAnEAPI{7}
56 +\begin{centertable}{EAPIs supporting directories for profile files}
57 + \label{tab:profile-file-dirs}
58 + \begin{tabular}{ll}
59 + \toprule
60 + \multicolumn{1}{c}{\textbf{EAPI}} &
61 + \multicolumn{1}{c}{\textbf{Supports directories for profile files?}} \\
62 + \midrule
63 + 0, 1, 2, 3, 4, 5, 6 & No \\
64 + 7 & Yes \\
65 + \bottomrule
66 + \end{tabular}
67 +\end{centertable}
68 +
69 \subsection{packages}
70 The \t{packages} file is used to define the `system set' for this profile.
71 After the above rules for inheritance and comments are applied, its lines must take one of two
72 @@ -85,7 +106,8 @@ but is mentioned here for completeness.
73 \subsection{package.mask}
74 \t{package.mask} is used to prevent packages from being installed on a given profile. Each line
75 contains one package dependency specification; anything matching this specification will not be
76 -installed unless unmasked by the user's configuration.
77 +installed unless unmasked by the user's configuration. In some EAPIs, \t{package.mask} can be a
78 +directory instead of a regular file as per section~\ref{sec:line-stacking}.
79
80 Note that the \t{-spec} syntax can be used to remove a mask in a parent profile, but not
81 necessarily a global mask (from \t{profiles/package.mask}, section~\ref{profiles-package.mask}).
82 @@ -100,18 +122,20 @@ has severe adverse effects on USE-based and slot-based dependencies, its use is
83 and package manager support must be regarded as purely optional.
84
85 \subsection{package.use}
86 -The \t{package.use} file may be used by the package manager to override the default USE flags specified
87 -by \t{make.defaults} on a per package basis. The format is to have a package dependency specification,
88 -and then a space delimited list of USE flags to enable. A USE flag in the form of \t{-flag} indicates
89 -that the package should have the USE flag disabled. The package dependency specification is limited to
90 -the forms defined by the directory's EAPI.
91 +The \t{package.use} file may be used by the package manager to override the default USE flags
92 +specified by \t{make.defaults} on a per package basis. The format is to have a package dependency
93 +specification, and then a space delimited list of USE flags to enable. A USE flag in the form of
94 +\t{-flag} indicates that the package should have the USE flag disabled. The package dependency
95 +specification is limited to the forms defined by the directory's EAPI. In some EAPIs,
96 +\t{package.use} can be a directory instead of a regular file as per section~\ref{sec:line-stacking}.
97
98 \subsection{USE masking and forcing}
99 \label{sec:use-masking}
100 This section covers the eight files \t{use.mask}, \t{use.force}, \t{use.stable.mask},
101 \t{use.stable.force}, \t{package.use.mask}, \t{package.use.force}, \t{package.use.stable.mask},
102 and \t{package.use.\allowbreak stable.force}. They are described together because they interact in
103 -a non-trivial manner.
104 +a non-trivial manner. In some EAPIs, these files can be directories instead of regular files as per
105 +section~\ref{sec:line-stacking}.
106
107 Simply speaking, \t{use.mask} and \t{use.force} are used to say that a given USE flag must never or
108 always, respectively, be enabled when using this profile. \t{package.use.mask} and