Fabian Groffen wrote:
On 17-09-2008 10:21:17 +0200, Santiago M. Mola wrote:
Why not simply alias patch=gpatch in profile.bashrc?
See the FreeBSD profile for an example.
I'd like to package portage for OpenSolaris and have it just drop-in
work so modifications like what you suggest wouldn't be required.
You'd still need to create an OpenSolaris profile. While you're at it,
you can create a profile.bashrc with the required modifications.
I don't see any reason to not do the gpatch change, but it looks like
unecessary to me because you already have simpler ways to solve the
problem. So, requiring others to do a significant useless amount of
work when you can solve it with just a line is not fair.
From some experience, I can tell that an alias is not sufficient to
cover all cases, and will result in random failures because you only
notice too late patch is used and not gpatch.
alias only works for stuff that bash parses as a command on tokenisation. So
it won't work for anything called via a variable, or find -exec/xargs.
(Note also the standard way to get round an alias: \foo or `command foo'.)
By the way, I'm against this stuff. I rather see a PATH solution
involved. Portage already has a DEFAULT_PATH, and if someone refuses to
install patch, one could always use a special directory with symlinks to
the g-versions, e.g. patch - /usr/sfw/bin/gpatch such that
Portage/eclass/ebuilds don't have to bother about this at all.
I agree. PATH+=':/blah/bar', or PATH=/blah/bar:$PATH if you want it
considered first.
The alternative would be a variable for every utility that could conceivably
be called, and then every ebuild would need to use those, which is a
maintenance nightmare imo. I guess you could ban use of -exec/xargs but I
don't think that's likely ever to happen.