Re: Postgres Windows build system doesn't work with python installed in Program Files

Victor Wagner <vitus@wagner.pp.ru>

From: Victor Wagner <vitus@wagner.pp.ru>
To: Michael Paquier <michael@paquier.xyz>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-05-01T09:48:17Z
Lists: pgsql-hackers
В Fri, 1 May 2020 17:52:15 +0900
Michael Paquier <michael@paquier.xyz> пишет:

> On Thu, Apr 30, 2020 at 03:06:08PM +0300, Victor Wagner wrote:
> > Fix is very simple, see attach.
> > 
> > Patch is made against REL_12_STABLE, but probably applicable to
> > other versions as well.  
> 
> Indeed, thanks.
> 
> >  		my $pythonprog = "import sys;print(sys.prefix);"
> >  		  .
> > "print(str(sys.version_info[0])+str(sys.version_info[1]))"; my
> > $prefixcmd =
> > -		  $solution->{options}->{python} . "\\python -c
> > \"$pythonprog\"";
> > +		'"' . $solution->{options}->{python} . "\\python\"
> > -c \"$pythonprog\""; my $pyout = `$prefixcmd`;
> >  		die "Could not query for python version!\n" if $?;
> >  		my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);  
> 
> This reminds me of ad7595b.  Wouldn't it be better to use qq() here?

Maybe. But probably original author of this code was afraid of using
too long chain of ->{} in the string substitution. 

So, I left this style n place.

Nonetheless, using qq wouldn't save us from doubling backslashes.

--



Commits

  1. Improve perl script in MSVC to build binaries

  2. Handle spaces for Python install location in MSVC scripts

  3. Use perl's $/ more idiomatically