git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Allow PERL_PATH="/usr/bin/env perl"

From
Shawn O. Pearce <spearce@spearce.org>
Date
May 3, 2007, 21:26 UTC
Message-ID
<20070503212618.GC16538@spearce.org>
In-Reply-To
<463A472D.5000007@larsen.st>
Bryan Larsen <bryan@larsen.st> wrote:
Show 22 quoted lines
> The perl scripts start with "#!/usr/bin/perl".  There is a mechanism 
> PERL_PATH in the Makefile to change this, but it currently doesn't work 
> with PERL_PATH="/usr/bin/env perl".  This is causing problems in 
> MacPorts, where we wish to work with the MacPorts perl if it is 
> installed, but fall back to the system perl if it isn't.
> 
> Signed-off-by: Bryan Larsen <bryan@larsen.st>
> ---
>  perl/Makefile |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/perl/Makefile b/perl/Makefile
> index 17d004e..2832cb4 100644
> --- a/perl/Makefile
> +++ b/perl/Makefile
> @@ -33,7 +33,7 @@ $(makfile): ../GIT-CFLAGS Makefile
>         echo '  echo $(instdir_SQ)' >> $@
>  else
>  $(makfile): Makefile.PL ../GIT-CFLAGS
> -       '$(PERL_PATH_SQ)' $< PREFIX='$(prefix_SQ)'
> +       $(PERL_PATH_SQ) $< PREFIX='$(prefix_SQ)'
>  endif
This will break if someone actually had ' in their PERL_PATH:
	PERL_PATH="/path'to'perl"

as PERL_PATH_SQ tries to close the single quoted string you don't open anymore. That is because it is defined to be PERL_PATH, but with all ' replaced by '\''.

This change also breaks for anyone who had spaces in their PERL_PATH.

Can I ask why you can't just supply a small wrapper shellscript with MacPorts

	cat >perl <<EOF
	#!/bin/sh
	exec env perl "$@"
	EOF
	chmod a+x perl

? Or better yet, supply Git the correct Perl path? If/when we ever go to native Perl libraries again a Git Perl library compiled for the system perl may not work later when the user installs a newer MacPorts perl. Switching automatically to the MacPorts perl without recompiling the native extensions is a little evil...

-- 
Shawn.
Previous: Bryan LarsenNext: Bryan Larsen
Message 2 of 3 in “Allow PERL_PATH="/usr/bin/env perl"”
  1. Allow PERL_PATH="/usr/bin/env perl"Bryan Larsen, May 3, 2007
  2. Shawn O. PearceMay 3, 2007
  3. Bryan LarsenMay 3, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.