On a powerpc-ibm-aix5.1.0.0 system, automake.test failed because
Getopt::Long fails to treat arguments starting with "--" as non-option
ones if passed after "--":
| + AUTOMAKE_fails -- --voo
| automake: unrecognized option `--voo'.
| automake: Try `/tmp/build-powerpc-ibm-aix5.1.0.0/automake --help' for more
information.
| + grep input file.*--voo stderr
| FAIL: automake.test
with /bin/perl which is
| This is perl, v5.6.0 built for aix
but passes with
| This is perl, v5.8.2 built for aix-thread-multi
as the older one apparently has a bug in Getopt::Long with regard to
reordering long options from after `--'.
I can reproduce this bug on many systems:
powerpc-ibm-aix5.2.0.0, v5.8.0 built for aix-thread-multi
sparc-sun-solaris2.9, v5.6.1 built for sun4-solaris-64int
i386-unknown-netbsdelf3.0, v5.8.0 built for i386-netbsd
alphaev68-dec-osf5.1b, 5.8.0
which all have in common that Getopt/Long.pm version is <= 2.32.
perl-5.8.2 has Getopt/Long.pm version 2.34 and seems to have this bug
fixed. I assume this change (Getopt/Long/CHANGES):
| * Fix a pass_through bug where the options terminator (normally "--")
| was not passed through in @ARGV.
| Thanks to Philippe Verdret.
can be attributed to it.
I don't know if it's too strict to require perl-5.8.2, given the
systems that have an older native versions. So, how about this?
Would you rather have two tests and warn also users with perl x,
5.6 <= x < 5.8.2, in configure.ac?
Cheers,
Ralf
* configure.ac: Recommend perl-5.8.2.
* tests/automake.test: Do not fail because of buggy Getopt::Long
in perl < 5.8.2.
Index: configure.ac
===
RCS file: /cvs/automake/automake/configure.ac,v
retrieving revision 1.26
diff -u -r1.26 configure.ac
--- configure.ac14 May 2005 20:28:50 - 1.26
+++ configure.ac30 Apr 2006 07:13:17 -
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+# 2004, 2006 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -58,8 +58,9 @@
fi
$PERL -e 'require 5.006;' || {
AC_MSG_ERROR(
-[perl 5.6 or better is required. If you have several perl
-versions installed, select the one Automake should use using
+[perl 5.6 or better is required; perl 5.8.2 or better
+is recommended. If you have several perl versions
+installed, select the one Automake should use using
./configure PERL=/path/to/perl])
}
Index: tests/automake.test
===
RCS file: /cvs/automake/automake/tests/automake.test,v
retrieving revision 1.3
diff -u -r1.3 automake.test
--- tests/automake.test 14 May 2005 20:28:54 - 1.3
+++ tests/automake.test 30 Apr 2006 07:11:14 -
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
#
# This file is part of GNU Automake.
#
@@ -27,8 +27,11 @@
$AUTOMAKE --version
AUTOMAKE_fails --voo
grep 'unrecognized option.*--voo' stderr
-AUTOMAKE_fails -- --voo
-grep 'input file.*--voo' stderr
+# older perl has a buggy Getopt::Long which makes this fail.
+if $PERL -e 'require 5.8.2;'; then
+ AUTOMAKE_fails -- --voo
+ grep 'input file.*--voo' stderr
+fi
AUTOMAKE_fails ''
grep 'empty argument' stderr
AUTOMAKE_fails -W