On Mon, Apr 15, 2013 at 11:54:22AM -0700, Gregory M. Turner wrote:
> On 4/15/2013 10:31 AM, Steven J. Long wrote:
> > On Mon, Apr 15, 2013 at 12:01:24PM +0100, Ciaran McCreesh wrote:
> >> The spec guarantees that ROOT will be non-empty and end in a slash. If
> >> Portage isn't enforcing this, file a bug.
> > Yes, but his point was this:
> >
> >>> The only thing that would help is if PMS defined that ROOT must not
> >>> end with a slash.
> >   
> > ie, let the mangler enforce empty or a valid directory not ending in a
> > slash, which is hardly difficult, and makes ROOT easier to work with,
> > along the lines of how any shellscripter would do it, similarly to the
> > motivation for the change to D. Only with ROOT it's much more important
> > that the path is correctly-formed for cross-platform compatibility.

> That's how EPREFIX works; indeed, you don't need to do ${EPREFIX%/}, 
> ever (unless, perhaps, we are manually scrubbing user inputs that 
> haven't been scrubbed by portage).  Try it yourself: EPREFIX="/" 
> portageq envvar EPREFIX.

And you took that decision because it makes writing ebuilds simpler.

> If we "wanted to" do the same thing to {E,}ROOT we could, at least in 
> future EAPIs.

Sure, exactly the point: ED and EROOT (equiv D and ROOT) should just be
easy to work with. After all that is the whole reason to provide an ebuild
infrastructure in the first place: to make it easy to write scriptlets that
compile and install software. Anything that improves that, while staying
robust as shell, is worth doing imo. Especially low-hanging fruit like this.

> However, given that ROOT is named "ROOT", "/" makes some kind of 
> reasonable, intuitive sense.

Ofc it does, and I understand where it came from. It just happens to be
useless in shellscript, which is what ebuilds are. Nor is anyone arguing
that it should change in configuration, or eg in portageq. Just in ebuild
space, which was the point Aaron brought up, that Ciaran decided to snip
from his reply, while making some random point about portage that had
nothing to do with anything.

>  I see double-slash mistakes involving ROOT 
> here and there, but they are not hopelessly ubiquitous as they are with 
> D, where, as Michał demonstrates in #465772, approximately 10 ebuilds in 
> portage use the variable incorrectly for every 1 getting it right!

Why not just be consistent across all directory variables, which can be
done very simply in ebuild.sh, and never have to worry about it for any of
them?

Seems a lot simpler and more robust to me, and we can get on with our lives
instead of reading long-winded discussions about whether it's "worth the
effort" to support prefix or alt-installs.

IMO some of those people should "make the effort" to learn the language
they're implementing in, instead of criticizing what they clearly don't
grok. And the rest should go back to the swamp.

Regards,
steveL.
-- 
#friendly-coders -- We're friendly, but we're not /that/ friendly ;-)

Reply via email to