[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/07: shepherd: Remove dependency on (guix utils).
From: |
guix-commits |
Subject: |
04/07: shepherd: Remove dependency on (guix utils). |
Date: |
Thu, 5 Nov 2020 10:16:00 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit e6934c0429ed94c9d9e61f81520d11153bbb3f64
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Thu Nov 5 15:26:57 2020 +0100
shepherd: Remove dependency on (guix utils).
Since commit 8ce6f4dc2879919c12bc76a2f4b01200af97e019, importing this
module in a gexp would pull in (guix config) from the host, thereby
leading to non-reproducible derivations. Users in (gnu services ...) do
not expect that so simply remove the (guix utils) dependency for now.
* gnu/build/shepherd.scm (fork+exec-command/container)[strip-pid]: New
procedure.
Use it instead of 'strip-keyword-arguments'.
---
gnu/build/shepherd.scm | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm
index 9164628..d7b858d 100644
--- a/gnu/build/shepherd.scm
+++ b/gnu/build/shepherd.scm
@@ -21,7 +21,6 @@
#:use-module (gnu system file-systems)
#:use-module (gnu build linux-container)
#:use-module (guix build utils)
- #:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
@@ -199,11 +198,24 @@ namespace, in addition to essential bind-mounts such
/proc."
"This is a variant of 'fork+exec-command' procedure, that joins the
namespaces of process PID beforehand. If there is no support for containers,
on Hurd systems for instance, fallback to direct forking."
+ (define (strip-pid args)
+ ;; TODO: Replace with 'strip-keyword-arguments' when that no longer pulls
+ ;; in (guix config).
+ (let loop ((args args)
+ (result '()))
+ (match args
+ (()
+ (reverse result))
+ ((#:pid _ . rest)
+ (loop rest result))
+ ((head . rest)
+ (loop rest (cons head result))))))
+
(let ((container-support?
(file-exists? "/proc/self/ns"))
(fork-proc (lambda ()
(apply fork+exec-command command
- (strip-keyword-arguments '(#:pid) args)))))
+ (strip-pid args)))))
(if container-support?
(container-excursion* pid fork-proc)
(fork-proc))))
- branch master updated (552e9fc -> a5945a6), guix-commits, 2020/11/05
- 01/07: image: Error out when passed an unsupported partition type., guix-commits, 2020/11/05
- 05/07: pack: Do not include the host (guix config)., guix-commits, 2020/11/05
- 06/07: services: Remove imports of (ice-9 …) modules., guix-commits, 2020/11/05
- 07/07: gnu: chromium: Silent 'local-file' warning., guix-commits, 2020/11/05
- 04/07: shepherd: Remove dependency on (guix utils).,
guix-commits <=
- 03/07: gexp: Warn when importing (guix config) or (ice-9 …)., guix-commits, 2020/11/05
- 02/07: gexp: Store the source code location in <gexp>., guix-commits, 2020/11/05