Vivien Kraus <[email protected]> skribis:
> * gnu/packages/build-tools.scm (gnulib) [phase reset-shebangs]: After
> installation, rewrite the /gnu/store shebangs in the distributed build-aux
> files.
> [inputs, native-inputs]: Add bash-minimal.
> [phase let-autogen-execute-gnulib-tool]: Specify a shell to execute
> gnulib-tool from autogen.sh.
[...]
> + (add-after 'install 'reset-shebangs
s/reset/restore/ ?
> + (lambda _
> + (for-each
> + (lambda (file)
> + (false-if-exception
> + ;; Might fail on binary files, this is not a problem.
> + (substitute* file
> + ((#$(file-append (this-package-native-input
> "bash-minimal")
> + "/bin/sh"))
> + "/bin/sh")
> + ((#$(file-append (this-package-native-input "python")
> + "/bin/python3"))
> + "/usr/bin/env python3")
> + ((#$(file-append (this-package-native-input "perl")
> + "/bin/perl"))
> + "/usr/bin/perl")
> + ((#$(file-append (this-package-native-input "clisp")
> + "/bin/clisp"))
> + "/usr/bin/clisp"))))
> + (find-files (string-append #$output "/src/gnulib"))))))))
How about:
(substitute* (find-files …)
(("^#! ?(.*)/bin/([a-zA-Z0-9-]+)" _ prefix program)
(string-append "#!/bin/" program "\n")))
?
Ludo’.