Subject: bug#74453: closed (Re: bug#74453: running make failed when perl is installed in the very long path)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 24 Nov 2024 01:59:03 +0000

Your bug report

#74453: running make failed when perl is installed in the very long path

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
74453: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74453
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#74453: running make failed when perl is installed in the very long path
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sat, 23 Nov 2024 18:58:28 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

    >    ./configure PERL='/usr/bin/env perl'
    >
    > and it will substitute that into the scripts for you, but the configure
    > script in Automake 1.17 exits with a fatal error if it determines that
    > $PERL contains spaces.  We should probably make this non fatal since the
    > check is clearly too broad.

I changed this to a warning. Thanks. -k

-----------------------------------------------------------------------------
configure: make perl path with whitespace a warning, not error.

For https://bugs.gnu.org/74453.
See also https://bugs.gnu.org/62896.

* configure.ac (PERL): use AC_MSG_WARN.
diff --git a/configure.ac b/configure.ac
index e4c7a126c..fb2b37076 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,9 +73,11 @@ case $PERL in
    AC_MSG_ERROR([perl not found])
    ;;
  *' '* | *'	'*)
-  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.])
+  AC_MSG_WARN([The path to your Perl contains spaces or tabs.
+This will likely cause build failures later or unusable programs.
+Unless you're specifying a full string for a #! line,
+as in "/usr/bin/env perl",
+please use a path without spaces and try again.])
   ;;
 esac

Subject: running make failed when perl is installed in the very long path
From: "Li, Changqing" <[email-masked]>
To: "[email-masked]" <[email-masked]>
Cc: "Li, Changqing" <[email-masked]>
Date: Thu, 21 Nov 2024 02:56:29 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,  Dear Maintainers

I met an  issue when try to compile automake with the perl installed in a very long path which larger then max length of shebang ,  here is the reproduce steps

  1.
git clone [email-masked]:autotools-mirror/automake.git; cd automake
  2.
./bootstrap
  3.
./configure
  4.
make
Failed with error:
...
GEN      doc/aclocal-1.17.1
help2man: can't get `--help' info from bin/aclocal
Try `--no-discard-stderr' if option outputs to stderr
make: *** [Makefile:3818: doc/aclocal-1.17.1] Error 2

The failure is caused by the long path of the perl in aclocal.in,  the shebang  is cutted.  Could we change it like following diff?
diff --git a/bin/aclocal.in b/bin/aclocal.in
index 4d01f3a4d..73d5ee47f 100644
--- a/bin/aclocal.in
+++ b/bin/aclocal.in
@@ -1,4 +1,4 @@
-#!@PERL@
+#!/usr/bin/env perl
 # aclocal - create aclocal.m4 by scanning configure.ac      -*- perl -*-
 # @configure_input@
 # Copyright (C) 1996-2024 Free Software Foundation, Inc.
diff --git a/bin/automake.in b/bin/automake.in
index 479125505..55985ea34 100644
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -1,4 +1,4 @@
-#!@PERL@
+#!/usr/bin/env perl
 # automake - create Makefile.in from Makefile.am            -*- perl -*-
 # @configure_input@
 # Copyright (C) 1994-2024 Free Software Foundation, Inc.

Thank you,
Changqing