services: Add spice vdagent service.
* gnu/services/spice.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Various Services): New subheading.
This commit is contained in:
parent
e02cd2b8fe
commit
00f4690568
@ -9921,6 +9921,17 @@ Finally, @var{extra-options} is a list of additional command-line options
|
||||
passed to @command{lircd}.
|
||||
@end deffn
|
||||
|
||||
@cindex spice
|
||||
@subsubheading Spice Service
|
||||
|
||||
The @code{(gnu services spice)} module provides the following service.
|
||||
|
||||
@deffn {Scheme Procedure} spice-vdagent-service [#:spice-vdagent]
|
||||
Returns a service that runs @url{http://www.spice-space.org,VDAGENT}, a daemon
|
||||
that enables sharing the clipboard with a vm and setting the guest display
|
||||
resolution when the graphical console window resizes.
|
||||
@end deffn
|
||||
|
||||
@subsubsection Dictionary Services
|
||||
The @code{(gnu services dict)} module provides the following service:
|
||||
|
||||
|
@ -383,6 +383,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/services/networking.scm \
|
||||
%D%/services/shepherd.scm \
|
||||
%D%/services/herd.scm \
|
||||
%D%/services/spice.scm \
|
||||
%D%/services/ssh.scm \
|
||||
%D%/services/web.scm \
|
||||
%D%/services/xorg.scm \
|
||||
|
75
gnu/services/spice.scm
Normal file
75
gnu/services/spice.scm
Normal file
@ -0,0 +1,75 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu services spice)
|
||||
#:use-module (gnu packages spice)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:export (spice-vdagent-configuration
|
||||
spice-vdagent-configuration?
|
||||
spice-vdagent-service-type
|
||||
spice-vdagent-service))
|
||||
|
||||
(define-record-type* <spice-vdagent-configuration>
|
||||
spice-vdagent-configuration make-spice-vdagent-configuration
|
||||
spice-vdagent-configuration?
|
||||
(spice-vdagent spice-vdagent-configuration-spice-vdagent
|
||||
(default spice-vdagent)))
|
||||
|
||||
(define (spice-vdagent-activation config)
|
||||
"Return the activation gexp for CONFIG."
|
||||
#~(mkdir-p "/var/run/spice-vdagentd"))
|
||||
|
||||
(define (spice-vdagent-shepherd-service config)
|
||||
"Return a <shepherd-service> for spice-vdagentd with CONFIG."
|
||||
(define spice-vdagent (spice-vdagent-configuration-spice-vdagent config))
|
||||
|
||||
(define spice-vdagentd-command
|
||||
(list
|
||||
#~(string-append #$spice-vdagent "/sbin/spice-vdagentd")
|
||||
"-x"))
|
||||
|
||||
(list
|
||||
(shepherd-service
|
||||
(documentation "Spice vdagentd service")
|
||||
(requirement '(udev))
|
||||
(provision '(spice-vdagentd))
|
||||
(start #~(make-forkexec-constructor #$@spice-vdagentd-command))
|
||||
(stop #~(make-kill-destructor)))))
|
||||
|
||||
(define spice-vdagent-profile
|
||||
(compose list spice-vdagent-configuration-spice-vdagent))
|
||||
|
||||
(define spice-vdagent-service-type
|
||||
(service-type (name 'spice-vdagent)
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
spice-vdagent-shepherd-service)
|
||||
(service-extension activation-service-type
|
||||
spice-vdagent-activation)
|
||||
(service-extension profile-service-type
|
||||
spice-vdagent-profile)))))
|
||||
|
||||
(define* (spice-vdagent-service
|
||||
#:optional (config (spice-vdagent-configuration)))
|
||||
"Start the @command{vdagentd} and @command{vdagent} deamons
|
||||
from @var{spice-vdagent} to enable guest window resizing and
|
||||
clipboard sharing."
|
||||
(service spice-vdagent-service-type config))
|
Loading…
Reference in New Issue
Block a user