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 961481391DB for ; Tue, 29 Jul 2014 04:23:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 46C48E0DA7; Tue, 29 Jul 2014 04:23:06 +0000 (UTC) Received: from mail-ig0-f180.google.com (mail-ig0-f180.google.com [209.85.213.180]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5A59FE0D9D for ; Tue, 29 Jul 2014 04:23:05 +0000 (UTC) Received: by mail-ig0-f180.google.com with SMTP id l13so480275iga.1 for ; Mon, 28 Jul 2014 21:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=NSYNA3XVFh9tNiM2GBQZLQNp+uOYJYcsaO2mXHmWIjg=; b=zSl9StKPwfn/AxkbQBqeL7WDVqEPFM9gRH/b8TOXjElzVhNkfKhzfpOH+Gwr+ODBES JEoOSjTE374ErwysGtx34JPdMSxXndd38Ti/vTTf/tDu/z+pJppSXGwkG5chUHOBzPlH uOvWab2ikbtFxPKRlZjRN7NOtrE2tN5AtEWt07e/6Sjnj39kW8XvpibEj97WBlnivle3 nrvGFgJjihMf6vjQYX0HUTP3OP0MKDorz2VIcaAosSkb0w1YIVXTEppWu1PPr9V/nzgr qdkipaZF2QdjV8FgeD4k10Zb5myPo6eMWuLTOhU11RigJiB+VBafhoyMW0C+fNIRA1c9 pjIg== Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 X-Received: by 10.50.134.232 with SMTP id pn8mr39213419igb.11.1406607784484; Mon, 28 Jul 2014 21:23:04 -0700 (PDT) Received: by 10.64.126.105 with HTTP; Mon, 28 Jul 2014 21:23:04 -0700 (PDT) In-Reply-To: <53D6822F.6090507@gentoo.org> References: <53D2A6C8.9060900@gentoo.org> <20140728132118.0c421aeb@pomiot.lan> <53D6822F.6090507@gentoo.org> Date: Mon, 28 Jul 2014 23:23:04 -0500 Message-ID: Subject: Re: [gentoo-dev] RFC: USE flags in virtuals, to allow a specific provider to be determined From: James Potts To: gentoo-dev@lists.gentoo.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 2f29e75f-9a58-499f-bc39-77c3b5a697e7 X-Archives-Hash: 4929db6ed59498a1ccb9897ce8469bfe On Mon, Jul 28, 2014 at 12:02 PM, Ian Stakenvicius wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 28/07/14 07:21 AM, Micha=C5=82 G=C3=B3rny wrote: >> Dnia 2014-07-25, o godz. 14:49:44 Ian Stakenvicius >> napisa=C5=82(a): >> >>> Hey all.. So, putting aside for now how much of a mess this >>> would be to implement in the virtuals' ebuilds themselves, what >>> do people think of changing the virtuals so that they contain an >>> entry in IUSE for each provider that can satisfy it? >>> >>> The idea here is that the package satisfying a virtual could be >>> optionally explicitly-chosen through package.use (or USE=3D in >>> make.conf, perhaps) instead of having an entry in @world, that >>> way if nothing depends on the virtual then it and the provider >>> can be - --depclean'ed from the system. The idea is specifically >>> NOT to have rdeps depend on these flags, that would undermine the >>> whole purpose of the virtual; it would just be for end-users to >>> set if they so chose. >> >> I think I don't get this argument. >> >> If you really want to have a particular provider for the virtual >> for external purposes, it's fully purposeful to put it in @world >> or otherwise in a custom set. In this case, USE flags aren't >> helpful. > > The argument I was trying to make is that USE flags would allow > end-users to accomplish the same thing, while not having an entry in > @world and therefore allowing the package to be --depclean'ed if the > virtual is --depcleaned. > > I personally don't use sets so i've no idea if the exact same thing > could be accomplished in sets; for some reason i don't think so. > > >> >> If you only prefer a particular provider, you can tip portage >> easily to use it without resorting to USE flags. This also allows >> portage to semi-transparently switch to other provider if >> dependencies need it. In this case, USE flags only make this >> auto-switching harder. > > That is the other part of this idea, to make auto-switching harder, > because right now portage likes to auto-switch even when it seems like > it shouldn't. > > I figure this idea would also help with Ciaran's wishlist item of ||() > deps becoming more strictly-controlled and readily deterministic. > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iF4EAREIAAYFAlPWgi8ACgkQ2ugaI38ACPBfoQD/bZmCxCdLM9EyeJRrst5QmD9X > NS2Y0HCNhRnCfAuplUYA/2UHibYB6YHdKOi40RkWOUA0KMTRSwXYPR6dYsmByiQL > =3DnjwB > -----END PGP SIGNATURE----- > Also, what about the case where multiple providers for the same virtual are installed but the first doesn't satisfy the dependency? Currently, portage only looks at the installed state of the providers, in order, and will use the first installed provider it finds even if it doesn't actually satisfy the dependency (e.g. due to use deps) and the dependency is already satisfied by a different installed provider. Paludis has an elegant solution for this situation (-F/-A), but afaik portage doesn't. Use flags in virtuals would solve this without having to hack around in portage and have it check all possible deps before choosing one. --James