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 0B0C313827E for ; Mon, 9 Dec 2013 10:57:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 941D3E0BB2; Mon, 9 Dec 2013 10:57:07 +0000 (UTC) Received: from gerard.telenet-ops.be (gerard.telenet-ops.be [195.130.132.48]) by pigeon.gentoo.org (Postfix) with ESMTP id 6FA14E0B7F for ; Mon, 9 Dec 2013 10:57:06 +0000 (UTC) Received: from TOMWIJ-GENTOO ([94.226.55.127]) by gerard.telenet-ops.be with bizsmtp id zNx51m00b2khLEN0HNx5VH; Mon, 09 Dec 2013 11:57:05 +0100 Date: Mon, 9 Dec 2013 11:55:27 +0100 From: Tom Wijsman To: pinkbyte@gentoo.org Cc: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead? Message-ID: <20131209115527.4ef48b36@TOMWIJ-GENTOO> In-Reply-To: <52A5689F.1040402@gentoo.org> References: <20131208175438.100112a0@TOMWIJ-GENTOO> <52A5689F.1040402@gentoo.org> 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_/Qy.T9vLGwEevAzD2wBDNKSi"; protocol="application/pgp-signature" X-Archives-Salt: f1934d4a-9ddc-4f23-b397-169dd2b8a824 X-Archives-Hash: 47f3d19a651b5cc64fae5472a56c1f29 --Sig_/Qy.T9vLGwEevAzD2wBDNKSi Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Mon, 09 Dec 2013 10:52:15 +0400 Sergey Popov wrote: > In short - please do NOT do this. Why not? What about other solutions? What do you think? There have come up several solutions, the one suggested in the first mail is no longer of interest due to SLOT=3D"0" no longer being special; now ideas tend to focus towards disallowing slot-less dependencies, or otherwise implement under the form of a repoman warning. > More complicated answer - you break > the whole idea of slots. When user types 'emerge cat/foo' it means > now - "i want cat/foo, whatever versions it will be(depending on mask, > keywords, etc, etc)". Your proposal changes this behaviour > drastically, and reasons for such changes are not worth it. A package ATOM used in another place warrants another discussion; when an user types it, what does the user mean? We could opt to not change the behavior for users if their usage is different. Note that the syntax (and thus usage) is different by design: $ emerge -1pv '|| ( sys-apps/openrc sys-apps/systemd )' !!! '|| ( sys-apps/openrc sys-apps/systemd )' is not a valid package atom. !!! Please check ebuild(5) for full details. The reasons for changing dependency syntax are worth it: For the dependency syntax, having :* as a default breaks things or causes a lot of work. If explicit slots (or :0) were the default, it works and you spare out dealing with lots of reverse dependencies when you introduce a new slot. When you depend on libfoo; I think you mean to depend on the libfoo that is currently in the Portage tree (eg. libfoo:0 or so), whereas libfoo:* would break as soon as the libfoo maintainer starts a new slot. With libfoo:*, this then results in the following procedure: 1. Add libfoo:2 to the Portage tree and package.mask. 2. Inform everyone to update the dependency accordingly, wait for it. 3. Unmask libfoo:2. (Somewhere in the future) Whereas with an implicit or explicit libfoo:${SLOT}, this results in: 1. Add libfoo:2 to the Portage tree. (Right now, without mask) 2. Maintainers support libfoo:2 over time as they bump packages. As the former is frustrating, it can have library maintainers create a new package instead of a new SLOT or not add the new version at all; whereas the latter would allow the library maintainer to just add it, especially as it is the task of individual maintainers to test their package against new libraries as they come along. Thus, that's why I'd like to see slot-less dependencies go and make it policy or at least a repoman QA warning that people specify them. Specifying it without a slot is moving the work of dependency testing on the library maintainer instead of the package maintainer, causing the library maintainer to either test tons of packages or file tons of bug. Why have the library maintainer do extra work when a package maintainer can just test it instead during a version bump? (As required anyway) What do you think? Why do you think we should still keep a default :*? --=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_/Qy.T9vLGwEevAzD2wBDNKSi Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJSpaGiAAoJEJWyH81tNOV9ZYcH/0zB9i7KO9NKNO8cpmxWIgHE 43rZmMM2g9qcKZJtBJHHAOn3n61eudWapiixoW56Cn84jeudl/nb6KPD2+gzFhCs VnxOhrNGnon3Mm2/MlNGc8AMLYA7wjaS0sIqWGH1ML5eXcCqXxE/07706LFW73LL WjprBKy6UUtRJJSA3ZMWLG96GUCrKIsVxMZ0fWUh47yyb1MmmMsCQxlTt7ZWR2eM wZydVtnS3DRqGwuJqdv2QyekGK3bqBKzZPJx+qksTOAIsh9hprMgtlrihtm3ufWV kkmV5A8EywY/7A848eoH/amcGg3uZKzXbmxLZUhJJJlln651IGkaRJ5VJFM9CTc= =lKTU -----END PGP SIGNATURE----- --Sig_/Qy.T9vLGwEevAzD2wBDNKSi--