summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-09-22 15:06:18 +0900
committerAndreas Enge <andreas@enge.fr>2025-07-18 20:17:31 +0200
commitdf94888eca214c496b5cdf57795e03b96866c3af (patch)
treeb0a1b381e6afebae5c4d8a4116b729fddb721fb3
parent84a7b7351535a544e92405534f1bfdd692c16a56 (diff)
utils: Set $0 to basename of command in `wrap-program'.
* guix/build/utils.scm (wrap-program): Set the value of the -a option of `exec' in the wrapper to ${0##*/} instead of $0, to use its base name instead of the complete file name. Fixes: https://issues.guix.gnu.org/73405 Change-Id: Iec5984d4d934c8df88a90ff653947f7d07413ae4 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--guix/build/utils.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 94714bf397..7003d8262f 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -1355,7 +1355,7 @@ contents:
#!location/of/bin/bash
export PATH=\"/gnu/.../bar/bin\"
export CERT_PATH=\"$CERT_PATH${CERT_PATH:+:}/gnu/.../baz/certs:/qux/certs\"
- exec -a $0 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
@@ -1432,7 +1432,7 @@ with definitions for VARS. If it is not, SH will be used as interpreter."
(call-with-output-file prog-tmp
(lambda (port)
(format port
- "#!~a~%~a~%exec -a \"$0\" \"~a\" \"$@\"~%"
+ "#!~a~%~a~%exec -a \"${0##*/}\" \"~a\" \"$@\"~%"
sh
(string-join (map export-variable vars/filtered) "\n")
(canonicalize-path wrapped-file))))