diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2020-10-21 08:57:45 +0200 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2020-10-21 09:00:11 +0200 |
commit | 071cf1ca76377ce19b3f4267327436d36da6df50 (patch) | |
tree | 887f216dad0da8b2bbf6e821f60aab7e06567444 /sys-devel | |
parent | dev-python/readme_renderer: Bump to 28.0 (diff) | |
download | gentoo-071cf1ca76377ce19b3f4267327436d36da6df50.tar.gz gentoo-071cf1ca76377ce19b3f4267327436d36da6df50.tar.bz2 gentoo-071cf1ca76377ce19b3f4267327436d36da6df50.zip |
Revert "sys-devel/autoconf: Revbump to improve AC_INIT arg quoting"
This reverts commit c95e99d3956c8d0f6816937107fb0cfeae12366e.
As slyfox reported in bug #750191, this patch breaks AC_INIT for many
packages and thus has not been added to autoconf upstream repo.
Bug: https://bugs.gentoo.org/750191
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/autoconf/autoconf-2.70_beta2.ebuild (renamed from sys-devel/autoconf/autoconf-2.70_beta2-r1.ebuild) | 4 | ||||
-rw-r--r-- | sys-devel/autoconf/files/autoconf-2.70_beta2-AC_INIT_argument_quoting.patch | 573 |
2 files changed, 0 insertions, 577 deletions
diff --git a/sys-devel/autoconf/autoconf-2.70_beta2-r1.ebuild b/sys-devel/autoconf/autoconf-2.70_beta2.ebuild index f5729eca99d2..340c26016422 100644 --- a/sys-devel/autoconf/autoconf-2.70_beta2-r1.ebuild +++ b/sys-devel/autoconf/autoconf-2.70_beta2.ebuild @@ -33,10 +33,6 @@ RDEPEND="${BDEPEND} [[ ${PV} == "9999" ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" PDEPEND="emacs? ( app-emacs/autoconf-mode )" -PATCHES=( - "${FILESDIR}/${P}-AC_INIT_argument_quoting.patch" -) - src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then diff --git a/sys-devel/autoconf/files/autoconf-2.70_beta2-AC_INIT_argument_quoting.patch b/sys-devel/autoconf/files/autoconf-2.70_beta2-AC_INIT_argument_quoting.patch deleted file mode 100644 index 8a308c44396a..000000000000 --- a/sys-devel/autoconf/files/autoconf-2.70_beta2-AC_INIT_argument_quoting.patch +++ /dev/null @@ -1,573 +0,0 @@ -From 8a4571772a5aadc7a005eb288f66ed52b5f52eef Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Wed, 14 Oct 2020 18:03:21 -0400 -Subject: [PATCH 1/1] improvements to AC_INIT argument quoting - ---- - doc/autoconf.texi | 33 ++++--- - lib/autoconf/general.m4 | 149 +++++++++++++++----------------- - lib/autoconf/status.m4 | 29 ++++--- - tests/base.at | 184 +++++++++++++++++++++++++++++++++++++--- - 4 files changed, 279 insertions(+), 116 deletions(-) - -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 9a52fbdb..a89f1469 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -1876,21 +1876,24 @@ distribution tar ball names (e.g., @samp{autoconf}). It defaults to - other than alphanumerics and underscores are changed to @samp{-}. If - provided, @var{url} should be the home page for the package. - --All the arguments of @code{AC_INIT} must be static, i.e., there should not --be any shell computation, quotes, or newlines, but they can be computed --by M4. This is because the package information strings are expanded at --M4 time into several contexts, and must give the same text at shell time --whether used in single-quoted strings, double-quoted strings, quoted --here-documents, or unquoted here-documents. It is permissible to use --@code{m4_esyscmd} or @code{m4_esyscmd_s} for computing a version string --that changes with every commit to a version control system (in fact, --Autoconf does just that, for all builds of the development tree made --between releases). -+Leading and trailing whitespace is stripped from all the arguments to -+@code{AC_INIT}, and interior whitespace is collapsed to a single space. -+ -+The arguments to @code{AC_INIT} may be computed by M4, when -+@command{autoconf} is run. For instance, it is fine for the -+@var{version} argument to be an invocation of @code{m4_esyscmd} that -+runs a command that determines the package's version from information -+stored in the package's version control system. However, they may not -+be computed by the shell, when @command{configure} is run; if they -+contain any construct that would cause computation by the shell, -+Autoconf will issue an error. This restriction is because the arguments -+to AC_INIT are written into @file{configure} several times, in different -+places, only some of which are subject to shell variable and command -+substitution. - - The @var{tarname} argument is used to construct filenames. --In addition to being static, it should not contain wildcard --characters, white space, or anything else that could be troublesome --as part of a file or directory name. -+It should not contain wildcard characters, white space, or anything else -+that could be troublesome as part of a file or directory name. - - The following M4 macros (e.g., @code{AC_PACKAGE_NAME}), output variables - (e.g., @code{PACKAGE_NAME}), and preprocessor symbols (e.g., -@@ -1947,6 +1950,10 @@ of updating @samp{$@@} and @samp{$*}. However, we suggest that you use - standard macros like @code{AC_ARG_ENABLE} instead of attempting to - implement your own option processing. @xref{Site Configuration}. - -+If you use the @code{AC_PACKAGE} M4 macros, beware that they may contain -+characters that are significant to M4. In almost all cases, you should -+refer to them using @code{m4_defn}. @xref{Programming in M4sugar}. -+ - @node Versioning - @section Dealing with Autoconf versions - @cindex Autoconf version -diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 -index eaa1d91b..5955b672 100644 ---- a/lib/autoconf/general.m4 -+++ b/lib/autoconf/general.m4 -@@ -230,56 +230,47 @@ m4_define([_AC_INIT_LITERAL], - - # _AC_INIT_PACKAGE(PACKAGE-NAME, VERSION, BUG-REPORT, [TARNAME], [URL]) - # --------------------------------------------------------------------- -+# Set the values of AC_PACKAGE_{NAME,VERSION,STRING,BUGREPORT,TARNAME,URL} -+# from the arguments. - m4_define([_AC_INIT_PACKAGE], --[m4_pushdef([_ac_init_NAME], m4_normalize([$1])) --m4_pushdef([_ac_init_VERSION], m4_normalize([$2])) --m4_pushdef([_ac_init_BUGREPORT], m4_normalize([$3])) --m4_pushdef([_ac_init_TARNAME], m4_normalize([$4])) --m4_pushdef([_ac_init_URL], m4_normalize([$5])) --# NAME, VERSION, BUGREPORT, and URL should all be safe for use in shell --# strings of all kinds. --_AC_INIT_LITERAL(m4_defn([_ac_init_NAME])) --_AC_INIT_LITERAL(m4_defn([_ac_init_VERSION])) --_AC_INIT_LITERAL(m4_defn([_ac_init_BUGREPORT])) --_AC_INIT_LITERAL(m4_defn([_ac_init_URL])) -+[_AC_INIT_PACKAGE_N(m4_normalize([$1]), m4_normalize([$2]), m4_normalize([$3]), -+ m4_normalize([$4]), m4_normalize([$5]))]) -+ -+# _AC_INIT_PACKAGE_N(PACKAGE-NAME, VERSION, BUG-REPORT, [TARNAME], [URL]) -+# ----------------------------------------------------------------------- -+# Subroutine of _AC_INIT_PACKAGE. -+m4_define([_AC_INIT_PACKAGE_N], -+[# PACKAGE-NAME, VERSION, BUGREPORT, and URL should all be safe for use -+# in shell strings of all kinds. -+_AC_INIT_LITERAL([$1]) -+_AC_INIT_LITERAL([$2]) -+_AC_INIT_LITERAL([$3]) -+_AC_INIT_LITERAL([$5]) - # TARNAME is even more constrained: it should not contain any shell - # metacharacters or whitespace, because it is used to construct - # filenames. --AS_LITERAL_WORD_IF(m4_defn([_ac_init_TARNAME]), [], -+AS_LITERAL_WORD_IF([$4], [], - [m4_warn([syntax], -- [AC_INIT: unsafe as a filename: "]m4_defn([_ac_init_TARNAME])["])]) -+ [AC_INIT: unsafe as a filename: "$4"])]) - # --# These do not use m4_copy because we don't want to copy the pushdef stack. --m4_ifndef([AC_PACKAGE_NAME], -- [m4_define([AC_PACKAGE_NAME], -- m4_defn([_ac_init_NAME]))]) --m4_ifndef([AC_PACKAGE_VERSION], -- [m4_define([AC_PACKAGE_VERSION], -- m4_defn([_ac_init_VERSION]))]) --m4_ifndef([AC_PACKAGE_STRING], -- [m4_define([AC_PACKAGE_STRING], -- m4_defn([_ac_init_NAME])[ ]m4_defn([_ac_init_VERSION]))]) --m4_ifndef([AC_PACKAGE_BUGREPORT], -- [m4_define([AC_PACKAGE_BUGREPORT], _ac_init_BUGREPORT)]) --m4_ifndef([AC_PACKAGE_TARNAME], -- [m4_define([AC_PACKAGE_TARNAME], -- m4_default(m4_defn([_ac_init_TARNAME]), -- [m4_bpatsubst(m4_tolower( -- m4_bpatsubst(m4_defn([_ac_init_NAME]), -- [GNU ])), -- [[^_abcdefghijklmnopqrstuvwxyz0123456789]], -- [-])]))]) --m4_ifndef([AC_PACKAGE_URL], -- [m4_define([AC_PACKAGE_URL], -- m4_default(m4_defn([_ac_init_URL]), -- [m4_if(m4_index(m4_defn([_ac_init_NAME]), -- [GNU ]), [0], -- [[https://www.gnu.org/software/]m4_defn([AC_PACKAGE_TARNAME])[/]])]))]) --m4_popdef([_ac_init_NAME]) --m4_popdef([_ac_init_VERSION]) --m4_popdef([_ac_init_BUGREPORT]) --m4_popdef([_ac_init_TARNAME]) --m4_popdef([_ac_init_URL]) -+m4_define_default([AC_PACKAGE_NAME], [$1]) -+m4_define_default([AC_PACKAGE_VERSION], [$2]) -+# The m4_strip makes AC_PACKAGE_STRING be [], not [ ], when -+# both $1 and $2 are empty. -+m4_define_default([AC_PACKAGE_STRING], m4_strip([$1 $2])) -+m4_define_default([AC_PACKAGE_BUGREPORT], [$3]) -+# -+# N.B. m4_ifnblank strips one layer of quotation from whichever of its -+# second and third argument it evaluates to. -+m4_define_default([AC_PACKAGE_TARNAME], -+ m4_ifnblank([$4], [[$4]], -+ [m4_quote(m4_bpatsubst(m4_tolower(m4_bpatsubst([$1], [^GNU ], [])), -+ [[^_abcdefghijklmnopqrstuvwxyz0123456789]], [-]))])) -+m4_define_default([AC_PACKAGE_URL], -+ m4_ifnblank([$5], [[$5]], -+ [m4_if(m4_index([$1], [GNU ]), [0], -+ [[https://www.gnu.org/software/]m4_defn([AC_PACKAGE_TARNAME])[/]], -+ [])])) - ]) - - -@@ -363,13 +354,13 @@ m4_define([_AC_INIT_NOTICE], - [m4_divert_text([HEADER-COMMENT], - [@%:@ Guess values for system-dependent variables and create Makefiles. - @%:@ Generated by m4_PACKAGE_STRING[]dnl --m4_ifset([AC_PACKAGE_STRING], [ for AC_PACKAGE_STRING]).]) -- -+m4_ifset([AC_PACKAGE_STRING], [ for m4_defn([AC_PACKAGE_STRING]). -+])dnl - m4_ifset([AC_PACKAGE_BUGREPORT], - [m4_divert_text([HEADER-COMMENT], - [@%:@ --@%:@ Report bugs to <AC_PACKAGE_BUGREPORT>.])]) --]) -+@%:@ Report bugs to: m4_defn([AC_PACKAGE_BUGREPORT])])]) -+])]) - - - # _AC_INIT_COPYRIGHT -@@ -436,18 +427,12 @@ AC_SUBST([SHELL])dnl - AC_SUBST([PATH_SEPARATOR])dnl - - # Identity of this package. --AC_SUBST([PACKAGE_NAME], -- [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])dnl --AC_SUBST([PACKAGE_TARNAME], -- [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])dnl --AC_SUBST([PACKAGE_VERSION], -- [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])dnl --AC_SUBST([PACKAGE_STRING], -- [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])dnl --AC_SUBST([PACKAGE_BUGREPORT], -- [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])dnl --AC_SUBST([PACKAGE_URL], -- [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])dnl -+AC_SUBST([PACKAGE_NAME], ['m4_defn([AC_PACKAGE_NAME])'])dnl -+AC_SUBST([PACKAGE_TARNAME], ['m4_defn([AC_PACKAGE_TARNAME])'])dnl -+AC_SUBST([PACKAGE_VERSION], ['m4_defn([AC_PACKAGE_VERSION])'])dnl -+AC_SUBST([PACKAGE_STRING], ['m4_defn([AC_PACKAGE_STRING])'])dnl -+AC_SUBST([PACKAGE_BUGREPORT], ['m4_defn([AC_PACKAGE_BUGREPORT])'])dnl -+AC_SUBST([PACKAGE_URL], ['m4_defn([AC_PACKAGE_URL])'])dnl - - m4_divert_pop([DEFAULTS])dnl - m4_wrap_lifo([m4_divert_text([DEFAULTS], -@@ -1048,9 +1033,9 @@ if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF --\`configure' configures m4_ifset([AC_PACKAGE_STRING], -- [AC_PACKAGE_STRING], -- [this package]) to adapt to many kinds of systems. -+\`configure' configures m4_default_nblank(m4_defn([AC_PACKAGE_STRING]), -+ [this package])dnl -+ to adapt to many kinds of systems. - - Usage: $[0] [[OPTION]]... [[VAR=VALUE]]... - -@@ -1099,9 +1084,8 @@ Fine tuning of the installation directories: - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] --]AS_HELP_STRING([--docdir=DIR], -- [documentation root ]@<:@DATAROOTDIR/doc/m4_ifset([AC_PACKAGE_TARNAME], -- [AC_PACKAGE_TARNAME], [PACKAGE])@:>@)[ -+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/]dnl -+m4_default_quoted(m4_defn([AC_PACKAGE_TARNAME]), [PACKAGE])[@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] -@@ -1139,18 +1123,22 @@ fi - if test -n "$ac_init_help"; then - m4_ifset([AC_PACKAGE_STRING], - [ case $ac_init_help in -- short | recursive ) echo "Configuration of AC_PACKAGE_STRING:";; -+ short | recursive ) -+ AS_ECHO(["Configuration of m4_defn([AC_PACKAGE_STRING]):"]);; - esac]) - cat <<\_ACEOF - m4_divert_pop([HELP_ENABLE])dnl - m4_divert_push([HELP_END])dnl - --Report bugs to m4_ifset([AC_PACKAGE_BUGREPORT], [<AC_PACKAGE_BUGREPORT>], -- [the package provider]).dnl --m4_ifdef([AC_PACKAGE_NAME], [m4_ifset([AC_PACKAGE_URL], [ --AC_PACKAGE_NAME home page: <AC_PACKAGE_URL>.])dnl --m4_if(m4_index(m4_defn([AC_PACKAGE_NAME]), [GNU ]), [0], [ --General help using GNU software: <https://www.gnu.org/gethelp/>.])]) -+m4_ifset([AC_PACKAGE_BUGREPORT], -+[Report bugs to: m4_defn([AC_PACKAGE_BUGREPORT]) -+])dnl -+m4_ifset([AC_PACKAGE_NAME], [m4_ifset([AC_PACKAGE_URL], -+[m4_defn([AC_PACKAGE_NAME]) home page: m4_defn([AC_PACKAGE_URL]) -+])])dnl -+m4_if(m4_index(m4_defn([AC_PACKAGE_NAME]), [GNU ]), [0], -+[General help using GNU software: <https://www.gnu.org/gethelp/>. -+])dnl - _ACEOF - ac_status=$? - fi -@@ -1189,9 +1177,9 @@ m4_define([_AC_INIT_VERSION], - [m4_divert_text([VERSION_BEGIN], - [if $ac_init_version; then - cat <<\_ACEOF --m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])configure[]dnl --m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) --generated by m4_PACKAGE_STRING]) -+m4_ifset([AC_PACKAGE_NAME], [m4_defn([AC_PACKAGE_NAME]) ])configure[]dnl -+m4_ifset([AC_PACKAGE_VERSION], [ m4_defn([AC_PACKAGE_VERSION])]) -+generated by m4_defn([m4_PACKAGE_STRING])]) - m4_divert_text([VERSION_END], - [_ACEOF - exit -@@ -1230,9 +1218,10 @@ cat >config.log <<_ACEOF - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - --It was created by m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])dnl --$as_me[]m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]), which was --generated by m4_PACKAGE_STRING. Invocation command line was -+It was created by m4_ifset([AC_PACKAGE_NAME], [m4_defn([AC_PACKAGE_NAME]) ])dnl -+$as_me[]m4_ifset([AC_PACKAGE_VERSION], -+ [ m4_defn([AC_PACKAGE_VERSION])]), which was -+generated by m4_defn([m4_PACKAGE_STRING]). Invocation command line was - - $ $[0]$ac_configure_args_raw - -@@ -1446,7 +1435,7 @@ m4_define([_AS_FORCE_REEXEC_WITH_CONFIG_SHELL], [yes]) - AS_INIT[]dnl - AS_PREPARE[]dnl - m4_divert_push([KILL]) --m4_ifval([$2], [_AC_INIT_PACKAGE($@)]) -+_AC_INIT_PACKAGE($@) - _AC_INIT_DEFAULTS - _AC_INIT_PARSE_ARGS - _AC_INIT_DIRCHECK -diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4 -index 1389f328..aa8324f0 100644 ---- a/lib/autoconf/status.m4 -+++ b/lib/autoconf/status.m4 -@@ -1343,9 +1343,11 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # report actual input values of CONFIG_FILES etc. instead of their - # values after options handling. - ac_log=" --This file was extended by m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])dnl --$as_me[]m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]), which was --generated by m4_PACKAGE_STRING. Invocation command line was -+This file was extended by m4_ifset([AC_PACKAGE_NAME], -+ [m4_defn([AC_PACKAGE_NAME]) ])dnl -+$as_me[]m4_ifset([AC_PACKAGE_VERSION], -+ [ m4_defn([AC_PACKAGE_VERSION])]), which was -+generated by m4_defn([m4_PACKAGE_STRING]). Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -1431,12 +1433,15 @@ m4_ifdef([_AC_SEEN_CONFIG(COMMANDS)], - $config_commands - - ])dnl --Report bugs to m4_ifset([AC_PACKAGE_BUGREPORT], [<AC_PACKAGE_BUGREPORT>], -- [the package provider]).dnl --m4_ifdef([AC_PACKAGE_NAME], [m4_ifset([AC_PACKAGE_URL], [ --AC_PACKAGE_NAME home page: <AC_PACKAGE_URL>.])dnl --m4_if(m4_index(m4_defn([AC_PACKAGE_NAME]), [GNU ]), [0], [ --General help using GNU software: <https://www.gnu.org/gethelp/>.])])" -+m4_ifset([AC_PACKAGE_BUGREPORT], -+[Report bugs to: m4_defn([AC_PACKAGE_BUGREPORT]) -+]))dnl -+m4_ifset([AC_PACKAGE_NAME], [m4_ifset([AC_PACKAGE_URL], -+[m4_defn([AC_PACKAGE_NAME]) home page: m4_defn([AC_PACKAGE_URL]) -+])])dnl -+m4_if(m4_index(m4_defn([AC_PACKAGE_NAME]), [GNU ]), [0], -+[General help using GNU software: <https://www.gnu.org/gethelp/>. -+])" - - _ACEOF - ac_cs_config=`AS_ECHO(["$ac_configure_args"]) | sed "$ac_safe_unquote"` -@@ -1444,9 +1449,9 @@ ac_cs_config_escaped=`AS_ECHO(["$ac_cs_config"]) | sed "s/^ //; s/'/'\\\\\\\\''/ - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config='$ac_cs_config_escaped' - ac_cs_version="\\ --m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.status[]dnl --m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) --configured by $[0], generated by m4_PACKAGE_STRING, -+m4_ifset([AC_PACKAGE_NAME], [m4_defn([AC_PACKAGE_NAME]) ])config.status[]dnl -+m4_ifset([AC_PACKAGE_VERSION], [ m4_defn([AC_PACKAGE_VERSION])]) -+configured by $[0], generated by m4_defn([m4_PACKAGE_STRING]), - with options \\"\$ac_cs_config\\" - - Copyright (C) m4_PACKAGE_YEAR Free Software Foundation, Inc. -diff --git a/tests/base.at b/tests/base.at -index 6a1d9742..bc8e1faa 100644 ---- a/tests/base.at -+++ b/tests/base.at -@@ -238,36 +238,124 @@ AT_CLEANUP - - AT_SETUP([AC_INIT with unusual version strings]) - -+if echo 'ab*c' | grep -F 'ab*c' >/dev/null 2>&1; then -+ FGREP="grep -F" -+else -+ FGREP=fgrep -+fi -+ -+# In both of the arguments that might contain URLs, make sure we test -+# all of the unusual ASCII characters that commonly appear in URLs. -+# The RFC 3986 "unreserved" characters are ASCII letters and digits, plus -+# - . _ ~ -+# The RFC 3986 "gen-delims" and "sub-delims" are -+# / : ? # [ ] @ ! $ & ' ( ) * + , ; = -+# The URL escape character is -+# % -+# Characters that are still significant for Bourne shell within a -+# single-quoted string, double-quoted string, quoted here-doc, or -+# unquoted here-doc are explicitly not allowed: -+# ' $ -+# Also, we don't test unbalanced parentheses or brackets here. -+ - AT_DATA([configure.ac], --[[AC_INIT([GNU String++ with spaces (foo)], -+[[AC_INIT([GNU String++ with spaces -+ (foo)], - [2.48++ (2010-07-03)], -- [[https://example.com/?a=b&c=d#e]], -+ [https://example/~bug/cdfijknoqrvw/-._:@!()[]*+,;/?y=z#1234567890 -+], - [string++], -- [[https://example.com/?f=g&h=i%2fj#42]]) -+ [HTTPS://EXAMPLE/~PKG/BCDFIJNOQRUVW/-._:@!()[]*+,;/?y=z#1234567890 -+]) - AC_OUTPUT - ]]) - --if echo 'ab*c' | grep -F 'ab*c' >/dev/null 2>&1; then -- FGREP="grep -F" --else -- FGREP=fgrep --fi -+AT_CHECK_AUTOCONF([-Werror]) -+AT_CHECK_CONFIGURE([-q]) -+ -+AT_CHECK_CONFIGURE([--help], [], [stdout]) -+AT_CHECK([[$FGREP \ -+ 'https://example/~bug/cdfijknoqrvw/-._:@!()[]*+,;/?y=z#1234567890' \ -+ stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'HTTPS://EXAMPLE/~PKG/BCDFIJNOQRUVW/-._:@!()[]*+,;/?y=z#1234567890' \ -+ stdout]], [], [ignore]) -+ -+AT_CHECK_CONFIGURE([--version], [], [stdout]) -+AT_CHECK([$FGREP 'GNU String++ with spaces (foo)' stdout], [], [ignore]) -+AT_CHECK([$FGREP '2.48++ (2010-07-03)' stdout], [], [ignore]) -+ -+AT_CHECK([./config.status --help], [], [stdout]) -+AT_CHECK([[$FGREP \ -+ 'https://example/~bug/cdfijknoqrvw/-._:@!()[]*+,;/?y=z#1234567890' \ -+ stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'HTTPS://EXAMPLE/~PKG/BCDFIJNOQRUVW/-._:@!()[]*+,;/?y=z#1234567890' \ -+ stdout]], [], [ignore]) -+ -+AT_CHECK([./config.status --version], [], [stdout]) -+AT_CHECK([$FGREP 'GNU String++ with spaces (foo)' stdout], [], [ignore]) -+AT_CHECK([$FGREP '2.48++ (2010-07-03)' stdout], [], [ignore]) -+ -+# Repeat the above test using all the unusual characters that might appear -+# in a list of email addresses in both BUG-REPORT and URL. (URL isn't -+# supposed to contain email addresses, but there's no good reason to -+# restrict its syntax.) -+# The RFC 5822 "atext" characters are ASCII letters and digits, plus -+# ! # $ % & ' * + - / = ? ^ _ ` { | } ~ -+# The RFC 5822 "special" characters, all of which might appear somewhere -+# in an address list, are -+# ( ) < > [ ] : ; @ \ , . " -+# As above, characters that are significant for Bourne shell within -+# strings and heredocs are explicitly not allowed: -+# ' " ` \ $ -+# Whitespace is allowed but collapsed (just like AC_INIT does itself). -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String++ with spaces -+ (foo)], -+ [2.48++ (2010-07-03)], -+ [bugs: fred <A=B?C^D_E@F>, -+ G!H!I#J@K.L (wilma), -+ M%N&O@[156.247.38.49], -+ P*Q+R-S/T@U, -+ {jon|chyp~}@kqtvxz.VWXYZ;], -+ [string++], -+ [contact: jem <A=B?C^D_E@bd>, -+ F!G!H#I@fv.J (lugh), -+ K%L&M@[156.247.38.49], -+ N*O+P-Q/R@STU, -+ {qik|~prys}@wxz.VWXYZ;]) -+AC_OUTPUT -+]]) - - AT_CHECK_AUTOCONF([-Werror]) - AT_CHECK_CONFIGURE([-q]) -+ - AT_CHECK_CONFIGURE([--help], [], [stdout]) --AT_CHECK([[$FGREP 'com/?a=b&c=d#e' stdout]], [], [ignore]) --AT_CHECK([[$FGREP 'com/?f=g&h=i%2fj#42' stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'bugs: fred <A=B?C^D_E@F>, G!H!I#J@K.L (wilma), M%N&O@[156.247.38.49], P*Q+R-S/T@U, {jon|chyp~}@kqtvxz.VWXYZ;' \ -+ stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'contact: jem <A=B?C^D_E@bd>, F!G!H#I@fv.J (lugh), K%L&M@[156.247.38.49], N*O+P-Q/R@STU, {qik|~prys}@wxz.VWXYZ;' \ -+ stdout]], [], [ignore]) -+ - AT_CHECK_CONFIGURE([--version], [], [stdout]) - AT_CHECK([$FGREP 'GNU String++ with spaces (foo)' stdout], [], [ignore]) - AT_CHECK([$FGREP '2.48++ (2010-07-03)' stdout], [], [ignore]) - - AT_CHECK([./config.status --help], [], [stdout]) --AT_CHECK([[$FGREP 'com/?a=b&c=d#e' stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'bugs: fred <A=B?C^D_E@F>, G!H!I#J@K.L (wilma), M%N&O@[156.247.38.49], P*Q+R-S/T@U, {jon|chyp~}@kqtvxz.VWXYZ;' \ -+ stdout]], [], [ignore]) -+AT_CHECK([[$FGREP \ -+ 'contact: jem <A=B?C^D_E@bd>, F!G!H#I@fv.J (lugh), K%L&M@[156.247.38.49], N*O+P-Q/R@STU, {qik|~prys}@wxz.VWXYZ;' \ -+ stdout]], [], [ignore]) -+ - AT_CHECK([./config.status --version], [], [stdout]) - AT_CHECK([$FGREP 'GNU String++ with spaces (foo)' stdout], [], [ignore]) - AT_CHECK([$FGREP '2.48++ (2010-07-03)' stdout], [], [ignore]) - -+# Check for invalid characters in each argument. - AT_DATA([configure.ac], - [[AC_INIT([GNU "String++"], - [2.48], [https://example.com/], [string++]) -@@ -347,6 +435,80 @@ AC_OUTPUT - AT_CHECK_AUTOCONF([-Werror], [1], [ignore], [stderr]) - AT_CHECK([grep 'AC_INIT: unsafe as a filename: ' stderr], [], [ignore]) - -+# Commas and unbalanced close parentheses are especially troublesome for M4. -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU, String], [2.48], [bugs@gstring.example], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String)], [2.48], [bugs@gstring.example], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2,48], [bugs@gstring.example], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48)], [bugs@gstring.example], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs@gstring.example, -+ gstring-bugs@example.com], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs)@gstring.example], -+ [string], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs@gstring.example], -+ [string,], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs@gstring.example], -+ [string)], [https://gstring.example/]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF([], [0], [ignore], [stderr]) -+AT_CHECK([grep 'AC_INIT: unsafe as a filename: ' stderr], [], [ignore]) -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs@gstring.example], -+ [string], [https://gstring.example/docs,html]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF -+ -+ -+AT_DATA([configure.ac], -+[[AC_INIT([GNU String], [2.48], [bugs@gstring.example], -+ [string], [https://gstring.example/weird)/path]) -+AC_OUTPUT -+]]) -+AT_CHECK_AUTOCONF - - AT_CLEANUP - --- -2.26.2 - |