From: Felipe Contreras <felipe.contreras@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jeff King" <peff@peff.net>
Cc: Felipe Contreras <felipe.contreras@gmail.com>,
Patrick Steinhardt <ps@pks.im>, Todd Zullinger <tmz@pobox.com>,
git@vger.kernel.org
Subject: Re: [PATCH] global: resolve Perl executable via PATH
Date: Tue, 18 Apr 2023 02:59:20 -0600 [thread overview]
Message-ID: <643e5be864894_21c9542949d@chronos.notmuch> (raw)
In-Reply-To: <230406.86y1n5tnvk.gmgdl@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason wrote:
>
> On Wed, Apr 05 2023, Jeff King wrote:
>
> > On Wed, Apr 05, 2023 at 09:18:20PM -0500, Felipe Contreras wrote:
> >
> >> On Wed, Apr 5, 2023 at 2:09 PM Jeff King <peff@peff.net> wrote:
> >> > On Wed, Apr 05, 2023 at 07:32:22PM +0200, Patrick Steinhardt wrote:
> >>
> >> > IMHO we should aim for fixing those inconsistencies, and then letting
> >> > people set PERL_PATH as appropriate (even to something that will find it
> >> > via $PATH if they want to).
> >>
> >> We can aim to fix all those inconsistencies *eventually* while in the
> >> meantime make them runnable for most people *today*.
> >>
> >> It's not a dichotomy.
> >
> > It is if the proposed patches change the behavior in such a way as to
> > make things less consistent.
> >
> > There are three plausible perls to run (whether intentionally or
> > accidentally):
> >
> > 1. the one in PERL_PATH
> >
> > 2. /usr/bin/perl
> >
> > 3. the first one in $PATH
> >
> > What the code tries to do now is to consistently use (1). If there are
> > cases that accidentally use (2), which is what I took Patrick's patch to
> > mean, then that is a problem for people who set PERL_PATH to something
> > else, but not for people who leave it as /usr/bin/perl. If we "fix"
> > those cases by switching them to (3), then now things are less
> > consistent for such people than when we started.
> >
> > But I am not clear on what those cases are (if any), and we have not
> > seen Patrick's follow-up proposed patch.
> >
> > I did find one case that is accidentally doing (3), and posted a patch
> > elsewhere in the thread to convert it to (1). If you prefer behavior
> > (3), you might consider that a regression, but it seems meaningless
> > given the 99% of other cases that are using (1). If you want (3) to be
> > the behavior everywhere, then we'd need to completely change our stance
> > on how we invoke perl, or we need to teach PERL_PATH to handle this case
> > so that people building Git can choose their own preference (sadly I
> > don't think "make PERL_PATH='/usr/bin/env perl'" quite works because we
> > have to shell-quote it in some contexts before evaluating).
>
> I just want to chime in to say that I've read this whole
> thread-at-large, and I think what you're pointing out here is correct,
> and that we should keep hardcoding "#!/usr/bin/perl", and then just have
> "PERL_PATH" set.
>
> I.e. most of Patrick's original patch is unnecessary, as we either use
> "$PERL_PATH" in the Makefile already, or munge the shebang when we
> install.
>
> Then the only change we should need is the one you suggested in
> <20230406032647.GA2092142@coredump.intra.peff.net> in the side-thread.
That is true, however, the fact that something isn't *necessary* doesn't mean
it isn't good.
> Using "env" liket his is also incorrect.
No, it's not.
> I might have a "perl" in my "$PATH" which I expect to use for e.g. by
> .bashrc, but I don't want that perl to take priority over "$PERL_PATH" for
> git when I run some test script.
And you can keep doing that as Patrick's patch does not change that priority.
I applied both Patrick's patch and Jeff's patch, and then did:
ln -s /bin/false ~/bin/perl
Guess what... Everything works fine (as it should). $PEARL_PATH should override
the shebangs (and it does), so it does not matter what `/usr/bin/env perl`
returns... unless somebody does run the offending scripts manually, in which
case they are on their own.
So, I think Patrick's patch should still be applied, but in practice makes no
difference, because Jeff's patch fixes the actual problems.
Or another way to put it: Patrick's patch is unnecessary, but in my opinion
still desirable.
Cheers.
--
Felipe Contreras
next prev parent reply other threads:[~2023-04-18 8:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-05 10:10 [PATCH] global: resolve Perl executable via PATH Patrick Steinhardt
2023-04-05 13:35 ` Felipe Contreras
2023-04-05 14:48 ` Patrick Steinhardt
2023-04-05 14:42 ` Todd Zullinger
2023-04-05 14:52 ` Patrick Steinhardt
2023-04-05 15:54 ` Todd Zullinger
2023-04-05 17:09 ` Felipe Contreras
2023-04-05 17:35 ` Patrick Steinhardt
2023-04-05 18:44 ` Junio C Hamano
2023-04-06 2:27 ` Felipe Contreras
2023-04-05 16:54 ` Jeff King
2023-04-05 17:32 ` Patrick Steinhardt
2023-04-05 18:15 ` Jeff King
2023-04-06 2:18 ` Felipe Contreras
2023-04-06 3:35 ` Jeff King
2023-04-06 8:03 ` Ævar Arnfjörð Bjarmason
2023-04-18 8:59 ` Felipe Contreras [this message]
2023-04-06 8:07 ` Patrick Steinhardt
2023-04-05 18:28 ` Kristoffer Haugsbakk
2023-04-05 21:30 ` Eric Wong
2023-04-06 2:16 ` Felipe Contreras
2023-04-06 8:05 ` Ævar Arnfjörð Bjarmason
2023-04-06 3:26 ` Jeff King
2023-04-06 8:19 ` Patrick Steinhardt
2023-04-06 9:36 ` [PATCH] t/lib-httpd: pass PERL_PATH to CGI scripts Jeff King
2023-04-06 16:34 ` Junio C Hamano
2023-04-18 9:04 ` Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=643e5be864894_21c9542949d@chronos.notmuch \
--to=felipe.contreras@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=ps@pks.im \
--cc=tmz@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.