public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Fabian Groffen <grobian@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] [gentoo-portage-dev] About forcing rebuilds of other packages issue
Date: Fri, 7 Sep 2012 19:13:08 +0200	[thread overview]
Message-ID: <20120907171308.GP5282@gentoo.org> (raw)
In-Reply-To: <5048A461.6080903@gentoo.org>

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

On 06-09-2012 09:25:53 -0400, Ian Stakenvicius wrote:
> #1 - there is both a specification, and an initial implementation, AND
> a fork of the tree that is kept semi-up-to-date on my dev overlay.

I was interested in a (formal) specification, not a proof of concept.

> #2 - related to your question about what the proposal solves -- in my
> opinion, the biggest thing the proposal solves is the case where we
> want the ability to use SLOTs in the tree to manage and track
> dependency changes (ie, when an API or ABI has changed), but NOT allow
> multiple versions of a package to be installed at the same time.
> Further to this, it allows PMs to determine what needs to be rebuilt
> due to the old (no longer existing) dep being supported prior to said
> dep actually being removed.

...

> sub-slots is the 'some-identifier' part of ${SLOT}/${some-identifier}.
>  It doesn't have to replate to ${PV} at all, and generally shouldn't.
>  More likely it should relate to the ${major}.${minor} in the main
> library's SONAME.  For non-libtool dependencies some other form of id
> is used, ie for perl I used the major.minor from $PV.

> EAPI="4-slot-deps" is new to me; the implementation i've been testing

You refer to it lateron, so it seems to me you're unaware your sub-slots
and slot-deps are made as one commit [1].

> is EAPI="4-slot-abi" which is sub-slots and slot operators.  This is
> the spec that was written and proposed for EAPI=5 and so this is what
> i'll use to describe the above.

both are proposed for EAPI=5 [2]

> First, assuming currently libfnord is SLOT=0, and that there are no
> ABI/API breakages on libfnord-2 through libfnord-3.5, I would just use
> the ${major} version from the SONAME for the sub-slot. IE:
> 
> libfnord-1:SLOT="0/3"
> libfnord-2:SLOT="0/5"
> libfnord-2.1:SLOT="0/5"
> ...
> libfnord-3.5:SLOT="0/5"
> 
> And then, assuming that foo and bar both link in the usual way, IE
> they link against libfnord.so.3 instead of just libfnord.so , they

SONAME indeed refers to the versioned lib, although linking is of course
done against libfnord.so (-lfnord).

> both would RDEPEND as follows:
> 
> RDEPEND="app-cat/libfnord:="

This is "Slot operator dependencies" syntax.

> > (numeric indicators added): [1]What if libfnord-2.1 or libfnord-3.5
> > would be masked due to some problem not noticed prior to stabling
> > that makes it useless for many users. [2]bar-2.4 during configure
> > checks for a new function in libfnord-3.5 and uses it if available,
> > or uses an alternative code-path instead. [3]libfnord-2.1-r5 fixes
> > a crash in some function of the library. (Note: this whole
> > example/question sounds like an ebuild-quiz question that any dev
> > should be able to answer then.)
> > 
> > What would be the advantage of sub-slot here, assuming the
> > versioning of the libraries follows ABI versioning rules defined by
> > e.g. libtool.
> 
> [1] No advantage as sub-slots wouldn't relate to this, UNLESS the
> masking would then remove -all- SLOT="0/5" versions from the tree.  In
> that case, the old SLOT="0/3" provider would be the 'upgrade' path and
> so 'foo' and 'bar' would be triggered for rebuild (since the lib they
> were linked to would be disappearing during emerge -uDN)

So your example SLOTs are wrong, and should have included the minor
(always!?!) since downgrading a lib that goes back to an older minor
means functions no longer exist, thus a consumer can potentially break.

> [2] In this case, the new ABI/API offering in libfnord-3.5 would need
> to be addressed in the SLOT, ie, SLOT="0/5.12".  As such when
> libfnord-3.5 would be upgraded then bar-2.4 (if it was already emerged
> of course) would be triggered for rebuild.  'foo' would afaik also be
> triggered for rebuild, though, as (at present) there isn't a way to
> match partial sub-slots (or sub-sub-slots, as it were) via the slot
> operators := and :*.

So you basically say: this is slot-dep, you store that bar-2.4 uses
libfnord-2.1.

> [3] No advantage, as linking would be consistent.  Sub-slots wouldn't
> be needed in this case, and afaict updating libfnord-2.1 to
> libfnord-2.1-r5 wouldn't trigger revdep-rebuild or require any
> additional mediation anyways.

Yes.

> Hope this helps clear things up..

I think I understand why ciaramn suggested the use of / iso SUB_SLOT (or
something like that) here.

Could you give an example where implicit ${PV} as sub-slot would not do
what you need?

Do you allow sub-slot to depend on e.g. USE-flags in use?  Suppose
libfnord has a USE-flag cow that adds special cow interfaces to the
ABI/API.  Would SLOT="X/${PV}$(use cow && echo -- -cow)" work?
(I think SLOT is supposed to be metadata-static, but does the sub-slot
part count to that?)


[1] http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=e4ba8f36e6a4624f4fec61c7ce8bed0e3bd2fa01
[2] http://wiki.gentoo.org/wiki/EAPI_5_tentative_features

-- 
Fabian Groffen
Gentoo on a different level

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

  parent reply	other threads:[~2012-09-07 17:14 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-04 21:26 [gentoo-dev] [gentoo-portage-dev] About forcing rebuilds of other packages issue Pacho Ramos
2012-06-05 12:44 ` Aaron W. Swenson
2012-06-05 13:31   ` [gentoo-dev] " Pacho Ramos
2012-06-05 23:07     ` Zac Medico
2012-06-06  5:31       ` Ciaran McCreesh
2012-06-06  5:49         ` Zac Medico
2012-06-06  8:28       ` Pacho Ramos
2012-06-06  9:17         ` Zac Medico
2012-06-06  9:48           ` Pacho Ramos
2012-06-06 10:13             ` Zac Medico
2012-06-06 17:16             ` Ciaran McCreesh
2012-06-06 18:02               ` Pacho Ramos
2012-06-06 18:15                 ` Ciaran McCreesh
2012-06-06 18:30                   ` Pacho Ramos
2012-06-06 18:33                     ` Ciaran McCreesh
2012-06-06 19:16                       ` Pacho Ramos
2012-06-06 19:23                         ` Ciaran McCreesh
2012-06-06 19:32                           ` Pacho Ramos
2012-06-07  0:43                           ` Zac Medico
2012-06-07  8:24                             ` Brian Harring
2012-06-07 16:43                               ` Zac Medico
2012-06-07 17:40                                 ` Ciaran McCreesh
2012-06-07 17:55                                   ` Pacho Ramos
2012-06-07 18:03                                   ` Zac Medico
2012-06-07 18:08                                     ` Ciaran McCreesh
2012-06-07 18:16                                     ` Pacho Ramos
2012-06-07 18:43                                       ` Pacho Ramos
2012-06-07 18:44                                         ` Ciaran McCreesh
2012-06-07 19:00                                           ` Pacho Ramos
2012-06-07 19:09                                             ` Zac Medico
2012-06-07 19:24                                               ` Pacho Ramos
2012-06-07 19:33                                                 ` Zac Medico
2012-06-08  8:38                                                   ` Pacho Ramos
2012-06-08 19:16                                                     ` Zac Medico
2012-06-08 19:23                                                       ` Pacho Ramos
2012-06-08 19:31                                                         ` Ian Stakenvicius
2012-06-08 19:31                                                         ` Zac Medico
2012-06-09 10:46                                                           ` Pacho Ramos
2012-06-09 10:53                                                             ` Pacho Ramos
2012-06-09 12:15                                                           ` Ciaran McCreesh
2012-06-09 20:55                                                             ` Zac Medico
2012-06-10 12:25                                                               ` Ciaran McCreesh
2012-06-10 12:45                                                                 ` Davide Pesavento
2012-06-10 13:07                                                                   ` Ian Stakenvicius
2012-06-10 18:18                                                                 ` Zac Medico
2012-06-24  0:42                                                                   ` Zac Medico
2012-06-25 13:03                                                                     ` Ian Stakenvicius
2012-06-25 17:58                                                                       ` Zac Medico
2012-06-27 19:38                                                                         ` Ian Stakenvicius
2012-06-30  8:46                                                                           ` [gentoo-dev] About forcing rebuilds of perl modules Torsten Veller
2012-06-30  9:30                                                                             ` Zac Medico
2012-06-30 17:12                                                                               ` Ian Stakenvicius
2012-07-07  1:17                                                                                 ` Kent Fredric
2012-07-07  4:40                                                                                   ` Zac Medico
2012-06-10 19:17                                                                 ` [gentoo-dev] About forcing rebuilds of other packages issue Pacho Ramos
2012-06-10 22:49                                                                 ` Brian Harring
2012-06-12 15:26                                                                   ` Ian Stakenvicius
2012-06-07 19:14                                             ` Ian Stakenvicius
2012-06-07 19:15                                               ` Ciaran McCreesh
2012-06-07 21:34                                                 ` Brian Harring
2012-06-07 18:04                                 ` Ralph Sennhauser
2012-06-07 18:23                                   ` Zac Medico
2012-06-08  1:20                                   ` Zac Medico
2012-06-06 21:21               ` Zac Medico
2012-06-07  5:28                 ` Ciaran McCreesh
2012-06-07 17:42                   ` Zac Medico
2012-06-07 17:59                     ` Pacho Ramos
2012-06-07 18:09                     ` Ciaran McCreesh
2012-06-06  5:33     ` Ciaran McCreesh
2012-06-06  8:32       ` Pacho Ramos
2012-06-06 17:19         ` Ciaran McCreesh
2012-06-06 18:03           ` Pacho Ramos
2012-06-06 21:45           ` Zac Medico
2012-06-07  6:12             ` Ciaran McCreesh
2012-06-07 17:47               ` Zac Medico
2012-06-07 18:04                 ` Wulf C. Krueger
2012-06-07 18:14                   ` Pacho Ramos
2012-06-07 18:13                 ` Ciaran McCreesh
2012-06-07 18:28                   ` Zac Medico
2012-06-05 20:28   ` [gentoo-dev] [gentoo-portage-dev] " Ciaran McCreesh
2012-06-06  0:51   ` Michael Weber
2012-06-06  2:18     ` Zac Medico
2012-06-06  8:46       ` Pacho Ramos
2012-06-06  8:54         ` Zac Medico
2012-06-06  9:10           ` [gentoo-dev] " Pacho Ramos
2012-06-06  9:30             ` Zac Medico
2012-07-07 11:29               ` Peter Stuge
2012-07-07 14:10                 ` Ian Stakenvicius
2012-07-07 18:54                   ` Peter Stuge
2012-07-07 20:18                     ` Zac Medico
2012-06-06 21:59       ` [gentoo-dev] [gentoo-portage-dev] " Brian Harring
2012-06-06 22:08         ` Zac Medico
2012-06-07  9:13         ` [gentoo-dev] " Pacho Ramos
2012-06-06  8:44     ` [gentoo-dev] [gentoo-portage-dev] " Pacho Ramos
2012-09-06  9:01 ` Fabian Groffen
2012-09-06 13:25   ` Ian Stakenvicius
2012-09-06 13:30     ` [EDIT] " Ian Stakenvicius
2012-09-07 17:13     ` Fabian Groffen [this message]
2012-09-07 17:51       ` Ian Stakenvicius
2012-09-07 18:17         ` [gentoo-dev] Re: sub-slots (for EAPI 5) Fabian Groffen
2012-09-07 18:21           ` Ciaran McCreesh
2012-09-07 18:49             ` Fabian Groffen
2012-09-07 18:55               ` Ciaran McCreesh
2012-09-07 19:07                 ` Fabian Groffen
2012-09-07 18:39           ` Ian Stakenvicius
2012-09-07 19:00             ` Fabian Groffen
2012-09-07 19:03           ` Zac Medico
2012-09-07 19:25             ` Fabian Groffen
2012-09-07 19:36               ` Ciaran McCreesh
2012-09-07 19:50                 ` Fabian Groffen
2012-09-07 19:53               ` Ian Stakenvicius
2012-09-07 17:52       ` [gentoo-dev] [gentoo-portage-dev] About forcing rebuilds of other packages issue Zac Medico
2012-09-07 17:59         ` Fabian Groffen
2012-09-06 16:40   ` Zac Medico

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120907171308.GP5282@gentoo.org \
    --to=grobian@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox