Subject: Re: bug#62896: [Configure] Bug with check for PERL when path has spaces (i.e. Windows)

From: Paul Eggert <[email-masked]>
Date: Sat, 2 Dec 2023 21:55:52 -0800

On 2023-12-02 19:29, Zack Weinberg wrote:
> `grep -q` *is*  in POSIX, but I seem to recall tripping over a
> system that didn't have it (probably either a Solaris successor, or AIX)
> during the run-up to Autoconf 2.71.

Solaris 10 /usr/bin/grep does not support -e, -E, -f, -F, -q, or -x.

Solaris 10 is supported by its supplier through January 2025; that's the 
usual guideline we use for how long to support a sorta-POSIX OS.

However, the script shouldn't use 'grep'. Instead, it should just use 
the shell's builtin pattern matching. That's faster and more portable. I 
installed the attached into Automake.

The original bug was fixed before I got to this, so I'm boldly closing 
the bug report.

From 668e8a20e3561063ee7478e91c9f81bb40cfed7a Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Sat, 2 Dec 2023 21:50:45 -0800
Subject: [PATCH] Simplify recent $PERL check
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* configure.ac: Don’t spin off subprocesses to check $PERL.
---
 configure.ac | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index 946fecb67..5cda80a18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,13 +68,16 @@ AUTOMAKE="\"`pwd`/pre-inst-env\" automake-$APIVERSION"
 AC_PROG_LN_S
 
 AC_PATH_PROG([PERL], [perl])
-if test -z "$PERL"; then
+case $PERL in
+ '')
    AC_MSG_ERROR([perl not found])
-elif echo "$PERL" | grep '[ 	]' >/dev/null; then
+   ;;
+ *' '* | *'	'*)
   AC_MSG_ERROR([The path to your Perl contains spaces or tabs.
 This would cause build failures later or unusable programs.
 Please use a path without spaces and try again.])
-fi
+  ;;
+esac
 
 # Save details about the selected perl interpreter in config.log.
 AM_RUN_LOG([$PERL --version])
-- 
2.40.1