GNU bug report logs -
#45065
[PATCH] services: nix: Move nix.conf generation to etc-service-type.
Previous Next
Reported by: Zhu Zihao <all_but_last <at> 163.com>
Date: Sun, 6 Dec 2020 08:31:02 UTC
Severity: normal
Tags: patch
Done: Oleg Pykhalov <go.wigust <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 45065 in the body.
You can then email your comments to 45065 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#45065
; Package
guix-patches
.
(Sun, 06 Dec 2020 08:31:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Zhu Zihao <all_but_last <at> 163.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 06 Dec 2020 08:31:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
[signature.asc (application/pgp-signature, inline)]
[0001-services-nix-Move-nix.conf-generation-to-etc-service.patch (text/x-patch, inline)]
From 506968bd136dd00f7aecb7a89d4000ef56d752f9 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Sun, 6 Dec 2020 16:26:02 +0800
Subject: [PATCH] services: nix: Move nix.conf generation to etc-service-type.
/etc/nix/nix.conf is a static file doesn't need rebuild on every boot.
* gnu/services/nix.scm(nix-activation): Don't create /etc/nix/nix.conf.
(nix-service-etc): New function.
(nix-service-type): New service-extension "nix-service-etc" to etc-service-type.
---
gnu/services/nix.scm | 61 ++++++++++++++++++++++++--------------------
1 file changed, 33 insertions(+), 28 deletions(-)
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 93f46ef71e..1aef47db0a 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -89,37 +89,41 @@ GID."
(id 40000))
(nix-build-accounts 10 #:group "nixbld")))
-(define nix-activation
+(define (nix-activation _)
;; Return the activation gexp.
+ #~(begin
+ (use-modules (guix build utils)
+ (srfi srfi-26))
+ (for-each (cut mkdir-p <>) '("/nix/store" "/nix/var/log"
+ "/nix/var/nix/gcroots/per-user"
+ "/nix/var/nix/profiles/per-user"))
+ (chown "/nix/store"
+ (passwd:uid (getpw "root")) (group:gid (getpw "nixbld01")))
+ (chmod "/nix/store" #o775)
+ (for-each (cut chmod <> #o777) '("/nix/var/nix/profiles"
+ "/nix/var/nix/profiles/per-user"))))
+
+(define nix-service-etc
(match-lambda
(($ <nix-configuration> package sandbox build-sandbox-items extra-config)
- (with-imported-modules (source-module-closure
- '((guix build store-copy)))
- #~(begin
- (use-modules (guix build utils)
- (ice-9 format)
- (srfi srfi-1)
- (srfi srfi-26))
- (for-each (cut mkdir-p <>) '("/nix/store" "/nix/var/log"
- "/nix/var/nix/gcroots/per-user"
- "/nix/var/nix/profiles/per-user"))
- (chown "/nix/store"
- (passwd:uid (getpw "root")) (group:gid (getpw "nixbld01")))
- (chmod "/nix/store" #o775)
- (for-each (cut chmod <> #o777) '("/nix/var/nix/profiles"
- "/nix/var/nix/profiles/per-user"))
- (mkdir-p "/etc/nix")
- (with-output-to-file "/etc/nix/nix.conf"
- (lambda _
- (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
- ;; config.nix captures store file names.
- (format #t "build-sandbox-paths = ~{~a ~}~%"
- (append (append-map (cut call-with-input-file <> read)
- '#$(map references-file
- (list package)))
- '#$build-sandbox-items))
- (for-each (cut display <>) '#$extra-config)
- (newline))))))))
+ (let ((ref-file (references-file package)))
+ `(("nix/nix.conf"
+ ,(computed-file
+ "nix.conf"
+ #~(begin
+ (use-modules (srfi srfi-26)
+ (ice-9 format))
+ (with-output-to-file #$output
+ (lambda _
+ (define internal-sandbox-paths
+ (call-with-input-file #$ref-file read))
+
+ (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
+ ;; config.nix captures store file names.
+ (format #t "build-sandbox-paths = ~{~a ~}~%"
+ (append internal-sandbox-paths
+ '#$build-sandbox-items))
+ (for-each (cut display <>) '#$extra-config)))))))))))
(define nix-shepherd-service
;; Return a <shepherd-service> for Nix.
@@ -143,6 +147,7 @@ GID."
(list (service-extension shepherd-root-service-type nix-shepherd-service)
(service-extension account-service-type nix-accounts)
(service-extension activation-service-type nix-activation)
+ (service-extension etc-service-type nix-service-etc)
(service-extension profile-service-type
(compose list nix-configuration-package))))
(description "Run the Nix daemon.")
--
2.29.2
[Message part 4 (text/plain, inline)]
--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp
Zihao
Reply sent
to
Oleg Pykhalov <go.wigust <at> gmail.com>
:
You have taken responsibility.
(Sun, 06 Dec 2020 11:51:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Zhu Zihao <all_but_last <at> 163.com>
:
bug acknowledged by developer.
(Sun, 06 Dec 2020 11:51:03 GMT)
Full text and
rfc822 format available.
Message #10 received at 45065-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Merged in https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8e73bf754f95fac5a383b90405e741d1cf1aaeb9
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#45065
; Package
guix-patches
.
(Sun, 06 Dec 2020 16:41:06 GMT)
Full text and
rfc822 format available.
Message #13 received at 45065-done <at> debbugs.gnu.org (full text, mbox):
Zhu Zihao <all_but_last <at> 163.com> writes:
> From: Zhu Zihao <all_but_last <at> 163.com>
> Date: Sun, 6 Dec 2020 16:26:02 +0800
> Subject: [PATCH] services: nix: Move nix.conf generation to etc-service-type.
Pushed to master, thank you!
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 04 Jan 2021 12:24:11 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 161 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.