* [gentoo-pms] package.use.stable.mask and package.use.stable.force
@ 2012-06-23 20:09 Andreas K. Huettel
2012-06-23 20:17 ` Ciaran McCreesh
2012-07-21 21:23 ` Andreas K. Huettel
0 siblings, 2 replies; 8+ messages in thread
From: Andreas K. Huettel @ 2012-06-23 20:09 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1.1: Type: Text/Plain, Size: 1049 bytes --]
Dear team,
some time ago we have already been discussing [1] the possibilities of
restricting use flags in a stabilized ebuild.
Based on the outcome of that thread I've written a patch for PMS, which
extends the section on USE masking and forcing.
It is included in this e-mail, and I would like to submit it for discussion
and eventually inclusion in master and eapi-5 branch. As for an
implementation, I gathered from Zac that it's not particularly hard to do and
that he liked the idea.
It is certainly possible refine this more. Allowing only EAPI=5 ebuilds in
package.use.stable.*, and have the files only take effect there, comes to my
mind. However I doubt if these restrictions are really necessary and if a EAPI
dependence at this place in the profile makes actually sense.
Best,
Andreas
[1] http://thread.gmane.org/gmane.linux.gentoo.devel/76536/focus=76545
--
Andreas K. Huettel
Gentoo Linux developer
kde (team lead), sci, tex, arm, printing
dilfridge@gentoo.org
http://www.akhuettel.de/
[-- Attachment #1.2: 0001-Add-specification-for-stable-use-forcing-masking.patch --]
[-- Type: text/x-patch, Size: 3619 bytes --]
From 96139357aafc8c0f7bfb19964d38abd38f372ddc Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <dilfridge@gentoo.org>
Date: Sat, 23 Jun 2012 20:41:39 +0200
Subject: [PATCH] Add specification for stable use forcing/masking
---
profiles.tex | 38 +++++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)
diff --git a/profiles.tex b/profiles.tex
index 8246431..dbad6102 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -108,13 +108,23 @@ the forms defined by the directory's EAPI.
\subsection{USE masking and forcing}
\label{sec:use-masking}
-This section covers the four files \t{use.mask}, \t{use.force}, \t{package.use.mask} and
-\t{package.use.force}. They are described together because they interact in a non-trivial manner.
+This section covers the six files \t{use.mask}, \t{use.force}, \t{package.use.mask},
+\t{package.use.force}, \t{package.use.stable.mask}, and \t{package.use.stable.force}.
+They are described together because they interact in a non-trivial manner.
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
-\t{package.use.force} do the same thing on a per-package, or per-version, basis. The precise manner
-in which they interact is less simple, and is best described in terms of the algorithm used to
+always, respectively, be enabled when using this profile.
+
+\t{package.use.mask} and \t{package.use.force} do the same thing on a per-package, or per-version,
+basis.
+
+The same is true for \t{package.use.stable.mask} and \t{package.use.stable.force}, which
+however, only act on packages that are merged due to a stable keyword in the sense of subsection
+\ref{sec:keyword-names}. Thus, these files can be used to restrict the feature set deemed
+stable in a package.
+
+The precise manner in which the six files
+interact is less simple, and is best described in terms of the algorithm used to
determine whether a flag is masked for a given package version. This is described in Algorithm~\ref{alg:use-masking}.
\begin{algorithm}
\caption{USE masking logic} \label{alg:use-masking}
@@ -133,12 +143,26 @@ determine whether a flag is masked for a given package version. This is describe
\STATE let masked = false
\ENDIF
\ENDFOR
+ \IF{stable keyword in use}
+ \FOR{each $line$ in package.use.stable.mask, in order, for which the spec matches $package$}
+ \IF{$line$ contains \i{flag}}
+ \STATE let masked = true
+ \ELSIF{$line$ contains \i{-flag}}
+ \STATE let masked = false
+ \ENDIF
+ \ENDFOR
+ \ENDIF
\ENDFOR
\end{algorithmic}
\end{algorithm}
-The logic for \t{use.force} and \t{package.use.force} is identical. If a flag is both masked and
-forced, the mask is considered to take precedence.
+Stable restrictions (``stable keyword in use'' in Algorithm~\ref{alg:use-masking}) are applied
+exactly if replacing in \t{KEYWORDS} all stable keywords by the corresponding tilde prefixed
+keywords (see subsection \ref{sec:keyword-names}) would result in the package installation being
+prevented due to the \t{KEYWORDS} setting.
+
+The logic for \t{use.force}, \t{package.use.force}, and \t{package.use.stable.force} is
+identical. If a flag is both masked and forced, the mask is considered to take precedence.
\t{USE\_EXPAND} values may be forced or masked by using \t{expand\_name\_value}.
--
1.7.9.2
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-06-23 20:09 [gentoo-pms] package.use.stable.mask and package.use.stable.force Andreas K. Huettel
@ 2012-06-23 20:17 ` Ciaran McCreesh
2012-06-23 20:31 ` Andreas K. Huettel
2012-07-01 19:22 ` Andreas K. Huettel
2012-07-21 21:23 ` Andreas K. Huettel
1 sibling, 2 replies; 8+ messages in thread
From: Ciaran McCreesh @ 2012-06-23 20:17 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1: Type: text/plain, Size: 1399 bytes --]
On Sat, 23 Jun 2012 22:09:31 +0200
"Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> It is certainly possible refine this more. Allowing only EAPI=5
> ebuilds in package.use.stable.*, and have the files only take effect
> there, comes to my mind. However I doubt if these restrictions are
> really necessary and if a EAPI dependence at this place in the
> profile makes actually sense.
The way we usually word such things is to have a table of EAPIs where
support is required if the package mangler accepts indicated EAPIs. Then
it's an error for ebuilds to rely upon support if they don't use one of
those EAPIs. This gets you out of the profile EAPI requirement.
One thing that isn't addressed is what "stable" means. PMS doesn't
currently attach that level of meaning to KEYWORDS. In particular,
there's nothing implied about the relationship between ~x86 and x86.
This matches how things were when the relevant parts were written. I'm
not sure if Portage changed since then, but in the good old days, you'd
get crazy things like amd64 users specifying ACCEPT_KEYWORDS="~amd64
~x86", which would be auto-merged with "amd64" from make.defaults. But
that wouldn't result in x86 being accepted, so if someone stabled a
package that was keyworded only ~x86, it could result in it becoming
masked to users with that kind of wonky configuration...
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-06-23 20:17 ` Ciaran McCreesh
@ 2012-06-23 20:31 ` Andreas K. Huettel
2012-06-23 20:35 ` Ciaran McCreesh
2012-07-01 19:22 ` Andreas K. Huettel
1 sibling, 1 reply; 8+ messages in thread
From: Andreas K. Huettel @ 2012-06-23 20:31 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1: Type: Text/Plain, Size: 1491 bytes --]
Am Samstag, 23. Juni 2012, 22:17:51 schrieb Ciaran McCreesh:
> "Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> > It is certainly possible refine this more. Allowing only EAPI=5
> > ebuilds in package.use.stable.*, and have the files only take effect
> > there, comes to my mind. However I doubt if these restrictions are
> > really necessary and if a EAPI dependence at this place in the
> > profile makes actually sense.
>
> The way we usually word such things is to have a table of EAPIs where
> support is required if the package mangler accepts indicated EAPIs. Then
> it's an error for ebuilds to rely upon support if they don't use one of
> those EAPIs. This gets you out of the profile EAPI requirement.
Yeah but... the ebuilds themselves dont actually rely anywhere on the feature.
> One thing that isn't addressed is what "stable" means. PMS doesn't
> currently attach that level of meaning to KEYWORDS. In particular,
> there's nothing implied about the relationship between ~x86 and x86.
Not strictly true. Quoting the section that I am referring to:
"A tilde prefixed keyword is, by convention, used to indicate a less stable
package. It is generally assumed that any user accepting keyword
\t{\textasciitilde{}foo} will also accept \t{foo}."
I guess this gives us at least something to build on.
--
Andreas K. Huettel
Gentoo Linux developer
kde (team lead), sci, tex, arm, printing
dilfridge@gentoo.org
http://www.akhuettel.de/
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-06-23 20:31 ` Andreas K. Huettel
@ 2012-06-23 20:35 ` Ciaran McCreesh
0 siblings, 0 replies; 8+ messages in thread
From: Ciaran McCreesh @ 2012-06-23 20:35 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1: Type: text/plain, Size: 1893 bytes --]
On Sat, 23 Jun 2012 22:31:14 +0200
"Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> Am Samstag, 23. Juni 2012, 22:17:51 schrieb Ciaran McCreesh:
> > "Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> > > It is certainly possible refine this more. Allowing only EAPI=5
> > > ebuilds in package.use.stable.*, and have the files only take
> > > effect there, comes to my mind. However I doubt if these
> > > restrictions are really necessary and if a EAPI dependence at
> > > this place in the profile makes actually sense.
> >
> > The way we usually word such things is to have a table of EAPIs
> > where support is required if the package mangler accepts indicated
> > EAPIs. Then it's an error for ebuilds to rely upon support if they
> > don't use one of those EAPIs. This gets you out of the profile EAPI
> > requirement.
>
> Yeah but... the ebuilds themselves dont actually rely anywhere on the
> feature.
That's sort of true, although ebuilds operate in the context of the
tree, and the consistency tree as a whole relies upon them, so it's
still a suitable cop-out to avoid having to bump profile EAPIs.
> > One thing that isn't addressed is what "stable" means. PMS doesn't
> > currently attach that level of meaning to KEYWORDS. In particular,
> > there's nothing implied about the relationship between ~x86 and x86.
>
> Not strictly true. Quoting the section that I am referring to:
>
> "A tilde prefixed keyword is, by convention, used to indicate a less
> stable package. It is generally assumed that any user accepting
> keyword \t{\textasciitilde{}foo} will also accept \t{foo}."
>
> I guess this gives us at least something to build on.
Mmm, that's fluff rather than specifying anything about what the
package mangler actually does. We don't even say what "accepting"
means, and we seem to need to now.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-06-23 20:17 ` Ciaran McCreesh
2012-06-23 20:31 ` Andreas K. Huettel
@ 2012-07-01 19:22 ` Andreas K. Huettel
1 sibling, 0 replies; 8+ messages in thread
From: Andreas K. Huettel @ 2012-07-01 19:22 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1.1: Type: Text/Plain, Size: 1164 bytes --]
Am Samstag 23 Juni 2012, 22:17:51 schrieb Ciaran McCreesh:
> On Sat, 23 Jun 2012 22:09:31 +0200
>
> "Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> > It is certainly possible refine this more. Allowing only EAPI=5
> > ebuilds in package.use.stable.*, and have the files only take effect
> > there, comes to my mind. However I doubt if these restrictions are
> > really necessary and if a EAPI dependence at this place in the
> > profile makes actually sense.
>
> The way we usually word such things is to have a table of EAPIs where
> support is required if the package mangler accepts indicated EAPIs. Then
> it's an error for ebuilds to rely upon support if they don't use one of
> those EAPIs. This gets you out of the profile EAPI requirement.
OK, additional patch (on top of the previous one) is included. It states that
atoms inside package.use.stable.mask etc *must* resolve only to EAPI 5
ebuilds.
I'm not fully convinced yet that this restriction is really necessary, but
it's imho a compromise.
Cheers,
Andreas
--
Andreas K. Huettel
Gentoo Linux developer
dilfridge@gentoo.org
http://www.akhuettel.de/
[-- Attachment #1.2: 0002-Pin-stable-masking-to-EAPI-5.patch --]
[-- Type: text/x-patch, Size: 2885 bytes --]
From ec9f89244b97888da295b63aeb852cc2760729f7 Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <mail@akhuettel.de>
Date: Sun, 1 Jul 2012 21:19:49 +0200
Subject: [PATCH 2/2] Pin stable masking to EAPI 5
---
eapi-differences.tex | 5 +++++
profiles.tex | 22 +++++++++++++++++++++-
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2b2ae80..344c499 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -187,6 +187,9 @@ Controllable compression & \compactfeatureref{controllable-compress} &
File mtimes preserved & \compactfeatureref{mtime-preserve} &
Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+Stable use masking/forcing & \compactfeatureref{stablemask} &
+ No & No & No & No & No & Yes \\
+
\end{longtable}
\end{landscape}
@@ -280,6 +283,8 @@ EAPI 5 is EAPI 4 with the following changes:
\item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
\item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
\item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
+\item \t{package.use.stable.mask} and \t{package.use.stable.force} can be used to restrict
+ use flag combinations, \featureref{stablemask}
\end{compactitem}
\ChangeWhenAddingAnEAPI{5}
diff --git a/profiles.tex b/profiles.tex
index dbad6102..4073d66 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -118,10 +118,30 @@ always, respectively, be enabled when using this profile.
\t{package.use.mask} and \t{package.use.force} do the same thing on a per-package, or per-version,
basis.
+\label{feat:stablemask}
The same is true for \t{package.use.stable.mask} and \t{package.use.stable.force}, which
however, only act on packages that are merged due to a stable keyword in the sense of subsection
\ref{sec:keyword-names}. Thus, these files can be used to restrict the feature set deemed
-stable in a package.
+stable in a package. Atoms in \t{package.use.stable.mask} and \t{package.use.stable.force}
+must only resolve to ebuilds with an EAPI supporting stable masking or forcing, see table
+\ref{tab:profile-stablemask}.
+
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{Support for masking/forcing use flags in stable versions} \label{tab:profile-stablemask}
+ \begin{tabular}{ l l l }
+ \toprule
+ \multicolumn{1}{c}{\textbf{EAPI}} &
+ \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
+ \midrule
+ \t{0} & No \\
+ \t{1} & No \\
+ \t{2} & No \\
+ \t{3} & No \\
+ \t{4} & No \\
+ \t{5} & Yes \\
+ \bottomrule
+ \end{tabular}
+\end{centertable}
The precise manner in which the six files
interact is less simple, and is best described in terms of the algorithm used to
--
1.7.9.2
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-06-23 20:09 [gentoo-pms] package.use.stable.mask and package.use.stable.force Andreas K. Huettel
2012-06-23 20:17 ` Ciaran McCreesh
@ 2012-07-21 21:23 ` Andreas K. Huettel
2012-07-23 14:50 ` Ulrich Mueller
2012-08-12 12:33 ` Ulrich Mueller
1 sibling, 2 replies; 8+ messages in thread
From: Andreas K. Huettel @ 2012-07-21 21:23 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1.1: Type: Text/Plain, Size: 450 bytes --]
Dear team,
after feedback from Zac and Ulrich, here's a re-done patchset for stable
masking.
Changes are:
* Add use.stable.mask and use.stable.force files (obviously)
* Make support depend on EAPI of profile dir, not ebuilds
* Add definitions for the levels of stability implied by keywords
See attachments.
Cheers,
Andreas
--
Andreas K. Huettel
Gentoo Linux developer
dilfridge@gentoo.org
http://www.akhuettel.de/
[-- Attachment #1.2: 0001-Add-specification-for-stable-use-forcing-masking.patch --]
[-- Type: text/x-patch, Size: 4512 bytes --]
From 4f76e245f056252a303a1e89ef20ed829bf4b101 Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <mail@akhuettel.de>
Date: Sat, 21 Jul 2012 22:55:25 +0200
Subject: [PATCH 1/3] Add specification for stable use forcing / masking
---
profiles.tex | 48 ++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 40 insertions(+), 8 deletions(-)
diff --git a/profiles.tex b/profiles.tex
index 8246431..460637f 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -108,14 +108,25 @@ the forms defined by the directory's EAPI.
\subsection{USE masking and forcing}
\label{sec:use-masking}
-This section covers the four files \t{use.mask}, \t{use.force}, \t{package.use.mask} and
-\t{package.use.force}. They are described together because they interact in a non-trivial manner.
+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.stable.force}. They are described together because they interact in a non-trivial
+manner.
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
-\t{package.use.force} do the same thing on a per-package, or per-version, basis. The precise manner
-in which they interact is less simple, and is best described in terms of the algorithm used to
-determine whether a flag is masked for a given package version. This is described in Algorithm~\ref{alg:use-masking}.
+always, respectively, be enabled when using this profile.
+
+\t{package.use.mask} and \t{package.use.force} do the same thing on a per-package, or per-version,
+basis.
+
+The same is true for \t{use.stable.mask}, \t{use.stable.force}, \t{package.use.stable.mask} and
+\t{package.use.stable.force}, which however, only act on packages that are merged due to a stable
+keyword in the sense of subsection \ref{sec:keyword-names}. Thus, these files can be used to restrict the
+feature set deemed stable in a package.
+
+The precise manner in which the eight files interact is less simple, and is best described in terms of
+the algorithm used to determine whether a flag is masked for a given package version. This is described
+in Algorithm~\ref{alg:use-masking}.
\begin{algorithm}
\caption{USE masking logic} \label{alg:use-masking}
\begin{algorithmic}[1]
@@ -126,6 +137,13 @@ determine whether a flag is masked for a given package version. This is describe
\ELSIF{\t{use.mask} contains \i{-flag}}
\STATE let masked = false
\ENDIF
+ \IF{stable keyword in use}
+ \IF{\t{use.stable.mask} contains \i{flag}}
+ \STATE let masked = true
+ \ELSIF{\t{use.stable.mask} contains \i{-flag}}
+ \STATE let masked = false
+ \ENDIF
+ \ENDIF
\FOR{each $line$ in package.use.mask, in order, for which the spec matches $package$}
\IF{$line$ contains \i{flag}}
\STATE let masked = true
@@ -133,12 +151,26 @@ determine whether a flag is masked for a given package version. This is describe
\STATE let masked = false
\ENDIF
\ENDFOR
+ \IF{stable keyword in use}
+ \FOR{each $line$ in package.use.stable.mask, in order, for which the spec matches $package$}
+ \IF{$line$ contains \i{flag}}
+ \STATE let masked = true
+ \ELSIF{$line$ contains \i{-flag}}
+ \STATE let masked = false
+ \ENDIF
+ \ENDFOR
+ \ENDIF
\ENDFOR
\end{algorithmic}
\end{algorithm}
-The logic for \t{use.force} and \t{package.use.force} is identical. If a flag is both masked and
-forced, the mask is considered to take precedence.
+Stable restrictions (``stable keyword in use'' in Algorithm~\ref{alg:use-masking}) are applied
+exactly if replacing in \t{KEYWORDS} all stable keywords by the corresponding tilde prefixed
+keywords (see subsection \ref{sec:keyword-names}) would result in the package installation being
+prevented due to the \t{KEYWORDS} setting.
+
+The logic for \t{use.force}, \t{use.stable. force}, \t{package.use.force}, and \t{package.use.stable.force}
+is identical. If a flag is both masked and forced, the mask is considered to take precedence.
\t{USE\_EXPAND} values may be forced or masked by using \t{expand\_name\_value}.
--
1.7.9.2
[-- Attachment #1.3: 0002-Tie-stable-masking-to-EAPI-5-profile-directories-not.patch --]
[-- Type: text/x-patch, Size: 3329 bytes --]
From fed89eb5fb52dda422e2b64d20eae603144c333f Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <mail@akhuettel.de>
Date: Sat, 21 Jul 2012 23:02:29 +0200
Subject: [PATCH 2/3] Tie stable masking to EAPI 5 profile directories, not
ebuilds
---
eapi-differences.tex | 5 +++++
profiles.tex | 28 ++++++++++++++++++++++++----
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 2b2ae80..344c499 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -187,6 +187,9 @@ Controllable compression & \compactfeatureref{controllable-compress} &
File mtimes preserved & \compactfeatureref{mtime-preserve} &
Undefined & Undefined & Undefined & Yes & Yes & Yes \\
+Stable use masking/forcing & \compactfeatureref{stablemask} &
+ No & No & No & No & No & Yes \\
+
\end{longtable}
\end{landscape}
@@ -280,6 +283,8 @@ EAPI 5 is EAPI 4 with the following changes:
\item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
\item \t{find} is guaranteed to be GNU, \featureref{gnu-find}.
\item \t{new*} can read from standard input, \featureref{newfoo-stdin}.
+\item \t{package.use.stable.mask} and \t{package.use.stable.force} can be used to restrict
+ use flag combinations, \featureref{stablemask}
\end{compactitem}
\ChangeWhenAddingAnEAPI{5}
diff --git a/profiles.tex b/profiles.tex
index 460637f..105b80c 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -119,10 +119,30 @@ always, respectively, be enabled when using this profile.
\t{package.use.mask} and \t{package.use.force} do the same thing on a per-package, or per-version,
basis.
-The same is true for \t{use.stable.mask}, \t{use.stable.force}, \t{package.use.stable.mask} and
-\t{package.use.stable.force}, which however, only act on packages that are merged due to a stable
-keyword in the sense of subsection \ref{sec:keyword-names}. Thus, these files can be used to restrict the
-feature set deemed stable in a package.
+\label{feat:stablemask}
+In profile directories with an EAPI supporting stable masking, as listed in table
+\ref{tab:profile-stablemask}, the same is true for \t{use.stable.mask}, \t{use.stable.force},
+\t{package.use.stable.mask} and \t{package.use.stable.force}. These files, however, only act on packages
+that are merged due to a stable keyword in the sense of subsection \ref{sec:keyword-names}. Thus, these
+files can be used to restrict the feature set deemed stable in a package.
+
+\ChangeWhenAddingAnEAPI{5}
+\begin{centertable}{Profile directory support for masking/forcing use flags in stable
+versions only}\label{tab:profile-stablemask}
+ \begin{tabular}{ l l l }
+ \toprule
+ \multicolumn{1}{c}{\textbf{EAPI}} &
+ \multicolumn{1}{c}{\textbf{Supports masking/forcing use flags in stable versions?}} \\
+ \midrule
+ \t{0} & No \\
+ \t{1} & No \\
+ \t{2} & No \\
+ \t{3} & No \\
+ \t{4} & No \\
+ \t{5} & Yes \\
+ \bottomrule
+ \end{tabular}
+\end{centertable}
The precise manner in which the eight files interact is less simple, and is best described in terms of
the algorithm used to determine whether a flag is masked for a given package version. This is described
--
1.7.9.2
[-- Attachment #1.4: 0003-Define-stability-levels.patch --]
[-- Type: text/x-patch, Size: 2326 bytes --]
From 3b69b841733df0f598cad909af81395acea0ff9a Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <mail@akhuettel.de>
Date: Sat, 21 Jul 2012 23:18:51 +0200
Subject: [PATCH 3/3] Define stability levels
---
names.tex | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/names.tex b/names.tex
index fd9731c..2b5c3ec 100644
--- a/names.tex
+++ b/names.tex
@@ -40,13 +40,22 @@ hyphen. In addition, every repository name must also be a valid package name.
\label{sec:keyword-names}
A keyword name may contain any of the characters [\t{A-Za-z0-9\_-}]. It must not begin with a
hyphen. In contexts where it makes sense to do so, a keyword name may be prefixed by
-a tilde or a hyphen. In \t{KEYWORDS}, \t{-*} is also acceptable as a keyword, to indicate that
-a package will only work on listed targets.
-
-A tilde prefixed keyword is, by convention, used to indicate a less stable package. It is generally
-assumed that any user accepting keyword \t{\textasciitilde{}foo} will also accept \t{foo}.
-
-The exact meaning of any keywords value is beyond the scope of this specification.
+a tilde (\t{\textasciitilde}) or a hyphen. In addition, \t{-*} is also acceptable as a keyword.
+
+Keywords are used to indicate levels of stability of a package on a respective architecture
+\t{arch}. The following conventions are used:
+\begin{itemize}
+\item \t{arch}: Both the package version and the ebuild are widely tested, known to work and not
+have any serious issues on the indicated platform. This is referred to as a \i{stable keyword}.
+\item \t{\textasciitilde{}arch}: The package version and the ebuild are believed to work and do
+not have any known serious bugs, but more testing is required before the package version is
+considered suitable for obtaining a stable keyword. This is referred to as an \i{unstable keyword}
+or a \i{testing keyword}.
+\item no keyword: It is not known whether the package will work, or insufficient testing has occurred.
+\item \t{-arch}: The package version will not work on the architecture.
+\end{itemize}
+The \t{-*} keyword is used to indicate package versions which are not worth trying to test on
+unlisted architectures.
\subsection{EAPI Names}
\label{sec:eapi-names}
--
1.7.9.2
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-07-21 21:23 ` Andreas K. Huettel
@ 2012-07-23 14:50 ` Ulrich Mueller
2012-08-12 12:33 ` Ulrich Mueller
1 sibling, 0 replies; 8+ messages in thread
From: Ulrich Mueller @ 2012-07-23 14:50 UTC (permalink / raw
To: gentoo-pms
>>>>> On Sat, 21 Jul 2012, Andreas K Huettel wrote:
> after feedback from Zac and Ulrich, here's a re-done patchset for
> stable masking.
> Changes are:
> * Add use.stable.mask and use.stable.force files (obviously)
> * Make support depend on EAPI of profile dir, not ebuilds
> * Add definitions for the levels of stability implied by keywords
I'd rather not add the info from the third patch to section 3.1
"Restrictions upon Names" because this should cover only the syntax.
Better to add it to the description of the KEYWORDS variable in
chapter 7.
Otherwise, patches look good to me.
Ulrich
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-pms] package.use.stable.mask and package.use.stable.force
2012-07-21 21:23 ` Andreas K. Huettel
2012-07-23 14:50 ` Ulrich Mueller
@ 2012-08-12 12:33 ` Ulrich Mueller
1 sibling, 0 replies; 8+ messages in thread
From: Ulrich Mueller @ 2012-08-12 12:33 UTC (permalink / raw
To: gentoo-pms; +Cc: Andreas K. Huettel
>>>>> On Sat, 21 Jul 2012, Andreas K Huettel wrote:
> after feedback from Zac and Ulrich, here's a re-done patchset for stable
> masking.
> Changes are:
> * Add use.stable.mask and use.stable.force files (obviously)
> * Make support depend on EAPI of profile dir, not ebuilds
> * Add definitions for the levels of stability implied by keywords
> See attachments.
Committed to eapi-5 branch, with following changes:
- Merged your first and second patch into one, in order to have a
single patch for the feature.
- Rebased on master, to avoid later conflicts.
- Moved definition of stability levels from section 3.1 to 7.3.
- Whitespace changes.
Ulrich
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-08-12 12:34 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-23 20:09 [gentoo-pms] package.use.stable.mask and package.use.stable.force Andreas K. Huettel
2012-06-23 20:17 ` Ciaran McCreesh
2012-06-23 20:31 ` Andreas K. Huettel
2012-06-23 20:35 ` Ciaran McCreesh
2012-07-01 19:22 ` Andreas K. Huettel
2012-07-21 21:23 ` Andreas K. Huettel
2012-07-23 14:50 ` Ulrich Mueller
2012-08-12 12:33 ` Ulrich Mueller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox