Обсуждение: Re: make fails if path has spaces

Поиск
Список
Период
Сортировка

Re: make fails if path has spaces

От
Bruce Momjian
Дата:
Andreas Pflug wrote:
> If configure detects some tools in the existing path, the build process
> may fail.
> In my case, there's perl under c:\program files. make will fail while in
> bin/psql because "/c/program" is not found.

I am not surprised.  We do not do proper quoting of environment
variables in configure.in.  I also don't know if the autoconf program
that creates the configure output does proper quoting either.  Can you
tell us where it is failing by looking in config.log?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

make fails if path has spaces

От
Andreas Pflug
Дата:
If configure detects some tools in the existing path, the build process
may fail.
In my case, there's perl under c:\program files. make will fail while in
bin/psql because "/c/program" is not found.

Regards,
Andreas

Re: make fails if path has spaces

От
Andreas Pflug
Дата:
Bruce Momjian wrote:
> Andreas Pflug wrote:
>
>>If configure detects some tools in the existing path, the build process
>>may fail.
>>In my case, there's perl under c:\program files. make will fail while in
>>bin/psql because "/c/program" is not found.
>
>
> I am not surprised.  We do not do proper quoting of environment
> variables in configure.in.  I also don't know if the autoconf program
> that creates the configure output does proper quoting either.  Can you
> tell us where it is failing by looking in config.log?

I'm no sure what you mean. AFAICS configure does detect the program
location all right, but it should either omit the full path, so the
program is located using $PATH, or executables found should be quoted.

Regards,
Andreas

Re: make fails if path has spaces

От
Bruce Momjian
Дата:
Andreas Pflug wrote:
> Bruce Momjian wrote:
> > Andreas Pflug wrote:
> >
> >>If configure detects some tools in the existing path, the build process
> >>may fail.
> >>In my case, there's perl under c:\program files. make will fail while in
> >>bin/psql because "/c/program" is not found.
> >
> >
> > I am not surprised.  We do not do proper quoting of environment
> > variables in configure.in.  I also don't know if the autoconf program
> > that creates the configure output does proper quoting either.  Can you
> > tell us where it is failing by looking in config.log?
>
> I'm no sure what you mean. AFAICS configure does detect the program
> location all right, but it should either omit the full path, so the
> program is located using $PATH, or executables found should be quoted.

Yes, the executable has to be quoted.  Where is it being referenced
unquoted?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: make fails if path has spaces

От
Andreas Pflug
Дата:
Bruce Momjian wrote:

>
> Yes, the executable has to be quoted.  Where is it being referenced
> unquoted?

In this case, $(PERL) is referenced for building psql's doc. PERL is set
in Makefile.global unquoted, as all paths.

For others, the same problem might arise with bison or flex.

Regards,
Andrea




Point in Time Recovery

От
Jamie Deppeler
Дата:
Has anyone tried Point in Time recovery on Win32? tried to set it up
today and keep getting this error

*Test=# Select pg_start_backup('test backup');
ERROR:  function pg_start_backup("unknown") does not exist
HINT:  No function matches the given name and argument types. You may
need to add explicit type casts
*
--
*Jamie Deppeler
*

Re: Point in Time Recovery

От
Tom Lane
Дата:
Jamie Deppeler <jamie@doitonce.net.au> writes:
> Has anyone tried Point in Time recovery on Win32? tried to set it up
> today and keep getting this error

> *Test=# Select pg_start_backup('test backup');
> ERROR:  function pg_start_backup("unknown") does not exist

I just committed that function late this afternoon ... how old is
the snapshot you're using?

            regards, tom lane

Re: make fails if path has spaces

От
Andrew Dunstan
Дата:

Andreas Pflug wrote:

> Bruce Momjian wrote:
>
>>
>> Yes, the executable has to be quoted.  Where is it being referenced
>> unquoted?
>
>
> In this case, $(PERL) is referenced for building psql's doc. PERL is
> set in Makefile.global unquoted, as all paths.
>
> For others, the same problem might arise with bison or flex.
>
>

Generally I think we expect all the build tools to be installed under
MSys - maybe you need to install MSysDTK?

An alternative would be to quote $(PERL) in psql's Makefile, but that
might not solve the general problem, as you observe.

cheers

andrew

Re: make fails if path has spaces

От
Bruce Momjian
Дата:
Andreas Pflug wrote:
> Bruce Momjian wrote:
>
> >
> > Yes, the executable has to be quoted.  Where is it being referenced
> > unquoted?
>
> In this case, $(PERL) is referenced for building psql's doc. PERL is set
> in Makefile.global unquoted, as all paths.
>
> For others, the same problem might arise with bison or flex.

Is the problem the assignment in Makefile.global or the use of the
variable in psql/Makefile?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: make fails if path has spaces

От
Andreas Pflug
Дата:
Bruce Momjian wrote:
> Andreas Pflug wrote:
>
>>Bruce Momjian wrote:
>>
>>
>>>Yes, the executable has to be quoted.  Where is it being referenced
>>>unquoted?
>>
>>In this case, $(PERL) is referenced for building psql's doc. PERL is set
>>in Makefile.global unquoted, as all paths.
>>
>>For others, the same problem might arise with bison or flex.
>
>
> Is the problem the assignment in Makefile.global or the use of the
> variable in psql/Makefile?
>

It could be fixed in both places, but the more general fix would be to
qoute in Makefile.global, i.e. fixing configure.

Regards,
Andreas

Re: make fails if path has spaces

От
Bruce Momjian
Дата:
Andreas Pflug wrote:
> Bruce Momjian wrote:
> > Andreas Pflug wrote:
> >
> >>Bruce Momjian wrote:
> >>
> >>
> >>>Yes, the executable has to be quoted.  Where is it being referenced
> >>>unquoted?
> >>
> >>In this case, $(PERL) is referenced for building psql's doc. PERL is set
> >>in Makefile.global unquoted, as all paths.
> >>
> >>For others, the same problem might arise with bison or flex.
> >
> >
> > Is the problem the assignment in Makefile.global or the use of the
> > variable in psql/Makefile?
> >
>
> It could be fixed in both places, but the more general fix would be to
> qoute in Makefile.global, i.e. fixing configure.

What if you change this:

    PERL                    = @PERL@

to this:

    PERL                    = "@PERL@"

Does it help?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: make fails if path has spaces

От
Andreas Pflug
Дата:
Bruce Momjian wrote:

>>>
>>
>>It could be fixed in both places, but the more general fix would be to
>>qoute in Makefile.global, i.e. fixing configure.
>
>
> What if you change this:
>
>     PERL                    = @PERL@
>
> to this:
>
>     PERL                    = "@PERL@"
>
> Does it help?
>

Changed in src/Makefile.global.in, and it works.
There are other candidates that could have a non-msys path, which maybe
should be quoted as well.

Regards,
Andreas