summary refs log tree commit diff
path: root/gnu/services
AgeCommit message (Collapse)Author
2023-02-05services: mpd: Fix serialization procedure for list-of-string.Bruno Victal
This is a followup to commit 5c5f0fc1135ff15f9c4adfc5f27eadd9a592b5d1 * gnu/services/audio.scm (mpd-serialize-list-of-string): Fix serialization procedure. Signed-off-by: Leo Famulari <leo@famulari.name>
2023-02-05services: Add mympd-service-type.Bruno Victal
* gnu/services/audio.scm (mympd-service-type): New variable. * gnu/tests/audio.scm (%test-mympd): New variable. * doc/guix.texi: Document it. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05services: mpd: Do not hardcode environment variables.Bruno Victal
Services should not expect for XDG_RUNTIME_DIR to be set. Inferring from the past comment, this seemed to resolve an issue when the service was launched with an _interactive_ user-account, which tends to have this variable set by the login-manager. This is not the case for system accounts and setting this variable results in PulseAudio (launched by the same system user) failing to start since it attempts to use a nonexistent directory. Ideally, this service should have a home-service counterpart but the old behavior can be emulated by setting the environment-variables field to: (environment-variables (list (string-append "XDG_RUNTIME_DIR=/run/user/" (number->string (passwd:uid (getpwnam "myuser")))))) * gnu/services/audio.scm (mpd-configuration)[environment-variables]: New field. (mpd-shepherd-service)[start]: Use new field. * doc/guix.texi (Audio Services)[Music Player Daemon]: Document it. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05services: mpd: Refactor MPD service.Bruno Victal
Refactor mpd-service-type to support additional mpd.conf directives and move activation-service-extension into service constructor. * gnu/services/audio.scm (mpd-plugin, mpd-partition): New records. (mpd-serialize-boolean): Alias to and integrate logic into... (mpd-serialize-field): ... this. (mpd-serialize-list-of-string): New variable. (mpd-plugin?, mpd-partition?, list-of-string?, list-of-symbol?) (list-of-mpd-plugin?, list-of-mpd-partition?) (list-of-mpd-plugin-or-output?, port?): New variables. (mpd-file-name, mpd-service-activation): Remove variables. (mpd-configuration) [package, group, shepherd-requirement, log-file, log-level, music-directory] [playlist-directory, endpoints, database, partitions, neighbors, inputs] [archive-plugins, input-cache-size, decoders, resampler, filters] [playlist-plugins, extra-options]: New fields. [music-dir, playlist-dir, address]: Deprecate shorthand fields. [db-file, state-file, sticker-file, port, outputs]: Change admissible type. (mpd-shepherd-service) [actions]: New shepherd actions: 'reopen' and 'configuration'. [requirement]: Splice with 'shepherd-requirement' field. [start]: Use 'package' field. Remove #:log-file parameter. Move activation-service extension into constructor. (mpd-accounts): Honor user and group names from configuration. (mpd-log-rotation): New procedure. (mpd-service-type)[extensions]: Add rottlog-service-type extension. Remove activation-service-type extension. (mpd-output-name, mpd-output-type, mpd-output-enabled?, mpd-output-format) (mpd-output-tags?, mpd-output-always-on?, mpd-output-mixer-type) (mpd-output-replay-gain-handler, mpd-output-extra-options) (mpd-plugin-plugin, mpd-plugin-name, mpd-plugin-enabled?) (mpd-plugin-extra-options) (mpd-partition-name, mpd-partition-extra-options) (mpd-configuration-package, mpd-configuration-user) (mpd-configuration-group, mpd-configuration-shepherd-requirement) (mpd-configuration-log-file, mpd-configuration-log-level) (mpd-configuration-music-directory, mpd-configuration-music-dir) (mpd-configuration-playlist-directory, mpd-configuration-playlist-dir) (mpd-configuration-db-file, mpd-configuration-state-file) (mpd-configuration-sticker-file, mpd-configuration-default-port) (mpd-configuration-endpoints, mpd-configuration-address) (mpd-configuration-database, mpd-configuration-partitions) (mpd-configuration-neighbors, mpd-configuration-inputs) (mpd-configuration-archive-plugins, mpd-configuration-input-cache-size) (mpd-configuration-decoders, mpd-configuration-resampler) (mpd-configuration-filters, mpd-configuration-outputs) (mpd-configuration-playlist-plugins, mpd-configuration-extra-options): Export accessors. * doc/guix.texi (Audio Services)[Music Player Daemon]: Update documentation. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-05services: mpd: Rewrite using 'define-configuration'.Bruno Victal
* gnu/services/audio.scm (mpd-configuration, mpd-output): Rewrite using define-configuration. (uglify-field-name, mpd-serialize-field, mpd-serialize-alist) (mpd-serialize-number, mpd-serialize-boolean, mpd-serialize-list-of-mpd-output) (mpd-serialize-configuration): New procedure. (list-of-mpd-output?): New predicate. (mpd-config->file, mpd-output->string): Remove procedure. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-02-03services: nar-herder: Add cached compression support.Christopher Baines
* gnu/services/guix.scm (<nar-herder-cached-compression-configuration>): New record type. (nar-herder-configuration-cached-compressions, nar-herder-configuration-cached-compression-min-uses, nar-herder-configuration-cached-compression-workers, nar-herder-configuration-cached-compression-nar-source, nar-herder-cached-compression-configuration, nar-herder-cached-compression-configuration?, nar-herder-cached-compression-configuration-type, nar-herder-cached-compression-configuration-level, nar-herder-cached-compression-configuration-directory, nar-herder-cached-compression-configuration-directory-max-size): New procedures. * doc/guix.texi (Guix Services): Document this.
2023-01-22services: hpcguix-web: Provide default values.Ludovic Courtès
* gnu/services/web.scm (<hpcguix-web-configuration>)[specs]: Default to #f. (hpcguix-web-shepherd-service): Do not pass '--config' when SPECS is #f. (hpcguix-web-service-type)[default-value]: New field. * doc/guix.texi (Web Services): Adjust accordingly.
2023-01-16services: connman: Add iwd backend support.Declan Tsien
* gnu/services/networking.scm (connman-configuration)[iwd?]: New field. (connman-shepherd-service): Add iwd? logic, remove wpa-supplicant requirement. * doc/guix.texi: Add information about connman-configuration iwd? option. Co-authored-by: Andrew Tropin <andrew@trop.in> Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-01-16gnu: services: Export polkit-configuration.Zhu Zihao
Export for user customization. * gnu/services/dbus.scm (polkit-configuration): Export. (polkit-configuration?): Export. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-01-15services: greetd: Add 'source-profile?' configuration field.Jelle Licht
* gnu/services/base.scm (<greetd-terminal-configuration>)[source-profile?]: New field. (make-greetd-terminal-configuration-file): Serialize new field to configuration file. * doc/guix.texi (Base Services): Document it.
2023-01-14gnu: services: Add joycond-service.David Thompson
* gnu/services/games.scm (joycond-configuration): New configuration type. (joycond-shepherd-service): New procedure. (joycond-service-type): New variable. * doc/guix.texi (Game Services): Document it.
2023-01-10gnu: services: Fix fail2ban configuration serialization.muradm
This fixes a regression from 543d971ed2a1d9eb934af1f51930741d7cc4e7ef whereby match-lambda due to configuration field reordering. * gnu/services/security.scm: [serialize-fail2ban-ignore-cache-configuration]: Switch to match-record. [serialize-fail2ban-jail-filter-configuration]: Switch to match-record. [serialize-fail2ban-jail-action-configuration]: Switch to match-record. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-01-10services: unattended-upgrade: Add 'operating-system-expression' field.Giacomo Leidi
* gnu/services/admin.scm (<unattended-upgrade-configuration>) [operating-system-expression]: New field. (unattended-upgrade-mcron-jobs): Honor it. * doc/guix.texi (Unattended Upgrades): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-01-10services: git-daemon: Deprecate 'git-daemon-service' procedure.Bruno Victal
* gnu/services/version-control.scm (git-daemon-service): Define with 'define-deprecated' * doc/guix.texi (Version Control Services): Replace with 'git-daemon-service-type' Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-01-09services: base: Add environment support to guix-configuration.Mathieu Othacehe
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field. (guix-shepherd-service): Honor it. * doc/guix.texi (Base Services): Document it.
2023-01-07Revert "services: base: Add extra-env support to guix-configuration."Mathieu Othacehe
This reverts commit 78a9b4f996ba18b4460ba380b87e9538007c27e0. It was pushed by error, while not reviewed yet.
2023-01-07services: base: Add extra-env support to guix-configuration.Mathieu Othacehe
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field. (guix-shepherd-service): Honor it. * doc/guix.texi (Base Services): Document it.
2023-01-03services: certbot: Fix broken link.jgart
* gnu/services/certbot.scm (certbot-renewal-jobs): Fix broken link. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-12-30services: enlightenment: Load ddcutil udev rules.Efraim Flashner
* gnu/services/desktop.scm (enlightenment-desktop-service-type): Extend the enlightenment-desktop-service-type with the udev rules from the ddcutil input in the udev-service-type.
2022-12-28services: pulseaudio: Fix /etc/pulse/default.pa not being used.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/60383>. * gnu/services/sound.scm (pulseaudio-etc): Produce daemon.conf unconditionally, with the correct default-script-file location. Produce client.conf unconditionally. Reported-by: Bruno Victal <mirai@makinata.eu>
2022-12-26gnu: services: Fix bluetooth-service docstring.Ivan Vilata i Balaguer
* gnu/services/desktop.scm (bluetooth-service): Sync docstring with info, remove mention to group not really needed to access D-Bus service. * doc/guix.texi (Desktop Services): Also remove mention to group here. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-25services: wireguard: Allow specifying pre-shared keys.Timo Wilken
* gnu/services/vpn.scm (<wireguard-peer>)[preshared-key]: New field. * doc/guix.texi (VPN Services): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-12-25services: ganeti: Label mcron jobs.Marius Bakke
* gnu/services/ganeti.scm (ganeti-watcher-jobs): Label job as "ganeti-watcher". (ganeti-cleaner-jobs): Labels jobs as "ganeti master cleaner" and "ganeti node cleaner".
2022-12-20services: opensmtpd: Add 'shepherd-requirement' field.Bruno Victal
* gnu/services/mail.scm (<opensmtpd-configuration>)[shepherd-requirement]: New field. (opensmtpd-shepherd-service): Honor it. * doc/guix.texi (Mail Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-20services: opensmtpd: Use 'match-record' instead of 'match'.Bruno Victal
* gnu/services/mail.scm (opensmtpd-shepherd-service) (opensmtpd-activation) (opensmtpd-set-gids): Use 'match-record' instead of 'match'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-20services:·kmscon:·Display·CJK·characters.Florian Pelz
Follow-up·to d7d049fdcd80e27a42b31766890f589f482a4f23. * gnu/services/base.scm·(kmscon-service-type):·Use·GNU·Unifont, which bundles CJK glyphs from WenQuanYi and elsewhere.
2022-12-19Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-18services: kmsconf: Load GNU Freefont.Ludovic Courtès
This provides glyphs for additional fonts such as Amharic that were otherwise missing. Fixes <https://issues.guix.gnu.org/60164>. Reported by Wolf <wolf@wolfsden.cz>. * gnu/services/base.scm (kmscon-service-type): In 'start' method, pass #:environment-variables to set 'XDG_DATA_DIRS'.
2022-12-17services: ganeti: Add support for cluster hooks.Marius Bakke
* gnu/services/ganeti.scm (<ganeti-configuration>): Add HOOKS. (hooks->directory): Rename to ... (debootstrap-hooks->directory): ... this, for clarity. (debootstrap-configuration-compiler): Adjust accordingly. (ganeti-directory): Add HOOKS when set. (ganeti-etc-service): Pass HOOKS. * doc/guix.texi (Virtualization Services): Mention it.
2022-12-15services: nix: Fix nix-shepherd-service.Christopher Baines
* gnu/services/nix.scm (nix-shepherd-service): Un-gexp build-directory.
2022-12-14gnu: slapd-configuration: Update default for run-dir.Ricardo Wurmus
* gnu/services/ldap.scm (slapd-configuration): Update default value for run-dir to match defaults of 389-ds-base package. * doc/guix.texi: Update documentation.
2022-12-14gnu: Add directory-server-service-type.Ricardo Wurmus
* gnu/services/ldap.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (LDAP Services): Document it.
2022-12-14services: configuration: Remove orphan reference to example.Bruno Victal
'generic-serialize-alist' refers to (gnu home services version-control) for usage examples but there's no such module. * gnu/services/configuration.scm (generic-serialize-alist): Adjust docstring. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-13services: nix: Add more configuration fields.Petr Hodina
* 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>
2022-12-12services: guix-build-coordinator: Fix service startup.Christopher Baines
Previously the service would keep starting more and more processes. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Fix how make-forkexec-constructor is called.
2022-12-12services: zabbix-server: Increase Shepherd grace period.Marius Bakke
* gnu/services/monitoring.scm (zabbix-server-shepherd-service)[stop]: Add #:grace-period.
2022-12-12Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-09services: nscd: Use nscd from 'glibc-final' on native builds.Ludovic Courtès
This reduces the closure size of systems by removing one glibc copy--namely (@ (gnu packages base) glibc) in addition to (@ (gnu packages commencement) glibc-final). * gnu/services/base.scm (<nscd-configuration>)[glibc]: Change default value to use 'let-system' and 'canonical-package' as appropriate.
2022-12-08services: base: Use 'match-record' instead of 'match'.Ludovic Courtès
* gnu/services/base.scm (agetty-shepherd-service) (mingetty-shepherd-service) (nscd.conf-file) (udev-shepherd-service) (udev-etc) (gpm-shepherd-service) (network-set-up/linux) (network-tear-down/linux) (static-networking-shepherd-service) (greetd-agreety-tty-session-command) (greetd-agreety-tty-xdg-session-command): Use 'match-record' instead of 'match'. (guix-accounts): Use <guix-configuration> accessors. (udev-service-type): Use <udev-configuration> accessors.
2022-12-08records: 'match-record' checks fields at macro-expansion time.Ludovic Courtès
This allows 'match-record' to be more efficient (field offsets are computed at compilation time) and to report unknown fields at macro-expansion time. * guix/records.scm (map-fields): New macro. (define-record-type*)[rtd-identifier]: New procedure. Define TYPE as a macro and use a separate identifier for the RTD. (lookup-field, match-record-inner): New macros. (match-record): Rewrite in terms of 'match-error-inner'. * tests/records.scm ("match-record, simple") ("match-record, unknown field"): New tests. * gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file' local variable to 'main-log-file'. * gnu/services/getmail.scm (serialize-getmail-configuration-file): Move after <getmail-configuration-file> definition.
2022-12-06services: fail2ban: Start server in the foreground.Ludovic Courtès
Previously, we were passing '-b', thereby starting the server in the background. Consequently the 'start' method could complete before the server was ready to accept connections on its socket, leading to non-deterministic test failures. Reported by Mathieu Othacehe <othacehe@gnu.org>. * gnu/services/security.scm (fail2ban-shepherd-service): Change FAIL2BAN-ACTION to invoke 'fail2ban-client'. Change 'start' method to use 'make-forkexec-constructor'; start the server in the foreground with '-f' and pass '-x' to force execution of the server, as done upstream in 'fail2ban.service.in'.
2022-12-06services: fail2ban: Remove unnecessary Shepherd 'modules' field.Ludovic Courtès
* gnu/services/security.scm (fail2ban-shepherd-service): Remove unnecessary 'modules' field.
2022-12-06services: fail2ban: 'stop' returns #f when the dameon is stopped.Ludovic Courtès
* gnu/services/security.scm (fail2ban-shepherd-service): Change FAIL2BAN-ACTION to return an 'invoke' gexp. Adjust the shepherd 'start' and 'stop' fields accordingly. Have 'stop' return #f on success.
2022-12-04services: configuration: Rename location accessor to "source-location".Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/59423>. * gnu/services/configuration.scm (define-configuration-helper): Rename the accessor of the %location field from "NAME-location" to "NAME-source-location". Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reported-by: Pierre Langlois <pierre.langlois@gmx.com>
2022-12-09services: wireguard: Use the parameterized wireguard package.EuAndreh
* gnu/services/vpn.scm (wireguard-activation): Use the "wg" binary from the package given to <wireguard-configuration>. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2022-12-08services: configuration: Rewrite 'alist?' procedure.Bruno Victal
* gnu/services/configuration.scm (alist?): Rewrite. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-12-07services: guix-publish: Keep fewer rotated logs.Ludovic Courtès
* gnu/services/base.scm (%guix-publish-log-rotations): Add 'options' field.
2022-12-07service: cuirass: Rotate remote server logs.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-log-rotations): Add the remote server log when it is used.
2022-12-07services: cuirass-remote-worker: Rotate logs.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-remote-worker-log-rotations): New procedure. (cuirass-remote-worker-service-type): Use it.
2022-12-07services: zabbix-agent: Adjust command-line when using zabbix_agent2.Marius Bakke
* gnu/services/monitoring.scm (zabbix-agent-arguments): New procedure. (zabbix-agent-shepherd-service): Use that to determine command line arguments.