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 E0C2713827E for ; Sun, 8 Dec 2013 17:11:28 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A569DE0997; Sun, 8 Dec 2013 17:11:22 +0000 (UTC) Received: from georges.telenet-ops.be (georges.telenet-ops.be [195.130.137.68]) by pigeon.gentoo.org (Postfix) with ESMTP id A583AE096C for ; Sun, 8 Dec 2013 17:11:17 +0000 (UTC) Received: from TOMWIJ-GENTOO ([94.226.55.127]) by georges.telenet-ops.be with bizsmtp id z4wF1m01A2khLEN064wFVB; Sun, 08 Dec 2013 17:56:16 +0100 Date: Sun, 8 Dec 2013 17:54:38 +0100 From: Tom Wijsman To: gentoo-dev@lists.gentoo.org Subject: [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead? Message-ID: <20131208175438.100112a0@TOMWIJ-GENTOO> X-Mailer: Claws Mail 3.9.0 (GTK+ 2.24.22; x86_64-pc-linux-gnu) 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 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/elqlr5lPWMNEizi3H19eWmG"; protocol="application/pgp-signature" X-Archives-Salt: b09258c4-2c85-4057-b566-5efb105808c9 X-Archives-Hash: 0f28fb39e2834e2272870d7aa018c2af --Sig_/elqlr5lPWMNEizi3H19eWmG Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hello fellow developers =3D=3D Situation =3D=3D When specifying a dependency like cat/pkg it will default to cat/pkg:* which is defined in `man 5 ebuild` as: * Indicates that any slot value is acceptable. In addition, for runtime dependencies, indicates that the package will not break if the matched package is uninstalled and replaced by a different matching package in a different slot. This default reflects different behavior than what we use slots for, besides allowing side-by-side installations we rather use it to specifically depend on a new major version. (eg. dev-libs/glib). Let's say I want to a add a new major version of cat/pkg to the Portage tree, introducing it in the same SLOT=3D"0" isn't an option. This gives us two options, one is SLOT=3D"2", the other is to create cat/pkg2 or so. Creating a new SLOT is the most sane thing going forward; but, as the default (:*) depends on any SLOT, this needs a half thousand commits to fix up reverse dependencies. Thus, instead a new package is made. [1] When our defaults force us down such path, that can't be good and it affects the quality of our Portage tree; so, this makes me wonder, can we change the default from :* to :0? What do you think? [1] https://bugs.gentoo.org/show_bug.cgi?id=3D493652 "media-libs/libsdl2: should be a SLOT=3D2 of media-libs/libsdl" =3D=3D Task =3D=3D If we agree we do this; in order to change :* to :0, we need to change the PMS to cover this change and implement it in the package managers. Before we do that, we need to evaluate how practical this is to apply. While we are trying to fix the default behavior, what would changing the default from :* to :0 break? One thing that directly comes to mind is that dependencies that have no SLOT=3D"0" ebuild present would need us to manually specify a specific SLOT; given that this is a not so common situation, the amount of commits needed here is low. Another thing that comes to mind is that we need to check what to do with packages were the highest available version does not belong to SLOT=3D"0"; technically, restricting these to SLOT=3D"0" will not cause breakage, it might however cause some blockers. We'll have to look closer into how we can alleviate this result. Is there anything else we need to take into account? =3D=3D Summary =3D=3D Situation: Defaulting to :* on SLOT-less dependencies makes it hard to add a new SLOT to a package, using :0 instead would not make this a problem and not require to fix up all reverse dependencies. Task: Check results, correct some exceptions, update PMS, implement it. Thank you in advance for participating in this discussion. --=20 With kind regards, Tom Wijsman (TomWij) Gentoo Developer E-mail address : TomWij@gentoo.org GPG Public Key : 6D34E57D GPG Fingerprint : C165 AF18 AB4C 400B C3D2 ABF0 95B2 1FCD 6D34 E57D --Sig_/elqlr5lPWMNEizi3H19eWmG Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJSpKRSAAoJEJWyH81tNOV97mgH/0X/Zh5d/l4VFsWa7EW/0l50 DpjbL3xJj2Zu24Qg6rpjN3Vu7bNJdK6haU9YLQO1K6vBI0Rd1OZXvJo01cTTmqVo Scy0KV3rT8GKtNuBKJ6dROnSF3vYkhNG5SptCRnr+seqSC5w5VY1LE3fjIaHLme1 8a1cirJkLz9+37LyAp2iGWh99Xm/1jLbvXqK4t/r7d66ZYyyVHTcu8qgXdEob2f5 bqE0RbcXm9SCBSEnY/psJz8gXm+/AzphhbQFSc6kPD74MBV1ZFENNU3KJ5E3SSYd X0Wz5JEMh6XSc5wbLf73IL4SwHfrhGYcKrGgIlszKlfDPlH1T2tj3vCiZNFkUXI= =ZpZc -----END PGP SIGNATURE----- --Sig_/elqlr5lPWMNEizi3H19eWmG--