* [gentoo-pms] EAPI 4
@ 2010-11-30 22:24 Ulrich Mueller
2010-11-30 23:08 ` Jacob Godserv
2010-12-04 11:46 ` Ulrich Mueller
0 siblings, 2 replies; 6+ messages in thread
From: Ulrich Mueller @ 2010-11-30 22:24 UTC (permalink / raw
To: gentoo-pms
Looks like after today's council meeting we finally know what's in
EAPI 4:
It contains everything mentioned as EAPI 4 features in PMS, but with
the following differences:
Excluded / postponed to next EAPI:
- slot operator dependencies
- profile defined IUSE injection
Additionally included:
+ REQUIRED_USE (bug 347353)
+ MERGING_FROM (bug 347351)
How should we proceed now? Should we move the two excluded features
off to a branch (like eapi-5), and keep only EAPI 4 things in master?
Ulrich
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-pms] EAPI 4
2010-11-30 22:24 [gentoo-pms] EAPI 4 Ulrich Mueller
@ 2010-11-30 23:08 ` Jacob Godserv
2010-11-30 23:09 ` Jacob Godserv
2010-12-04 11:46 ` Ulrich Mueller
1 sibling, 1 reply; 6+ messages in thread
From: Jacob Godserv @ 2010-11-30 23:08 UTC (permalink / raw
To: gentoo-pms
On Tue, Nov 30, 2010 at 17:24, Ulrich Mueller <ulm@gentoo.org> wrote:
> How should we proceed now? Should we move the two excluded features
> off to a branch (like eapi-5), and keep only EAPI 4 things in master?
Just a PMS idler, but my uneducated opinion (in case you wanted one ;)
would be to keep EAPI 5 in master and branch for EAPI 4.
--
Jacob
"For then there will be great distress, unequaled
from the beginning of the world until now — and never
to be equaled again. If those days had not been cut
short, no one would survive, but for the sake of the
elect those days will be shortened."
Are you ready?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-pms] EAPI 4
2010-11-30 23:08 ` Jacob Godserv
@ 2010-11-30 23:09 ` Jacob Godserv
2010-12-01 12:12 ` Ulrich Mueller
0 siblings, 1 reply; 6+ messages in thread
From: Jacob Godserv @ 2010-11-30 23:09 UTC (permalink / raw
To: gentoo-pms
On Tue, Nov 30, 2010 at 18:08, Jacob Godserv <jacobgodserv@gmail.com> wrote:
> Just a PMS idler, but my uneducated opinion (in case you wanted one ;)
> would be to keep EAPI 5 in master and branch for EAPI 4.
I should explain that a bit. Master would be the branch that contains
everything, and the eapi4 branch would be the to contain just the
EAPI4 set of features.
--
Jacob
"For then there will be great distress, unequaled
from the beginning of the world until now — and never
to be equaled again. If those days had not been cut
short, no one would survive, but for the sake of the
elect those days will be shortened."
Are you ready?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-pms] EAPI 4
2010-11-30 23:09 ` Jacob Godserv
@ 2010-12-01 12:12 ` Ulrich Mueller
0 siblings, 0 replies; 6+ messages in thread
From: Ulrich Mueller @ 2010-12-01 12:12 UTC (permalink / raw
To: Jacob Godserv; +Cc: gentoo-pms
>>>>> On Tue, 30 Nov 2010, Jacob Godserv wrote:
>> Just a PMS idler, but my uneducated opinion (in case you wanted one ;)
>> would be to keep EAPI 5 in master and branch for EAPI 4.
> I should explain that a bit. Master would be the branch that contains
> everything, and the eapi4 branch would be the to contain just the
> EAPI4 set of features.
So far the policy was that master should be kept as tidy as possible.
For example, preparation for EAPI 3 (now called 4) was done in a
branch.
And we don't know yet what will be in EAPI 5. It's likely that the two
features just removed from EAPI 4 will be part of it, but we cannot be
sure (we thought they would be in EAPI 3 ...). Therefore I'd prefer
not to keep them in master.
Ulrich
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-pms] EAPI 4
2010-11-30 22:24 [gentoo-pms] EAPI 4 Ulrich Mueller
2010-11-30 23:08 ` Jacob Godserv
@ 2010-12-04 11:46 ` Ulrich Mueller
2010-12-18 9:21 ` Ulrich Mueller
1 sibling, 1 reply; 6+ messages in thread
From: Ulrich Mueller @ 2010-12-04 11:46 UTC (permalink / raw
To: gentoo-pms
[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 965 bytes --]
>>>>> On Tue, 30 Nov 2010, Ulrich Mueller wrote:
> Excluded / postponed to next EAPI:
> - slot operator dependencies
> - profile defined IUSE injection
> Additionally included:
> + REQUIRED_USE (bug 347353)
> + MERGING_FROM (bug 347351)
> How should we proceed now? Should we move the two excluded features
> off to a branch (like eapi-5), and keep only EAPI 4 things in master?
Anyway, for the time being I have saved them in a local branch. We can
decide later how we shall proceed for EAPI 5.
I've prepared patches for the missing pieces of EAPI 4: See bug 347351
for MERGE_TYPE and bug 347353 for REQUIRED_USE.
Attached to this message are another two patches for removal of "Slot
operator dependencies" and "Profile IUSE injection". I've tried to
keep them as unobtrusive as possible, especially the latter.
Please review the patches.
Still missing is an update of the EAPI cheat sheet. Fauli, could you
(as usual) take care of that?
Ulrich
[-- Attachment #2: 0001-Slot-operator-dependencies-are-not-in-EAPI-4.patch --]
[-- Type: text/plain, Size: 3399 bytes --]
From 30a38fcf12ec0c5053e12153be0a08695d439b3e Mon Sep 17 00:00:00 2001
From: Ulrich Mueller <ulm@gentoo.org>
Date: Sat, 4 Dec 2010 11:54:23 +0100
Subject: [PATCH 1/2] Slot operator dependencies are not in EAPI 4.
---
dependencies.tex | 25 ++++---------------------
eapi-differences.tex | 3 +--
2 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/dependencies.tex b/dependencies.tex
index d2acd30..9e9571d 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -137,10 +137,10 @@ manager must warn or error if this feature is used with an EAPI not supporting u
\multicolumn{1}{c}{\textbf{Supports \t{SLOT} dependencies?}} \\
\midrule
\t{0} & No \\
- \t{1} & Named only \\
- \t{2} & Named only \\
- \t{3} & Named only \\
- \t{4} & Named and operator \\
+ \t{1} & Yes \\
+ \t{2} & Yes \\
+ \t{3} & Yes \\
+ \t{4} & Yes \\
\bottomrule
\end{tabular}
\end{centertable}
@@ -219,23 +219,6 @@ specification with a named slot dependency matches only if the slot of the match
to the slot specified. If the slot of the package to match cannot be determined (e.\,g.\ because it
is not a supported \t{EAPI}), the match is treated as unsuccessful.
-\featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
-the following operators:
-
-\begin{description}
-\item[*] Indicates that any slot value is acceptable. In addition, for runtime dependencies,
-indicates that the package will not break if the matched package is uninstalled and replaced by
-a different matching package in a different slot.
-\item[=] Indicates that any slot value is acceptable. In addition, for runtime dependencies,
-indicates that the package will break unless a matching package with slot equal to the slot of
-the best installed version at the time the package was installed is available.
-\end{description}
-
-To implement the equals slot operator, the package manager will need to store the slot of the
-best installed version of the matching package. The package manager may do this by appending
-the appropriate slot after the equals sign when saving the package's dependencies. This syntax
-is only for package manager use and must not be used by ebuilds.
-
\subsubsection{2-Style and 4-Style Use Dependencies}
\label{sec:use-dep}
diff --git a/eapi-differences.tex b/eapi-differences.tex
index cb9d41d..4a53459 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -58,7 +58,7 @@ Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
No & No & Yes & Yes & Yes \\
Slot dependencies & \compactfeatureref{slot-deps} &
- No & Named & Named & Named & Named and Operator \\
+ No & Yes & Yes & Yes & Yes \\
Use dependencies & \compactfeatureref{use-deps} &
No & No & 2-style & 2-style & 4-style \\
@@ -214,7 +214,6 @@ EAPI 4 is EAPI 3 with the following changes:
\item \t{REQUIRED\_USE}, \featureref{required-use}.
\item \t{RDEPEND=DEPEND} no longer done, \featureref{rdepend-depend}.
\item \t{DEFINED\_PHASES} support is mandatory, \featureref{defined-phases}.
-\item Slot operator dependencies, \featureref{slot-operator-deps}.
\item Use dependency defaults, \featureref{use-dep-defaults}.
\item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}.
\item \t{pkg\_pretend}, \featureref{pkg-pretend}.
--
1.7.3.2
[-- Attachment #3: 0002-Profile-IUSE-injection-is-not-in-EAPI-4.patch --]
[-- Type: text/plain, Size: 8071 bytes --]
From 148ffb006e0a38b5d0f0ee9835fc059bd2884ad9 Mon Sep 17 00:00:00 2001
From: Ulrich Mueller <ulm@gentoo.org>
Date: Sat, 4 Dec 2010 12:20:55 +0100
Subject: [PATCH 2/2] Profile IUSE injection is not in EAPI 4.
---
eapi-differences.tex | 4 ----
ebuild-env-vars.tex | 38 ++++----------------------------------
profile-variables.tex | 40 +++-------------------------------------
3 files changed, 7 insertions(+), 75 deletions(-)
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4a53459..4eb41f4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -36,9 +36,6 @@
\bottomrule
\endlastfoot
-Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} &
- No & No & No & No & Yes \\
-
\t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
No & Yes & Yes & Yes & Yes \\
@@ -221,7 +218,6 @@ EAPI 4 is EAPI 3 with the following changes:
\item \t{pkg\_info} can run on non-installed packages, \featureref{pkg-info}.
\item \t{AA} is gone, \featureref{aa}.
\item \t{KV} is gone, \featureref{kv}.
-\item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
\item \t{MERGE\_TYPE}, \featureref{merge-type}.
\item \t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}, \featureref{replace-version-vars}.
\item Utilities now die on failure, \featureref{die-on-failure}, unless called under \t{nonfatal},
diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 8bb5ee6..eb235e7 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -273,13 +273,9 @@ This section discusses the handling of four variables:
In all cases, the values of \t{IUSE\_REFERENCEABLE} and \t{IUSE\_EFFECTIVE} are undefined during
metadata generation.
-For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined
-\t{IUSE} injection, \t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value. For EAPIs
-where profile defined \t{IUSE} injection is supported, \t{IUSE\_REFERENCEABLE} is equal to
-\t{IUSE\_EFFECTIVE}.
+\t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value.
-For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined
-\t{IUSE} injection, \t{IUSE\_EFFECTIVE} contains the following values:
+\t{IUSE\_EFFECTIVE} contains the following values:
\begin{compactitem}
\item All values in the calculated \t{IUSE} value.
@@ -288,36 +284,10 @@ For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporti
the profile \t{USE\_EXPAND} variable followed by an underscore.
\end{compactitem}
-\featurelabel{profile-iuse-injection} For EAPIs listed in
-table~\ref{tab:profile-iuse-injection-table} as supporting profile defined \t{IUSE} injection,
-\t{IUSE\_EFFECTIVE} contains the following values:
-
-\begin{compactitem}
-\item All values in the calculated \t{IUSE} value.
-\item All values in the profile \t{IUSE\_IMPLICIT} variable.
-\item All values in the profile variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}}
- is any value in the intersection of the profile \t{USE\_EXPAND\_UNPREFIXED} and
- \t{USE\_EXPAND\_IMPLICIT} variables.
-\item All values for \t{\$\{lower\_v\}\_\$\{x\}}, where \t{\$\{x\}} is all values in the profile
- variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}} is any value in the
- intersection of the profile \t{USE\_EXPAND} and \t{USE\_EXPAND\_IMPLICIT} variables and
- \t{\$\{lower\_v\}} is the lowercase equivalent of \t{\$\{v\}}.
-\end{compactitem}
-
The \t{USE} variable is set by the package manager. For each value in \t{IUSE\_EFFECTIVE}, \t{USE}
shall contain that value if the flag is to be enabled for the ebuild in question, and shall not
-contain that value if it is to be disabled. In EAPIs listed in
-table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined \t{IUSE} injection,
-\t{USE} may contain other flag names that are not relevant for the ebuild.
-
-For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined
-\t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED} shall
-have their profile-provided values reduced to contain only those values that are present in
-\t{IUSE\_EFFECTIVE}.
-
-For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined
-\t{IUSE} injection, the package manager must save the calculated value of \t{IUSE\_EFFECTIVE} when
-installing a package. Details are beyond the scope of this specification.
+contain that value if it is to be disabled. \t{USE} may contain other flag names that are not
+relevant for the ebuild.
\subsection{\t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}}
\label{sec:replacing-versions}
diff --git a/profile-variables.tex b/profile-variables.tex
index 8533b71..cb6e63f 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -20,34 +20,10 @@ variables must be treated in this fashion:
\item \t{CONFIG\_PROTECT\_MASK}
\end{compactitem}
-If the package manager supports any EAPI listed in table~\ref{tab:profile-iuse-injection-table} as
-using profile-defined \t{IUSE} injection, the following variables must also be treated
-incrementally; otherwise, the following variables may or may not be treated incrementally:
-\begin{compactitem}
-\item \t{IUSE\_IMPLICIT}
-\item \t{USE\_EXPAND\_IMPLICIT}
-\item \t{USE\_EXPAND\_UNPREFIXED}
-\end{compactitem}
-
Other variables, except where they affect only package-manager-specific functionality (such as
Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall
completely override those in parent profiles.
-\begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs} \label{tab:profile-iuse-injection-table}
- \begin{tabular}{ l l l }
- \toprule
- \multicolumn{1}{c}{\textbf{EAPI}} &
- \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\
- \midrule
- \t{0} & No \\
- \t{1} & No \\
- \t{2} & No \\
- \t{3} & No \\
- \t{4} & Yes \\
- \bottomrule
- \end{tabular}
-\end{centertable}
-
\subsection{Specific variables and their meanings}
The following variables have specific meanings when set in profiles.
\begin{description}
@@ -61,21 +37,11 @@ The following variables have specific meanings when set in profiles.
\item[USE\_EXPAND] Defines a list of variables which are to be treated incrementally and whose
contents are to be expanded into the USE variable as passed to ebuilds. See
section~\ref{sec:use-iuse-handling} for details.
-\item[USE\_EXPAND\_UNPREFIXED] Similar to \t{USE\_EXPAND}, but no prefix is used. If the repository
- contains any package using an EAPI supporting profile-defined \t{IUSE} injection (see
- table~\ref{tab:profile-iuse-injection-table}), this list must contain at least \t{ARCH}. See
- section~\ref{sec:use-iuse-handling} for details.
-\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND} and
- \t{USE\_EXPAND\_UNPREFIXED}. The package manager may use this set as a hint to avoid displaying
- uninteresting or unhelpful information to an end user.
-\item[USE\_EXPAND\_IMPLICIT, IUSE\_IMPLICIT] Used to inject implicit values into \t{IUSE}. See
- section~\ref{sec:use-iuse-handling} for details.
+\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND}. The
+ package manager may use this set as a hint to avoid displaying uninteresting or unhelpful
+ information to an end user.
\end{description}
-In addition, for EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile
-defined \t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED}
-have special handling as described in section~\ref{sec:use-iuse-handling}.
-
Any other variables set in \t{make.defaults} must be passed on into the ebuild environment as-is,
and are not required to be interpreted by the package manager.
--
1.7.3.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [gentoo-pms] EAPI 4
2010-12-04 11:46 ` Ulrich Mueller
@ 2010-12-18 9:21 ` Ulrich Mueller
0 siblings, 0 replies; 6+ messages in thread
From: Ulrich Mueller @ 2010-12-18 9:21 UTC (permalink / raw
To: gentoo-pms
>>>>> On Sat, 4 Dec 2010, Ulrich Mueller wrote:
> Attached to this message are another two patches for removal of
> "Slot operator dependencies" and "Profile IUSE injection". I've
> tried to keep them as unobtrusive as possible, especially the
> latter.
> Please review the patches.
There were no comments, therefore pushed.
Ulrich
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-12-18 9:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-30 22:24 [gentoo-pms] EAPI 4 Ulrich Mueller
2010-11-30 23:08 ` Jacob Godserv
2010-11-30 23:09 ` Jacob Godserv
2010-12-01 12:12 ` Ulrich Mueller
2010-12-04 11:46 ` Ulrich Mueller
2010-12-18 9:21 ` Ulrich Mueller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox