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
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
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
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
> 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.
from stable portage ebuilds:
from KDE eclass:
gentoo-x86/app-shells/bash $ ls -1 *.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