Can't find string terminator '' anywhere before EOF at -e line 1.
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.
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.
* 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.
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