Re: [PATCH] t/test-lib.sh: do not trust $SHELL
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 21, 2012, 21:59 UTC
- Message-ID
- <7vlig33umv.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CALkWK0nLLEF7wnUhF0JUAZVP6GG3KHmuYSDZLPS7uGCZPfhV3w@mail.gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> writes:
Show 17 quoted lines
> Hi Peff, > > Jeff King wrote: >> On Sat, Sep 22, 2012 at 02:37:38AM +0530, Ramkumar Ramachandra wrote: >> >>> > I don't think that is the right thing to do. The point of SHELL is to >>> > point at a bourne-compatible shell. On some systems, the main reason to >>> > set it is that /bin/sh is _broken_, and we are trying to avoid it. >>> >>> But you're only avoiding it in the --tee/ --va* codepath. In the >>> normal codepath, you're stuck with /bin/sh anyway. >> >> No, the #!-header is only information. When you run "make test" we >> actually invoke the shell ourselves using $SHELL_PATH. > > My SHELL_PATH is not set, and I can see SHELL_PATH ?= $(SHELL) in the > Makefile. Which shell is it supposed to point to?
SHELL_PATH is always supposed to point to a Bourne that can be used to run POSIXy shell scripts. I think the fallback you pointed out above assumes that the majority of people who type "make" use Bourne compatibles as their $SHELL and the default is to help the majority.
It may not hurt to add a note to INSTALL for people who use $SHELL that is not Bourne (csh and zsh users, but there may be others) that they need to set SHELL_PATH, of course.