mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-28 07:12:30 -05:00
guix: pack: Fix offset calculation for store directory mount point.
Fixes wrapping of non-package things, where the target store directory may differ in length from the original. * guix/scripts/pack.scm (wrapped-package)<build-wrapper>: Define WRAPPER_PROGRAM macro with wrapper's file name. * gnu/packages/aux-files/run-in-namespace.c (main): Offset index by len of that file name.
This commit is contained in:
parent
eee35fe3b7
commit
a73896425e
2 changed files with 6 additions and 2 deletions
|
@ -620,7 +620,7 @@ main (int argc, char *argv[])
|
|||
/* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we
|
||||
want to extract "/home/ludo/.local/gnu/store". */
|
||||
size_t index = strlen (self)
|
||||
- strlen ("@WRAPPED_PROGRAM@") + strlen (original_store);
|
||||
- strlen (WRAPPER_PROGRAM) + strlen (original_store);
|
||||
char *store = strdup (self);
|
||||
store[index] = '\0';
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -847,7 +848,7 @@ (define (build-wrapper program)
|
|||
(("@STORE_DIRECTORY@") (%store-directory)))
|
||||
|
||||
(let* ((base (strip-store-prefix program))
|
||||
(result (string-append target "/" base))
|
||||
(result (string-append target base))
|
||||
(proot #$(and proot?
|
||||
#~(string-drop
|
||||
#$(file-append (proot) "/bin/proot")
|
||||
|
@ -856,6 +857,9 @@ (define (build-wrapper program)
|
|||
(mkdir-p (dirname result))
|
||||
(apply invoke #$compiler "-std=gnu99" "-static" "-Os" "-g0" "-Wall"
|
||||
"run.c" "-o" result
|
||||
(string-append "-DWRAPPER_PROGRAM=\""
|
||||
(canonicalize-path (dirname result)) "/"
|
||||
(basename result) "\"")
|
||||
(append (if proot
|
||||
(list (string-append "-DPROOT_PROGRAM=\""
|
||||
proot "\""))
|
||||
|
|
Loading…
Reference in a new issue