From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1N5bBz-0000ZS-LK for garchives@archives.gentoo.org; Wed, 04 Nov 2009 08:26:11 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8DD5BE0ABE; Wed, 4 Nov 2009 08:26:10 +0000 (UTC) Received: from dev.gentooexperimental.org (dev.gentooexperimental.org [81.93.240.53]) by pigeon.gentoo.org (Postfix) with ESMTP id 4A7F7E0ABE for ; Wed, 4 Nov 2009 08:26:10 +0000 (UTC) Received: from localhost.localnet (xdsl-78-34-179-160.netcologne.de [78.34.179.160]) by dev.gentooexperimental.org (Postfix) with ESMTP id 74D5275C0EE for ; Wed, 4 Nov 2009 09:26:09 +0100 (CET) From: Patrick Lauer To: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] FEATURES use or misuse? Date: Wed, 4 Nov 2009 09:26:05 +0100 User-Agent: KMail/1.12.90 (Linux/2.6.30-gentoo-r1; KDE/4.3.73; x86_64; ; ) References: <200911031648.04090.patrick@gentoo.org> <200911032304.58321.patrick@gentoo.org> <4AF0CBD3.5050402@gentoo.org> In-Reply-To: <4AF0CBD3.5050402@gentoo.org> 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: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <200911040926.06350.patrick@gentoo.org> X-Archives-Salt: 3a10455b-7524-4d1e-9047-c4064c6c699d X-Archives-Hash: 3c17e9ba1510929818760d6100ff19f6 On Wednesday 04 November 2009 01:33:23 Sebastian Pipping wrote: > Patrick Lauer wrote: > > Calling EAPI is ... well ... I can't even think of a place to start to > > explain how wrong it is. How on earth are you going to parse an eclass > > that supports multiple EAPIs where one EAPI were to support features of > > bash 4? The only way to do it would be to force bash 4 on all lower > > EAPIs, or make per-EAPI eclasses, or forbid use of new bash features in > > eclasses. All horrible ways to avoid fixing the problem. > > I find restricting the eclass to Bash 3 is a natural, maintainable > approach to this. How would "fixing he problem" work from your > perspective? It doesn't :) You can't use the "new" features in the "old" eclass, even with conditionals separating the execution paths. Which means you'd have to either not use them (which makes me wonder why we allow features when they can't be used). Or you clone the eclass and now maintain the code in two places (wheee, bad engineering!) So we end up with a bad solution either way. There are some clean options, but they tend to be a bit more complex. For example globally forcing minimum versions (which makes upgrade paths a bit more interesting). > > > All workaroundable by just > > accepting things as they are. > > What do you mean by "accepting things as they are"? People have been doing things (in this case using bash 3.2 features) for a long time (about a year now). Even when some people warned about the impact noone cared. So more and more these "illegal" features get used, and as there are no sanctions for it (not even from QA!) they are accepted as allowed. Fast forward and you have an informal standard (using += in ebuilds is ok) that is agreed on by everyone. Yes, everyone, because when people pointed out that it was a Bad Thing there was no reaction, no opposition, nothing. So the Gentoo developer community agreed on it. The only thing not reflecting that agreement is PMS. So we fix it. Same with FEATURES variable. Been used for the last few years. Works. Most reliable way to do a few things if you assume that users don't actively try to break things. And instead of properly documenting it we pretend it never happened? > You have been talking of "accepting reality" repeatedly and I'm left > wondering what you actually mean by that. I especially fail to see who > is trying to conceal(?) reality and reality about what. Ok, from stable portage ebuilds: RDEPEND=" [snip] >=app-shells/bash-3.2_p17 from KDE eclass: RESTRICT+=" test" gentoo-x86/app-shells/bash $ ls -1 *.ebuild bash-3.1_p17.ebuild bash-3.2_p39.ebuild bash-3.2_p48-r1.ebuild bash-3.2_p48.ebuild bash-4.0_p28.ebuild bash-4.0_p33.ebuild bash-4.0_p35.ebuild So we can either dance around all day and pretend bash 3.0 still has any relevance, or we stop the nonsense and tolerate reality as it is. We can also pretend FEATURES never served a purpose and doesn't fix any issues, then spend lots of time workarounding around working solutions because we just declared them illegal. I don't know how much time you have and what your priorities are, but I'm not going to care about such a waste of time, and it goes very low on my list of priorities. If there's a decision on this I doubt most devs will care much, so anyone wanting to have the FEATURES use removed will end up having to do it himself, against the resistance of package maintainers (don't touch my package etc. etc.) Have fun, Patrick