public inbox for gentoo-pms@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-pms] Extend slot-operator-deps with sub-slot support
@ 2012-08-16  5:20 Zac Medico
  2012-08-16 10:09 ` Ciaran McCreesh
  0 siblings, 1 reply; 4+ messages in thread
From: Zac Medico @ 2012-08-16  5:20 UTC (permalink / raw
  To: gentoo-pms; +Cc: ulm

[-- Attachment #1: Type: text/plain, Size: 421 bytes --]

The attached patch extends the slot-operator-deps specification to
include sub-slot support (as it's implemented in Portage with EAPI
4-slot-abi). Some links for reference:

http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/
http://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-eapi-4-slot-abi
https://bugs.gentoo.org/show_bug.cgi?id=424429
-- 
Thanks,
Zac

[-- Attachment #2: 0001-Extend-slot-operator-deps-with-sub-slot-support.patch --]
[-- Type: text/x-patch, Size: 5533 bytes --]

From 9ac98f85d31480153ecca604afe3db739c762114 Mon Sep 17 00:00:00 2001
From: Zac Medico <zmedico@gentoo.org>
Date: Wed, 15 Aug 2012 22:15:05 -0700
Subject: [PATCH] Extend slot-operator-deps with sub-slot support

---
 dependencies.tex     |   20 ++++++++++++++------
 eapi-differences.tex |    1 +
 ebuild-vars.tex      |    9 +++++++++
 names.tex            |    5 +++++
 4 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 1e5b6e8..1baea09 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -278,6 +278,10 @@ 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{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting slot
+operator dependencies, a slot dependency may contain an optional sub-slot part that follows the
+regular slot and is delimited by a \t{/} character.
+
 \featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
 the following operators:
 
@@ -286,14 +290,18 @@ the following operators:
 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.
+indicates that the package will break unless a matching package with slot and sub-slot equal to the
+slot and sub-slot of the best installed version at the time the package was installed is available.
+\item[slot=] Indicates that only a specific slot value is acceptable, and otherwise behaves
+identically to the plain equals slot operator.
 \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.
+To implement the equals slot operator, the package manager will need to store the slot/sub-slot
+pair of the best installed version of the matching package. This syntax is only for package manager
+use and must not be used by ebuilds. The package manager may do this by inserting the appropriate
+slot/sub-slot pair between the colon and equals sign when saving the package's dependencies. The
+sub-slot part must not be omitted here (when the SLOT variable omits the sub-slot part, the package
+is considered to have an implicit sub-slot which is equal to the regular slot).
 
 \subsubsection{2-Style and 4-Style Use Dependencies}
 \label{sec:use-dep}
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 748e2b4..f35afc9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -280,6 +280,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
+\item \t{SLOT} now supports an optional sub-slot part, \featureref{sub-slot}.
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 01d2393..123042f 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -29,6 +29,15 @@ All ebuilds must define at least the following variables:
     eclass. Must not be empty.
 \item[SLOT] The package's slot. Must be a valid slot name, as per section~\ref{sec:slot-names}.
     May be defined by an eclass. Must not be empty.
+
+    \featurelabel{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting
+    slot operator dependencies, the SLOT variable may contain an optional sub-slot part
+    that follows the regular slot and is delimited by a \t{/} character. The sub-slot must
+    be a valid sub-slot name, as per section~\ref{sec:sub-slot-names}. The sub-slot is used
+    to represent cases in which an upgrade to a new version of a package with a different
+    sub-slot will require reverse dependencies to be rebuilt. When the sub-slot part is omitted
+    from the SLOT definition, the package is considered to have an implicit sub-slot which is
+    equal to the regular slot.
 \end{description}
 
 \section{Optional Ebuild-defined Variables}
diff --git a/names.tex b/names.tex
index decc8f4..f071446 100644
--- a/names.tex
+++ b/names.tex
@@ -24,6 +24,11 @@ where a \t{category/package} pair is meant.
 A slot name may contain any of the characters [\t{A-Za-z0-9+\_.-}]. It must not begin with a
 hyphen, a dot or a plus sign.
 
+\subsection{Sub-Slot Names}
+\label{sec:sub-slot-names}
+A sub-slot name may contain any of the characters [\t{A-Za-z0-9+\_.-}]. It must not begin with a
+hyphen, a dot or a plus sign.
+
 \subsection{USE Flag Names}
 A USE flag name may contain any of the characters [\t{A-Za-z0-9+\_@-}]. It must begin with an
 alphanumeric character. Underscores should be considered reserved for \t{USE\_EXPAND}, as
-- 
1.7.9.7


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [gentoo-pms] Extend slot-operator-deps with sub-slot support
  2012-08-16  5:20 [gentoo-pms] Extend slot-operator-deps with sub-slot support Zac Medico
@ 2012-08-16 10:09 ` Ciaran McCreesh
  2012-08-16 16:50   ` Zac Medico
  0 siblings, 1 reply; 4+ messages in thread
From: Ciaran McCreesh @ 2012-08-16 10:09 UTC (permalink / raw
  To: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 610 bytes --]

On Wed, 15 Aug 2012 22:20:51 -0700
Zac Medico <zmedico@gentoo.org> wrote:
> The attached patch extends the slot-operator-deps specification to
> include sub-slot support (as it's implemented in Portage with EAPI
> 4-slot-abi). Some links for reference:
> 
> http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/
> http://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-eapi-4-slot-abi
> https://bugs.gentoo.org/show_bug.cgi?id=424429

Can we not use the term "reverse dependencies" please? It's horribly
ambiguous.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-pms] Extend slot-operator-deps with sub-slot support
  2012-08-16 10:09 ` Ciaran McCreesh
@ 2012-08-16 16:50   ` Zac Medico
  2012-08-17  6:47     ` Ulrich Mueller
  0 siblings, 1 reply; 4+ messages in thread
From: Zac Medico @ 2012-08-16 16:50 UTC (permalink / raw
  To: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

On 08/16/2012 03:09 AM, Ciaran McCreesh wrote:
> On Wed, 15 Aug 2012 22:20:51 -0700
> Zac Medico <zmedico@gentoo.org> wrote:
>> The attached patch extends the slot-operator-deps specification to
>> include sub-slot support (as it's implemented in Portage with EAPI
>> 4-slot-abi). Some links for reference:
>>
>> http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/
>> http://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-eapi-4-slot-abi
>> https://bugs.gentoo.org/show_bug.cgi?id=424429
> 
> Can we not use the term "reverse dependencies" please? It's horribly
> ambiguous.

Yes, I've changed it to say "dependent packages" instead. I've also
removed the redundant sub-slot-names section, as suggested by Ulrich on irc.
-- 
Thanks,
Zac

[-- Attachment #2: 0001-Extend-slot-operator-deps-with-sub-slot-support.patch --]
[-- Type: text/x-patch, Size: 4797 bytes --]

From d8c8614838c47d9328547473416a2b2ae3ad8698 Mon Sep 17 00:00:00 2001
From: Zac Medico <zmedico@gentoo.org>
Date: Wed, 15 Aug 2012 22:15:05 -0700
Subject: [PATCH] Extend slot-operator-deps with sub-slot support

---
 dependencies.tex     |   20 ++++++++++++++------
 eapi-differences.tex |    1 +
 ebuild-vars.tex      |    9 +++++++++
 3 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 1e5b6e8..1baea09 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -278,6 +278,10 @@ 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{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting slot
+operator dependencies, a slot dependency may contain an optional sub-slot part that follows the
+regular slot and is delimited by a \t{/} character.
+
 \featurelabel{slot-operator-deps} An operator slot dependency consists of a colon followed by one of
 the following operators:
 
@@ -286,14 +290,18 @@ the following operators:
 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.
+indicates that the package will break unless a matching package with slot and sub-slot equal to the
+slot and sub-slot of the best installed version at the time the package was installed is available.
+\item[slot=] Indicates that only a specific slot value is acceptable, and otherwise behaves
+identically to the plain equals slot operator.
 \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.
+To implement the equals slot operator, the package manager will need to store the slot/sub-slot
+pair of the best installed version of the matching package. This syntax is only for package manager
+use and must not be used by ebuilds. The package manager may do this by inserting the appropriate
+slot/sub-slot pair between the colon and equals sign when saving the package's dependencies. The
+sub-slot part must not be omitted here (when the SLOT variable omits the sub-slot part, the package
+is considered to have an implicit sub-slot which is equal to the regular slot).
 
 \subsubsection{2-Style and 4-Style Use Dependencies}
 \label{sec:use-dep}
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 748e2b4..f35afc9 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -280,6 +280,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{USE} is calculated differently, \featureref{profile-iuse-injection}.
 \item \t{IMAGE} is gone, \featureref{image}.
 \item \t{REQUIRED\_USE} now supports \t{??} groups, \featureref{at-most-one-of}.
+\item \t{SLOT} now supports an optional sub-slot part, \featureref{sub-slot}.
 \item \t{apply\_user\_patches} function, with \t{src\_prepare} changes,
     \featureref{apply-user-patches}.
 \item \t{EBUILD\_PHASE\_FUNC}, \featureref{ebuild-phase-func}.
diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 01d2393..7bec8b9 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -29,6 +29,15 @@ All ebuilds must define at least the following variables:
     eclass. Must not be empty.
 \item[SLOT] The package's slot. Must be a valid slot name, as per section~\ref{sec:slot-names}.
     May be defined by an eclass. Must not be empty.
+
+    \featurelabel{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting
+    slot operator dependencies, the SLOT variable may contain an optional sub-slot part
+    that follows the regular slot and is delimited by a \t{/} character. The sub-slot must
+    be a valid slot name, as per section~\ref{sec:slot-names}. The sub-slot is used
+    to represent cases in which an upgrade to a new version of a package with a different
+    sub-slot may require dependent packages to be rebuilt. When the sub-slot part is omitted
+    from the SLOT definition, the package is considered to have an implicit sub-slot which is
+    equal to the regular slot.
 \end{description}
 
 \section{Optional Ebuild-defined Variables}
-- 
1.7.9.7


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [gentoo-pms] Extend slot-operator-deps with sub-slot support
  2012-08-16 16:50   ` Zac Medico
@ 2012-08-17  6:47     ` Ulrich Mueller
  0 siblings, 0 replies; 4+ messages in thread
From: Ulrich Mueller @ 2012-08-17  6:47 UTC (permalink / raw
  To: gentoo-pms

>>>>> On Thu, 16 Aug 2012, Zac Medico wrote:

>>> The attached patch extends the slot-operator-deps specification to
>>> include sub-slot support (as it's implemented in Portage with EAPI
>>> 4-slot-abi). Some links for reference:
>>> 
>>> http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/
>>> http://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-eapi-4-slot-abi
>>> https://bugs.gentoo.org/show_bug.cgi?id=424429
>> 
>> Can we not use the term "reverse dependencies" please? It's horribly
>> ambiguous.

> Yes, I've changed it to say "dependent packages" instead. I've also
> removed the redundant sub-slot-names section, as suggested by Ulrich
> on irc.

Committed to eapi-5 branch, with two changes:
- I've added another column "Supports sub-slots?" to tab:slot-deps-table.
- The "sub-slot" label was defined twice (and LaTeX complained about
  it, so I've removed one of the definitions.

<http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=5d6749ac9e5ddc5b1daaad7737b65fa81c6ece47>

Ulrich


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-17  6:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-16  5:20 [gentoo-pms] Extend slot-operator-deps with sub-slot support Zac Medico
2012-08-16 10:09 ` Ciaran McCreesh
2012-08-16 16:50   ` Zac Medico
2012-08-17  6:47     ` Ulrich Mueller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox