Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Ian Stakenvicius <axs@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: USE flags in virtuals, to allow a specific provider to be determined
Date: Mon, 28 Jul 2014 14:42:39
Message-Id: 20140728164246.21604cae@pomiot.lan
In Reply to: Re: [gentoo-dev] RFC: USE flags in virtuals, to allow a specific provider to be determined by Ian Stakenvicius
1 Dnia 2014-07-28, o godz. 10:20:44
2 Ian Stakenvicius <axs@g.o> napisał(a):
3
4 > -----BEGIN PGP SIGNED MESSAGE-----
5 > Hash: SHA256
6 >
7 > On 26/07/14 10:40 AM, Manuel Rüger wrote:
8 > > On 07/25/2014 08:49 PM, Ian Stakenvicius wrote:
9 > >> Hey all.. So, putting aside for now how much of a mess this
10 > >> would be to implement in the virtuals' ebuilds themselves, what
11 > >> do people think of changing the virtuals so that they contain an
12 > >> entry in IUSE for each provider that can satisfy it?
13 > >>
14 > >> The idea here is that the package satisfying a virtual could be
15 > >> optionally explicitly-chosen through package.use (or USE= in
16 > >> make.conf, perhaps) instead of having an entry in @world, that
17 > >> way if nothing depends on the virtual then it and the provider
18 > >> can be --depclean'ed from the system. The idea is specifically
19 > >> NOT to have rdeps depend on these flags, that would undermine the
20 > >> whole purpose of the virtual; it would just be for end-users to
21 > >> set if they so chose.
22 > >>
23 > >> This may also help with getting portage to peg a virtual's
24 > >> provider to a specific package instead of constantly trying to
25 > >> switch from one to another, ie, how systemd kept getting pulled
26 > >> in, in relation to the upower virtual. Note - I haven't done any
27 > >> tests to determine if this actually helps with such issues tho
28 > >> (or even attempted to reproduce them, as i was apparently one of
29 > >> the lucky ones that it didn't happen to).
30 > >>
31 > >> I don't know if this would aid heavy binpkg users or not.
32 > >>
33 > >>
34 > >> For completion, here's one of those rather messy examples:
35 > >>
36 > >> --- virtual/krb5-0.ebuild 2013-06-28 09:04:47.000000000
37 > >> -0400 +++ virtual/krb5-0.ebuild.new 2014-07-25
38 > >> 14:47:48.000000000 -0400 @@ -2,7 +2,7 @@ # Distributed under the
39 > >> terms of the GNU General Public License v2 # $Header:
40 > >> /var/cvsroot/gentoo-x86/virtual/krb5/krb5-0.ebuild,v 1.2
41 > >> 2013/06/27 20:42:55 aballier Exp $
42 > >>
43 > >> -EAPI=3 +EAPI=5
44 > >>
45 > >> DESCRIPTION="Virtual for Kerberos V implementation" HOMEPAGE=""
46 > >> @@ -11,7 +11,12 @@ LICENSE="" SLOT="0" KEYWORDS="alpha amd64 arm
47 > >> hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd
48 > >> ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" -IUSE=""
49 > >> +IUSE="heimdal mit-krb5"
50 > >>
51 > >> DEPEND="" -RDEPEND="|| ( app-crypt/mit-krb5 app-crypt/heimdal )"
52 > >> +RDEPEND="!mit-krb5? ( !heimdal? ( || ( app-crypt/mit-krb5
53 > >> app-crypt/heimdal ) ) ) + mit-krb5? ( app-crypt/mit-krb5 )
54 > >> + heimdal? ( app-crypt/heimdal )" + +REQUIRED_USE="heimdal?
55 > >> ( !mit-krb5 ) + mit-krb5? ( !heimdal )"
56 > >>
57 > >>
58 > >> Thoughts?
59 > >>
60 > >
61 > > Thinking in another direction: Would it be possible to introduce
62 > > "pseudo-versioned" useflags?
63 > >
64 > > This would solve a problem for virtual/libusb just with adding
65 > > IUSE=">=dev-libs/libusb-1.0.18"
66 > >
67 > > virtual/libusb-1-r1 depends on either dev-libs/libusb or
68 > > sys-freebsd/freebsd-lib. The latter one is only compatible with
69 > > libusb-1.0.9, so packages depending on >dev-libs/libusb-1.0.9 can't
70 > > use the virtual.
71 > >
72 > > Assuming freebsd-lib becomes compatible with dev-libs/libusb
73 > > again, packages will have to switch back to the virtual to support
74 > > both.
75 > >
76 > > Depending on virtual/libusb[>=dev-libs/libusb-1.0.18(+)] instead
77 > > would just need a change in the virtual.
78 >
79 > This sounds like something that should still be doable with two
80 > versions of the virtual/libusb package... I mean, if something
81 > *needs* a newer libusb than 1.0.9 , then it should appropriately
82 > depend on a virtual/libusb that needs it. Otherwise, it shouldn't
83 > matter which provider provides virtual/libusb-1 , right?? So we keep
84 > virtual/libusb-1 as-is, and add a virtual/libusb-1.0.10 (or whatever
85 > version is appropriate) for anything that needs a newer one. That
86 > newer one would need to have a !sys-freebsd/freebsd-lib in it, I
87 > think, to help keep it from being allowed to upgrade, but that itself
88 > might not be necessary.
89
90 Not a blocker but rather lack of this dependency. We'll probably have
91 to mask it in bsd profiles as well but otherwise looks fine.
92
93 --
94 Best regards,
95 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies