utils: Change 'wrap-program' to preserve the original argv[0].
Suggested by Mark H Weaver <mhw@netris.org> in <http://bugs.gnu.org/19138>. * guix/build/utils.scm (wrap-program): Change wrapper to use "exec -a PROG" instead of just "exec".
This commit is contained in:
parent
c809ec94d1
commit
2ed11b3a3e
@ -762,7 +762,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 location/of/.foo-real
|
||||
exec -a location/of/foo 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
|
||||
@ -786,6 +786,7 @@ (define (wrapper-target number)
|
||||
(copy-file prog prog-real)
|
||||
prog-real)
|
||||
(wrapper-file-name number)))
|
||||
|
||||
(let* ((number (next-wrapper-number))
|
||||
(target (wrapper-target number))
|
||||
(wrapper (wrapper-file-name (1+ number)))
|
||||
@ -815,10 +816,11 @@ (define (export-variable lst)
|
||||
(with-output-to-file prog-tmp
|
||||
(lambda ()
|
||||
(format #t
|
||||
"#!~a~%~a~%exec \"~a\" \"$@\"~%"
|
||||
"#!~a~%~a~%exec -a \"~a\" \"~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