;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Clément Lassieur ;;; ;;; 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 . (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 make-spice-vdagent-configuration spice-vdagent-configuration? (spice-vdagent spice-vdagent-configuration-spice-vdagent (default spice-vdagent))) (define (spice-vdagent-shepherd-service config) "Return a for spice-vdagentd with CONFIG." (define spice-vdagent (spice-vdagent-configuration-spice-vdagent config)) (define spice-vdagentd-command (list (file-append spice-vdagent "/sbin/spice-vdagentd") "-x")) (list (shepherd-service (documentation "Spice vdagentd service") (requirement '(dbus-system)) (provision '(spice-vdagentd)) (start #~(lambda args ;; spice-vdagentd supports being activated upon the client ;; connecting to its socket; when not using such feature, the ;; socket should not exist before vdagentd creates it itself. (mkdir-p "/run/spice-vdagentd") (false-if-exception (delete-file "/run/spice-vdagentd/spice-vdagent-sock")) (fork+exec-command '#$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) (default-value (spice-vdagent-configuration)) (extensions (list (service-extension shepherd-root-service-type spice-vdagent-shepherd-service) (service-extension profile-service-type spice-vdagent-profile))) (description "Start the @command{vdagentd} and @command{vdagent} daemons from the @code{spice-vdagent} package to enable window resizing and clipboard sharing for @acronym{VM, virtual machine} guests."))) (define* (spice-vdagent-service #:optional (config (spice-vdagent-configuration))) "Start the @command{vdagentd} and @command{vdagent} daemons from @var{spice-vdagent} to enable guest window resizing and clipboard sharing." (service spice-vdagent-service-type config)) ation.scm (configuration-missing-default-value): Renamed from configuration-no-default-value. (define-maybe-helper): Use *unspecified* instead of 'disabled, and make the default value optional. * gnu/home/services/desktop.scm (home-redshift-configuration): Change (maybe-xyz 'disabled) to maybe-xyz. * gnu/services/authentication.scm (nslcd-configuration): Likewise. * gnu/services/cgit.scm (repository-cgit-configuration): Likewise. * gnu/services/file-sharing.scm (serialize-maybe-string) (serialize-maybe-file-object): Use 'unspecified?' instead of (eq? val 'disabled). * gnu/services/messaging.scm (raw-content?): Likewise. (ssl-configuration): Change (maybe-xyz 'disabled) to maybe-xyz. (prosody-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/messaging.scm (define-all-configurations): Use *unspecified* instead of 'disabled'. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-account): Likewise. (jami-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise. * tests/services/configuration.scm ("maybe type, no default") ("maybe type, with default"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Attila Lendvai 2022-06-04services: bitlbee: Run under a UTF-8 locale....* gnu/services/messaging.scm (bitlbee-shepherd-service): In the 'make-inetd-constructor' case, set GUIX_LOCPATH and LC_ALL. In the 'least-authority-wrapper' call, preserve GUIX_LOCPATH and LC_ALL, and map /run/current-system/locale. Ludovic Courtès