From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 948CB1381F4 for ; Thu, 16 Aug 2012 16:50:42 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 35A92E0663; Thu, 16 Aug 2012 16:50:25 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id E2616E0663 for ; Thu, 16 Aug 2012 16:50:24 +0000 (UTC) Received: from [192.168.26.5] (ip98-164-193-252.oc.oc.cox.net [98.164.193.252]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: zmedico) by smtp.gentoo.org (Postfix) with ESMTPSA id 005221B4007 for ; Thu, 16 Aug 2012 16:50:23 +0000 (UTC) Message-ID: <502D24CE.1040300@gentoo.org> Date: Thu, 16 Aug 2012 09:50:22 -0700 From: Zac Medico User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120802 Thunderbird/14.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Package Manager Specification discussions X-BeenThere: gentoo-pms@gentoo.org X-BeenThere: gentoo-pms@lists.gentoo.org Reply-To: gentoo-pms@lists.gentoo.org MIME-Version: 1.0 To: gentoo-pms@lists.gentoo.org Subject: Re: [gentoo-pms] Extend slot-operator-deps with sub-slot support References: <502C8333.30706@gentoo.org> <20120816110942.6db3414f@googlemail.com> In-Reply-To: <20120816110942.6db3414f@googlemail.com> X-Enigmail-Version: 1.5a1pre Content-Type: multipart/mixed; boundary="------------020805010600030802050701" X-Archives-Salt: 9b4df5cb-2b3b-4dbf-a94f-3e3372f154a4 X-Archives-Hash: a9fd8f36ff5a5583e361ab0ecebd072c This is a multi-part message in MIME format. --------------020805010600030802050701 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 08/16/2012 03:09 AM, Ciaran McCreesh wrote: > On Wed, 15 Aug 2012 22:20:51 -0700 > 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. -- Thanks, Zac --------------020805010600030802050701 Content-Type: text/x-patch; name="0001-Extend-slot-operator-deps-with-sub-slot-support.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Extend-slot-operator-deps-with-sub-slot-support.patch" >From d8c8614838c47d9328547473416a2b2ae3ad8698 Mon Sep 17 00:00:00 2001 From: Zac Medico 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 --------------020805010600030802050701--