summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-09-09 10:09:25 +0200
committerLudovic Courtès <ludo@gnu.org>2021-09-09 10:09:25 +0200
commit902de26c1a2462b3374633f724852507d957019a (patch)
tree7b40d8a4ed70c3e636982e1aaa6fe529ed05becf /gnu
parentde15397006c271b5506561b45fa41e110f93dec4 (diff)
downloadguix-902de26c1a2462b3374633f724852507d957019a.tar.gz
gnu: autoconf: Unpatch shebangs on files that "autoconf -i" installs.
Fixes <https://issues.guix.gnu.org/50288>.
Reported by Maxim Cournoyer.

* gnu/packages/autotools.scm (autoconf-2.71)[arguments]: Add
'unpatch-shebangs' phase.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/autotools.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 33e1905a25..6987a8fd40 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -135,7 +135,18 @@ know anything about Autoconf or M4.")
                                  (find-files "bin"
                                              (lambda (file stat)
                                                (executable-file? file)))))
-               #t))))))))
+               #t))
+           (add-after 'install 'unpatch-shebangs
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; Scripts that "autoconf -i" installs (config.guess,
+               ;; config.sub, and install-sh) must use a regular shebang
+               ;; rather than a reference to the store.  Restore it.
+               ;; TODO: Move this phase to 'autoconf-2.69'.
+               (let* ((out (assoc-ref outputs "out"))
+                      (build-aux (string-append
+                                  out "/share/autoconf/build-aux")))
+                 (substitute* (find-files build-aux)
+                   (("^#!.*/bin/sh") "#!/bin/sh")))))))))))
 
 (define-public autoconf autoconf-2.69)