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: Ic75cc8c36bf0a3881f299b274d78bd9fc2d4e2bbmaster
parent
5f89f45e74
commit
a15db2ee50
|
@ -1,5 +1,5 @@
|
|||
;;; 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 © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
|
@ -1066,10 +1066,11 @@ please email '~a'~%")
|
|||
#:optional
|
||||
(output* "out")
|
||||
(compiler (c-compiler))
|
||||
#:key proot?)
|
||||
#:key proot? (fakechroot? proot?))
|
||||
"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
|
||||
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
|
||||
(local-file (search-auxiliary-file "run-in-namespace.c")))
|
||||
|
||||
|
@ -1161,9 +1162,9 @@ last resort for relocation."
|
|||
(define (elf-loader-compile-flags program)
|
||||
;; Return the cpp flags defining macros for the ld.so/fakechroot
|
||||
;; wrapper of PROGRAM.
|
||||
|
||||
#$(if fakechroot?
|
||||
;; TODO: Handle scripts by wrapping their interpreter.
|
||||
(if (elf-file? program)
|
||||
#~(if (elf-file? program)
|
||||
(let* ((bv (call-with-input-file program
|
||||
get-bytevector-all))
|
||||
(elf (parse-elf bv))
|
||||
|
@ -1197,7 +1198,8 @@ last resort for relocation."
|
|||
gconv "\"")
|
||||
"-UGCONV_DIRECTORY"))
|
||||
'()))
|
||||
'()))
|
||||
'())
|
||||
#~'()))
|
||||
|
||||
(define (build-wrapper program)
|
||||
;; Build a user-namespace wrapper for PROGRAM.
|
||||
|
|
Reference in New Issue