Can't find string terminator '' anywhere before EOF at -e line 1.

2010-09-15 Thread Christian Weisgerber
We have quite a number of ports (183 at a rough count) that produce
this error during configure:

checking for perl... /usr/bin/perl
checking for perl = 5.8.1... Can't find string terminator '' anywhere before 
EOF at -e line 1.

It's harmless, I guess, but annoying.  It's from some autoconf macro
that checks the availability of perl for intltool purposes.  The
expanded sh snippet is this:

---
if test -z $INTLTOOL_PERL; then
   as_fn_error perl not found $LINENO 5
fi
{ $as_echo $as_me:${as_lineno-$LINENO}: checking for perl = 5.8.1 5
$as_echo_n checking for perl = 5.8.1...  6; }
$INTLTOOL_PERL -e use 5.8.1;  /dev/null 21
if test $? -ne 0; then
   as_fn_error perl 5.8.1 is required for intltool $LINENO 5
else
   IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
   { $as_echo $as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION 5
$as_echo $IT_PERL_VERSION 6; }
fi
---

Specifically, the line

   IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`

should be the one throwing the error.  However, I can't find anything
wrong there.  The nested quoting is tricky, but it works just fine
if I run it on the sh command line.

Any ideas?

-- 
Christian naddy Weisgerber  na...@mips.inka.de



Re: Can't find string terminator '' anywhere before EOF at -e line 1.

2010-09-15 Thread Federico G. Schwindt
On Wed, Sep 15, 2010 at 05:02:33PM +0200, Christian Weisgerber wrote:
 We have quite a number of ports (183 at a rough count) that produce
 this error during configure:
 
 checking for perl... /usr/bin/perl
 checking for perl = 5.8.1... Can't find string terminator '' anywhere 
 before EOF at -e line 1.
 
 It's harmless, I guess, but annoying.  It's from some autoconf macro
 that checks the availability of perl for intltool purposes.  The
 expanded sh snippet is this:
 
 ---
 if test -z $INTLTOOL_PERL; then
as_fn_error perl not found $LINENO 5
 fi
 { $as_echo $as_me:${as_lineno-$LINENO}: checking for perl = 5.8.1 5
 $as_echo_n checking for perl = 5.8.1...  6; }
 $INTLTOOL_PERL -e use 5.8.1;  /dev/null 21
 if test $? -ne 0; then
as_fn_error perl 5.8.1 is required for intltool $LINENO 5
 else
IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
{ $as_echo $as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION 5
 $as_echo $IT_PERL_VERSION 6; }
 fi
 ---
 
 Specifically, the line
 
IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
 
 should be the one throwing the error.  However, I can't find anything
 wrong there.  The nested quoting is tricky, but it works just fine
 if I run it on the sh command line.
 
 Any ideas?

  Are those scripts using set -o posix?

  f.-



Re: Can't find string terminator '' anywhere before EOF at -e line 1.

2010-09-15 Thread Jim Razmus
* Christian Weisgerber na...@mips.inka.de [100915 11:04]:
 We have quite a number of ports (183 at a rough count) that produce
 this error during configure:
 
 checking for perl... /usr/bin/perl
 checking for perl = 5.8.1... Can't find string terminator '' anywhere 
 before EOF at -e line 1.
 
 It's harmless, I guess, but annoying.  It's from some autoconf macro
 that checks the availability of perl for intltool purposes.  The
 expanded sh snippet is this:
 
 ---
 if test -z $INTLTOOL_PERL; then
as_fn_error perl not found $LINENO 5
 fi
 { $as_echo $as_me:${as_lineno-$LINENO}: checking for perl = 5.8.1 5
 $as_echo_n checking for perl = 5.8.1...  6; }
 $INTLTOOL_PERL -e use 5.8.1;  /dev/null 21
 if test $? -ne 0; then
as_fn_error perl 5.8.1 is required for intltool $LINENO 5
 else
IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
{ $as_echo $as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION 5
 $as_echo $IT_PERL_VERSION 6; }
 fi
 ---
 
 Specifically, the line
 
IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
 
 should be the one throwing the error.  However, I can't find anything
 wrong there.  The nested quoting is tricky, but it works just fine
 if I run it on the sh command line.
 
 Any ideas?
 
 -- 
 Christian naddy Weisgerber  na...@mips.inka.de
 

I get the same error with:

perl -e \printf '%vd', $^V\

but it works if I remove the quote escapes:

perl -e printf '%vd', $^V

jim@



Re: Can't find string terminator '' anywhere before EOF at -e line 1.

2010-09-15 Thread Christian Weisgerber
Federico G. Schwindt:

 IT_PERL_VERSION=`$INTLTOOL_PERL -e \printf '%vd', $^V\`
 
   Are those scripts using set -o posix?

Yes, they do... bingo!  POSIX mode changes the quote parsing.  But of
course bash's POSIX mode doesn't.  *sigh*

The whole thing is silly, because that line is overquoted anyway.  This
would do:

IT_PERL_VERSION=`$INTLTOOL_PERL -e printf '%vd', $^V`

-- 
Christian naddy Weisgerber  na...@mips.inka.de