From: Junio C Hamano Date: Fri, 21 Sep 2012 21:59:04 GMT Subject: Re: [PATCH] t/test-lib.sh: do not trust $SHELL Message-ID: <7vlig33umv.fsf@alter.siamese.dyndns.org> In-Reply-To: Ramkumar Ramachandra writes: > 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.