utils: Use $0 instead of absolute path to original program in 'wrap-program'.
* guix/build/utils.scm (wrap-program): Create scripts that use $0 (which is
usually just the base name) instead of the absolute path to the original
program. Alternative implementation of 2ed11b3
.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Closes <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19742>.
This commit is contained in:
parent
3e74dcd0bb
commit
b01f89675d
@ -816,7 +816,7 @@ (define* (wrap-program prog #:rest vars)
|
||||
#!location/of/bin/bash
|
||||
export PATH=\"/gnu/.../bar/bin\"
|
||||
export CERT_PATH=\"$CERT_PATH${CERT_PATH:+:}/gnu/.../baz/certs:/qux/certs\"
|
||||
exec -a location/of/foo location/of/.foo-real \"$@\"
|
||||
exec -a $0 location/of/.foo-real \"$@\"
|
||||
|
||||
This is useful for scripts that expect particular programs to be in $PATH, for
|
||||
programs that expect particular shared libraries to be in $LD_LIBRARY_PATH, or
|
||||
@ -870,11 +870,10 @@ (define (export-variable lst)
|
||||
(with-output-to-file prog-tmp
|
||||
(lambda ()
|
||||
(format #t
|
||||
"#!~a~%~a~%exec -a \"~a\" \"~a\" \"$@\"~%"
|
||||
"#!~a~%~a~%exec -a \"$0\" \"~a\" \"$@\"~%"
|
||||
(which "bash")
|
||||
(string-join (map export-variable vars)
|
||||
"\n")
|
||||
(canonicalize-path prog)
|
||||
(canonicalize-path target))))
|
||||
|
||||
(chmod prog-tmp #o755)
|
||||
|
Loading…
Reference in New Issue
Block a user