services: Add options to 'guix-service'.
* gnu/services/base.scm (guix-service): Add #:use-substitutes? and #:extra-options parameters, and honor them. * doc/guix.texi (Base Services): Adjust accordingly.
This commit is contained in:
		
							parent
							
								
									55e70e655d
								
							
						
					
					
						commit
						c11a6eb1e5
					
				
					 2 changed files with 25 additions and 4 deletions
				
			
		| 
						 | 
					@ -3434,13 +3434,21 @@ settings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deffn {Monadic Procedure} guix-service [#:guix guix] @
 | 
					@deffn {Monadic Procedure} guix-service [#:guix guix] @
 | 
				
			||||||
       [#:builder-group "guixbuild"] [#:build-accounts 10] @
 | 
					       [#:builder-group "guixbuild"] [#:build-accounts 10] @
 | 
				
			||||||
       [#:authorize-hydra-key? #f]
 | 
					       [#:authorize-hydra-key? #f] [#:use-substitutes? #t] @
 | 
				
			||||||
 | 
					       [#:extra-options '()]
 | 
				
			||||||
Return a service that runs the build daemon from @var{guix}, and has
 | 
					Return a service that runs the build daemon from @var{guix}, and has
 | 
				
			||||||
@var{build-accounts} user accounts available under @var{builder-group}.
 | 
					@var{build-accounts} user accounts available under @var{builder-group}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When @var{authorize-hydra-key?} is true, the @code{hydra.gnu.org} public key
 | 
					When @var{authorize-hydra-key?} is true, the @code{hydra.gnu.org} public key
 | 
				
			||||||
provided by @var{guix} is authorized upon activation, meaning that substitutes
 | 
					provided by @var{guix} is authorized upon activation, meaning that substitutes
 | 
				
			||||||
from @code{hydra.gnu.org} are used by default.
 | 
					from @code{hydra.gnu.org} are used by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If @var{use-substitutes?} is false, the daemon is run with
 | 
				
			||||||
 | 
					@option{--no-substitutes} (@pxref{Invoking guix-daemon,
 | 
				
			||||||
 | 
					@option{--no-substitutes}}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, @var{extra-options} is a list of additional command-line options
 | 
				
			||||||
 | 
					passed to @command{guix-daemon}.
 | 
				
			||||||
@end deffn
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deffn {Monadic Procedure} udev-service [#:udev udev]
 | 
					@deffn {Monadic Procedure} udev-service [#:udev udev]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -368,13 +368,22 @@ GUIX."
 | 
				
			||||||
failed to register hydra.gnu.org public key: ~a~%" status))))))))
 | 
					failed to register hydra.gnu.org public key: ~a~%" status))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define* (guix-service #:key (guix guix) (builder-group "guixbuild")
 | 
					(define* (guix-service #:key (guix guix) (builder-group "guixbuild")
 | 
				
			||||||
                       (build-accounts 10) authorize-hydra-key?)
 | 
					                       (build-accounts 10) authorize-hydra-key?
 | 
				
			||||||
 | 
					                       (use-substitutes? #t)
 | 
				
			||||||
 | 
					                       (extra-options '()))
 | 
				
			||||||
  "Return a service that runs the build daemon from @var{guix}, and has
 | 
					  "Return a service that runs the build daemon from @var{guix}, and has
 | 
				
			||||||
@var{build-accounts} user accounts available under @var{builder-group}.
 | 
					@var{build-accounts} user accounts available under @var{builder-group}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When @var{authorize-hydra-key?} is true, the @code{hydra.gnu.org} public key
 | 
					When @var{authorize-hydra-key?} is true, the @code{hydra.gnu.org} public key
 | 
				
			||||||
provided by @var{guix} is authorized upon activation, meaning that substitutes
 | 
					provided by @var{guix} is authorized upon activation, meaning that substitutes
 | 
				
			||||||
from @code{hydra.gnu.org} are used by default."
 | 
					from @code{hydra.gnu.org} are used by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If @var{use-substitutes?} is false, the daemon is run with
 | 
				
			||||||
 | 
					@option{--no-substitutes} (@pxref{Invoking guix-daemon,
 | 
				
			||||||
 | 
					@option{--no-substitutes}}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, @var{extra-options} is a list of additional command-line options
 | 
				
			||||||
 | 
					passed to @command{guix-daemon}."
 | 
				
			||||||
  (define activate
 | 
					  (define activate
 | 
				
			||||||
    ;; Assume that the store has BUILDER-GROUP as its group.  We could
 | 
					    ;; Assume that the store has BUILDER-GROUP as its group.  We could
 | 
				
			||||||
    ;; otherwise call 'chown' here, but the problem is that on a COW unionfs,
 | 
					    ;; otherwise call 'chown' here, but the problem is that on a COW unionfs,
 | 
				
			||||||
| 
						 | 
					@ -392,7 +401,11 @@ from @code{hydra.gnu.org} are used by default."
 | 
				
			||||||
             (start
 | 
					             (start
 | 
				
			||||||
              #~(make-forkexec-constructor
 | 
					              #~(make-forkexec-constructor
 | 
				
			||||||
                 (list (string-append #$guix "/bin/guix-daemon")
 | 
					                 (list (string-append #$guix "/bin/guix-daemon")
 | 
				
			||||||
                       "--build-users-group" #$builder-group)))
 | 
					                       "--build-users-group" #$builder-group
 | 
				
			||||||
 | 
					                       #$@(if use-substitutes?
 | 
				
			||||||
 | 
					                              '()
 | 
				
			||||||
 | 
					                              '("--no-substitutes"))
 | 
				
			||||||
 | 
					                       #$@extra-options)))
 | 
				
			||||||
             (stop #~(make-kill-destructor))
 | 
					             (stop #~(make-kill-destructor))
 | 
				
			||||||
             (user-accounts accounts)
 | 
					             (user-accounts accounts)
 | 
				
			||||||
             (user-groups (list (user-group
 | 
					             (user-groups (list (user-group
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue