mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
pack: ‘-R’ (once) does not include fakechroot fallback.
Previously, ‘guix pack -R’ would build a wrapper containing both the “userns” and “fakechroot” engines, instead of providing nothing but the “userns” engine as the manual says. This patch fixes it. * guix/scripts/pack.scm (wrapped-package): Add #:fakechroot? [build]: When FAKECHROOT? is false, ‘elf-loader-compile-flags’ always returns '(). Change-Id: Ic75cc8c36bf0a3881f299b274d78bd9fc2d4e2bb
This commit is contained in:
parent
5f89f45e74
commit
a15db2ee50
1 changed files with 40 additions and 38 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015, 2017-2023 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2017-2024 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||||
|
@ -1066,10 +1066,11 @@ (define* (wrapped-package package
|
||||||
#:optional
|
#:optional
|
||||||
(output* "out")
|
(output* "out")
|
||||||
(compiler (c-compiler))
|
(compiler (c-compiler))
|
||||||
#:key proot?)
|
#:key proot? (fakechroot? proot?))
|
||||||
"Return the OUTPUT of PACKAGE with its binaries wrapped such that they are
|
"Return the OUTPUT of PACKAGE with its binaries wrapped such that they are
|
||||||
relocatable. When PROOT? is true, include PRoot in the result and use it as a
|
relocatable. When PROOT? is true, include PRoot in the result and use it as a
|
||||||
last resort for relocation."
|
last resort for relocation. When FAKECHROOT? is true, include
|
||||||
|
libfakechroot.so and related ld.so machinery as a fallback."
|
||||||
(define runner
|
(define runner
|
||||||
(local-file (search-auxiliary-file "run-in-namespace.c")))
|
(local-file (search-auxiliary-file "run-in-namespace.c")))
|
||||||
|
|
||||||
|
@ -1161,9 +1162,9 @@ (define (runpath file)
|
||||||
(define (elf-loader-compile-flags program)
|
(define (elf-loader-compile-flags program)
|
||||||
;; Return the cpp flags defining macros for the ld.so/fakechroot
|
;; Return the cpp flags defining macros for the ld.so/fakechroot
|
||||||
;; wrapper of PROGRAM.
|
;; wrapper of PROGRAM.
|
||||||
|
#$(if fakechroot?
|
||||||
;; TODO: Handle scripts by wrapping their interpreter.
|
;; TODO: Handle scripts by wrapping their interpreter.
|
||||||
(if (elf-file? program)
|
#~(if (elf-file? program)
|
||||||
(let* ((bv (call-with-input-file program
|
(let* ((bv (call-with-input-file program
|
||||||
get-bytevector-all))
|
get-bytevector-all))
|
||||||
(elf (parse-elf bv))
|
(elf (parse-elf bv))
|
||||||
|
@ -1197,7 +1198,8 @@ (define (elf-loader-compile-flags program)
|
||||||
gconv "\"")
|
gconv "\"")
|
||||||
"-UGCONV_DIRECTORY"))
|
"-UGCONV_DIRECTORY"))
|
||||||
'()))
|
'()))
|
||||||
'()))
|
'())
|
||||||
|
#~'()))
|
||||||
|
|
||||||
(define (build-wrapper program)
|
(define (build-wrapper program)
|
||||||
;; Build a user-namespace wrapper for PROGRAM.
|
;; Build a user-namespace wrapper for PROGRAM.
|
||||||
|
|
Loading…
Reference in a new issue