GNU bug report logs

#79044 Autoconf-bundled macro uses /bin/sh, breaking builds that do autoreconf

PackageSource(s)Maintainer(s)
guix PTS Buildd Popcon
Full log

Message #5 received at submit@debbugs.gnu.org (full text, mbox, reply):

Received: (at submit) by debbugs.gnu.org; 18 Jul 2025 11:43:43 +0000
From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 18 07:43:43 2025
Received: from localhost ([127.0.0.1]:32950 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
	id 1ucjV9-0008R9-1G
	for submit@debbugs.gnu.org; Fri, 18 Jul 2025 07:43:43 -0400
Received: from lists.gnu.org ([2001:470:142::17]:49856)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <koszko@koszko.org>) id 1ucjUz-0008Q5-60
 for submit@debbugs.gnu.org; Fri, 18 Jul 2025 07:43:38 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <koszko@koszko.org>) id 1ucjUr-0000fh-Hl
 for bug-guix@gnu.org; Fri, 18 Jul 2025 07:43:26 -0400
Received: from salamina.koszko.org ([188.68.237.248] helo=koszko.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <koszko@koszko.org>) id 1ucjUm-000592-B7
 for bug-guix@gnu.org; Fri, 18 Jul 2025 07:43:25 -0400
Received: from dummy-client.koszko.org ([192.168.193.169])
 by salamina.koszko.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98)
 (envelope-from <koszko@koszko.org>) id 1ucjUd-0000000014O-1U4M
 for bug-guix@gnu.org; Fri, 18 Jul 2025 13:43:11 +0200
Date: Fri, 18 Jul 2025 13:43:10 +0200
From: "W. Kosior" <koszko@koszko.org>
To: bug-guix@gnu.org
Subject: Autoconf-bundled macro uses /bin/sh, breaking builds that do
 autoreconf
Message-ID: <20250718134310.546da258.koszko@koszko.org>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/3YM6lH42DFBEHNiqMbr3D.L";
 protocol="application/pgp-signature"; micalg=pgp-sha512
Received-SPF: pass client-ip=188.68.237.248; envelope-from=koszko@koszko.org;
 helo=koszko.org
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request@debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit@debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request@debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request@debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces@debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
X-Spam-Score: -0.1 (/)
[Message part 1 (text/plain, inline)]
Hi Guix,

file `share/autoconf/autoconf/erlang.m4' in Autoconf package contains
definitions allowing configure-time tests using Erlang.  The piece of
code responsible for generating a `conftest' script adds a shebang with
`#!/bin/sh':

--8<---------------cut here---------------start------------->8---
# AC_LANG(Erlang)
# ---------------
AC_LANG_DEFINE([Erlang], [erl], [ERL], [ERLC], [],
[ac_ext=erl
: ${ac_objext=o}
ac_compile='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && ln -sf conftest.beam conftest.$ac_objext'
ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo "[#]!/bin/sh" > conftest$ac_exeext && AS_ECHO(["\"$ERL\" -run conftest start -run init stop -noshell"]) >> conftest$ac_exeext && chmod +x conftest$ac_exeext'
])
--8<---------------cut here---------------end--------------->8---

This could make sense if the Autoconf from Guix were to be used for
generating a `configure' script to be run on other system.  But if
a script with `#!/bin/sh' is created during a Guix package build, this
is wrong.

Here's an error I got due to this when working on a recipe for Erlang
HTTP server, Yaws:

--8<---------------cut here---------------start------------->8---
[...]
checking for ct_run... /gnu/store/briw8s44c7w2lj3qwz3w2x4c0gpgpkn8-erlang-27.3.4/bin/ct_run
checking for erlc... /gnu/store/briw8s44c7w2lj3qwz3w2x4c0gpgpkn8-erlang-27.3.4/bin/erlc
checking for erl... /gnu/store/briw8s44c7w2lj3qwz3w2x4c0gpgpkn8-erlang-27.3.4/bin/erl
checking for Erlang/OTP root directory... configure: error: in `/tmp/guix-build-erlang-yaws-2.2.0.drv-0/source':                                   
configure: error: test Erlang program execution failed
See `config.log' for more details
error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" arguments: ("./configure" "CONFIG_SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" "SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" "--prefix=/gnu/store/12731cvmcwr0f2cgjy87bx6k1cg5nlqb-erlang-yaws-2.2.0" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--enable-deterministic-build") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `configure' failed after 4.1 seconds
command "/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" "./configure" "CONFIG_SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" "SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash" "--prefix=/gnu/store/12731cvmcwr0f2cgjy87bx6k1cg5nlqb-erlang-yaws-2.2.0" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--enable-deterministic-build" failed with status 1
build process 4 exited with status 256
--8<---------------cut here---------------end--------------->8---

Btw, until someone fixes it, here's a hackish workaround for any1 who
hits this issue while working on some Erlang software recipe:

--8<---------------cut here---------------start------------->8---
;; Copyright 2025 W. Kosior <koszko@koszko.org>
;; SPDX-License-Identifier: CC0-1.0
(add-before 'configure 'hack-to-avoid-/bin/sh
  (lambda _
    (mkdir-p "/tmp/hack-to-avoid-bin-sh")
    (with-output-to-file "/tmp/hack-to-avoid-bin-sh/chmod"
      (lambda _
        (display "
if [ \"$1\" = +x ] &&
   [ -f \"$2\" ] &&
   [ \"$(head -1 \"$2\")\" = '#!/bin/sh' ]; then
    sed -i 's,^#!/bin/sh,,' \"$2\"
fi
exec $(command -v chown | sed 's,chown$,chmod,') \"$@\"
")
        (chmod (current-output-port) #o777)))
    (setenv "PATH" (format #f "/tmp/hack-to-avoid-bin-sh:~a"
                           (getenv "PATH")))))
--8<---------------cut here---------------end--------------->8---

Best!
Wojtek

--
W. Kosior

website: https://koszko.org/koszko.html
fediverse: https://friendica.me/profile/koszko/profile
PGP fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A
[Message part 2 (application/pgp-signature, inline)]

Send a report that this bug log contains spam.


debbugs.gnu.org maintainers <help-debbugs@gnu.org>. Last modified: Tue Sep 9 17:07:04 2025; Machine Name: wallace-server

GNU bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.