services: nix: Add more configuration fields.
* gnu/services/nix.scm (<nix-configuration>)[build-directory]: New field. (nix-service-etc, nix-shepherd-service): Take them into account. * doc/guix.texi (Nix): Update it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
bbcd06e56c
commit
22acc0b029
2 changed files with 17 additions and 3 deletions
|
@ -37209,6 +37209,15 @@ The Nix package to use.
|
|||
@item @code{sandbox} (default: @code{#t})
|
||||
Specifies whether builds are sandboxed by default.
|
||||
|
||||
@item @code{build-directory} (default: @code{"/tmp"})
|
||||
The directory where build directory are stored during builds.
|
||||
This is useful to change if, for example, the default location does not
|
||||
have enough space to hold build trees for big packages.
|
||||
|
||||
This is similar to setting the @env{TMPDIR} environment variable for
|
||||
@command{guix-daemon}. @ref{Build Environment Setup, @env{TMPDIR}},
|
||||
for more info.
|
||||
|
||||
@item @code{build-sandbox-items} (default: @code{'()})
|
||||
This is a list of strings or objects appended to the
|
||||
@code{build-sandbox-items} field of the configuration file.
|
||||
|
|
|
@ -54,6 +54,8 @@ (define-record-type* <nix-configuration>
|
|||
(default nix))
|
||||
(sandbox nix-configuration-sandbox ;boolean
|
||||
(default #t))
|
||||
(build-directory nix-configuration-build-directory ;string
|
||||
(default "/tmp"))
|
||||
(build-sandbox-items nix-configuration-build-sandbox-items ;list of strings
|
||||
(default '()))
|
||||
(extra-config nix-configuration-extra-config ;list of strings
|
||||
|
@ -106,7 +108,7 @@ (define (nix-activation _)
|
|||
|
||||
(define nix-service-etc
|
||||
(match-lambda
|
||||
(($ <nix-configuration> package sandbox build-sandbox-items extra-config)
|
||||
(($ <nix-configuration> package sandbox build-directory build-sandbox-items extra-config)
|
||||
(let ((ref-file (references-file package)))
|
||||
`(("nix/nix.conf"
|
||||
,(computed-file
|
||||
|
@ -130,7 +132,7 @@ (define internal-sandbox-paths
|
|||
(define nix-shepherd-service
|
||||
;; Return a <shepherd-service> for Nix.
|
||||
(match-lambda
|
||||
(($ <nix-configuration> package _ _ _ extra-options)
|
||||
(($ <nix-configuration> package _ build-directory _ _ extra-options)
|
||||
(list
|
||||
(shepherd-service
|
||||
(provision '(nix-daemon))
|
||||
|
@ -138,7 +140,10 @@ (define nix-shepherd-service
|
|||
(requirement '())
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$package "/bin/nix-daemon")
|
||||
#$@extra-options)))
|
||||
#$@extra-options)
|
||||
#:environment-variables
|
||||
(list (string-append "TMPDIR=" build-directory)
|
||||
"PATH=/run/current-system/profile/bin")))
|
||||
(respawn? #f)
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
|
|
Loading…
Reference in a new issue