From 0f8ddbf1a13a93a4584afdd82f0f87e498a0db6f Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 8 May 2013 14:29:19 -0600 Subject: [PATCH] bootstrap: AC_INIT may have more than four parameters For packages that did AC_INIT([package], [version], [bug-report], [], [url]) the extraction script was grabbing url instead of package for the value of $package. Furthermore, while we guarantee LC_ALL=C, this code is liable to be copied and pasted to a script that doesn't use the C locale and thus where a range expression may misbehave. * build-aux/bootstrap (extract_package_name): Correctly extract non-empty tarname field. Avoid range in regex. Based on a report by Sami Kerola . Signed-off-by: Eric Blake --- ChangeLog | 7 +++++++ build-aux/bootstrap | 19 ++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 31f9dbf6e..2e8f6182b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-05-08 Eric Blake + + bootstrap: AC_INIT may have more than four parameters + * build-aux/bootstrap (extract_package_name): Correctly extract + non-empty tarname field. Avoid range in regex. + Based on a report by Sami Kerola . + 2013-05-07 Paul Eggert qacl: port to MS-Windows port of GNU Emacs diff --git a/build-aux/bootstrap b/build-aux/bootstrap index 96f1e7625..0cbea66e8 100755 --- a/build-aux/bootstrap +++ b/build-aux/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2013-03-08.16; # UTC +scriptversion=2013-05-08.20; # UTC # Bootstrap this package from checked-out sources. @@ -140,20 +140,21 @@ po_download_command_format2=\ "wget --mirror -nd -q -np -A.po -P '%s' \ http://translationproject.org/latest/%s/" +# Prefer a non-empty tarname (4th argument of AC_INIT if given), else +# fall back to the package name (1st argument with munging) extract_package_name=' - /^AC_INIT(/{ - /.*,.*,.*, */{ - s/// - s/[][]//g - s/)$// + /^AC_INIT(\[*/{ + s/// + /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{ + s//\1/ + s/[],)].*// p q } - s/AC_INIT(\[*// - s/]*,.*// + s/[],)].*// s/^GNU // y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - s/[^A-Za-z0-9_]/-/g + s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g p } ' -- 2.11.0