gnu: libtool: Restore shebangs on all libtoolize files.

Fixes <https://bugs.gnu.org/25304>.

* gnu/packages/autotools.scm (libtool)[restore-build-aux-shebang]: New
phase after install.
[restore-ltmain-shebang]: Remove phase, it is now performed by the phase
restore-build-aux-shebang.
This commit is contained in:
Miguel Ángel Arruga Vivas 2020-11-13 15:24:46 +01:00
parent dbb4c665e4
commit 8d263ff254
No known key found for this signature in database
GPG key ID: 634C6E8979FABEC2

View file

@ -444,11 +444,19 @@ (define-public libtool
(("/bin/sh")
(string-append bash "/bin/sh")))
#t)))
(add-after 'patch-source-shebangs 'restore-ltmain-shebang
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build-aux/ltmain.in"
(("^#!.*/bin/sh$") "#!/bin/sh"))
#t)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%" file)
(substitute* file
(("^#!.*/bin/sh") "#!/bin/sh")))
(find-files dir ".*"))
#t))))))
(synopsis "Generic shared library support tools")
(description