It looks like this didn't go through to bug-automake because the bug
was still considered to be assigned to autoconf at the time.

---------- Forwarded message ---------
From: Zack Weinberg <za...@panix.com>
Date: Fri, Sep 4, 2020 at 9:44 AM
Subject: Re: bug#14196: Problem with invoking "missing" in directory
with "(" in name (Automake 1.11.6, Autoconf 2.68
To: <14...@debbugs.gnu.org>, <cont...@debbugs.gnu.org>


reassign -1 automake
tags -1 + patch
quit

OK, after a quick investigation, the failure happens at configure time
but the problem code belongs to automake.  Specifically,
AM_MISSING_HAS_RUN. I think the tidiest fix is to quote the value of
$am_aux_dir/missing unconditionally:

diff --git a/m4/missing.m4 b/m4/missing.m4
index 6f742fb20..56c84fbf5 100644
--- a/m4/missing.m4
+++ b/m4/missing.m4
@@ -21,12 +21,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then

This doesn't handle the possibility of $am_aux_dir containing
backslash or double quote characters, but that's ok because
AM_SANITY_CHECK will already have refused to run configure with either
the current working directory or the source directory named like that.
(An alternative patch would be to add ( ) to the set of characters
rejected by AM_SANITY_CHECK.)

If m4sugar included a version of AS_ESCAPE that worked at configure
time, instead of m4 expansion time, I'd suggest using that, but it
doesn't.

zw



Reply via email to