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 |