summary refs log tree commit diff
path: root/gnu/services
AgeCommit message (Collapse)Author
2023-04-07services: desktop: Remove 'xfce-desktop-service' procedure.Bruno Victal
* gnu/services/desktop.scm (xfce-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: desktop: Remove 'mate-desktop-service' procedure.Bruno Victal
* gnu/services/desktop.scm (mate-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: desktop: Remove 'gnome-desktop-service' procedure.Bruno Victal
* gnu/services/desktop.scm (gnome-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: guix-publish: Remove 'compression-level' field.Bruno Victal
* gnu/services/base.scm (<guix-publish-configuration>)[compression-level]: Remove field. (guix-publish-configuration-compression-level): Remove procedure. (default-compression): Remove compression-level helper code. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: base: Remove 'console-font-service' procedure.Bruno Victal
* gnu/services/base.scm (console-font-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: base: Remove 'console-keymap-service-type' variable.Bruno Victal
* gnu/services/base.scm (console-keymap-service-type): Remove variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: sddm: Remove 'sddm-service' procedure.Bruno Victal
* gnu/services/sddm.scm (sddm-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: ntp-service-type: Remove deprecated server as strings support.Bruno Victal
* gnu/services/networking.scm (<ntp-configuration>)[servers]: Rename accessor to ntp-configuration-servers. (ntp-configuration-servers): Remove helper procedure. (ntp-shepherd-service): Remove helper procedure usage. * tests/networking.scm: Remove obsolete test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-02services: xvnc: Do not create a regular HOME directory for xvnc user.Maxim Cournoyer
* gnu/services/vnc.scm (%xvnc-accounts) [home-directory]: Define as /var/empty. [shell]: Set to nologin, for good measures.
2023-04-02services: mympd: Use records for user and group fields.Bruno Victal
* gnu/services/audio.scm (%mympd-user, %mympd-group) (mympd-user-sanitizer, mympd-group-sanitizer): New variables. (mympd-configuration)[user]: Use user-account as value type. Sanitize via mympd-user-sanitizer. [group]: Use user-group as value type. Sanitize via mympd-group-sanitizer. (mympd-serialize-configuration): Adjust accordingly. (mympd-accounts): Likewise. * doc/guix.texi (Audio Services)[myMPD]: Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-04-02services: mpd: Use proper records for user and group fields.Bruno Victal
Deprecate using strings for these fields and prefer user-account (resp. user-group) instead to avoid duplication within account-service-type. Fixes #61570 <https://issues.guix.gnu.org/61570>. * gnu/services/audio.scm (%mpd-user, %mpd-group) (mpd-serialize-user-account, mpd-serialize-user-group) (mpd-user-sanitizer, mpd-group-sanitizer): New variables. (mpd-configuration)[user]: Use user-account as value type. Sanitize via mpd-user-sanitizer. [group]: Use user-group as value type. Sanitize via mpd-group-sanitizer. (mpd-shepherd-service): Adjust accordingly. (mpd-accounts): Likewise. * doc/guix.texi (Audio Services)[Music Player Daemon]: Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-04-02services: mpd: Fix unintentional API breakage for mixer-type field.Bruno Victal
* gnu/services/audio.scm (mpd-output)[mixer-type]: Use sanitizer to accept both strings and symbols as values. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-04-02services: replace bare serializers with (serializer ...)Bruno Victal
* gnu/home/services/shells.scm (home-zsh-configuration)[environment-variables]: Use (serializer ...). (home-bash-configuration)[aliases, environment-variables]: Likewise. (home-fish-configuration)[abbreviations, aliases] [environment-variables]: Likewise. * gnu/services/audio.scm (mpd-configuration)[music-dir, playlist-dir] [endpoints, address, inputs, archive-plugins, input-cache-size] [decoders, filters, playlist-plugins]: Likewise. * gnu/services/linux.scm (fstrim-configuration)[extra-arguments]: Likewise. * gnu/services/security.scm (fail2ban-jail-configuration)[backend] [log-encoding, extra-content]: Likewise. * tests/services/configuration.scm: Update tests. ("serialize-configuration [deprecated]"): New test. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-04-02services: configuration: Add user-defined sanitizer support.Bruno Victal
This changes the 'custom-serializer' field into a generic 'extra-args' field that can be extended to support new literals. Within extra-args, the literals 'sanitizer' and 'serializer' allow for user-defined sanitization and serialization procedures respectively. The 'empty-serializer' was also added as a literal to be used as before. To prevent confusion between the new “explicit” style of specifying a sanitizer, and the old “implicit” style, the latter has been deprecated, and a warning is issued if it is encountered. * gnu/services/configuration.scm (define-configuration-helper): Rename 'custom-serializer' to 'extra-args'. Add support for literals 'sanitizer', 'serializer' and 'empty-serializer'. Rename procedure 'field-sanitizer' to 'default-field-sanitizer' to avoid syntax clash. Only define default field sanitizers if user-defined ones are absent. (normalize-extra-args): New variable. (<configuration-field>)[sanitizer]: New field. * doc/guix.texi (Complex Configurations): Document the newly added literals. * tests/services/configuration.scm: Add tests for the new literals. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-03-30services: pam-limits-service-type: Deprecate file-like object support in ↵Bruno Victal
favour for lists as service value. * doc/guix.texi (Base Services): Document it. * gnu/local.mk: Register test. * gnu/services/base.scm (pam-limits-service-type): Accept both lists and file-like objects. Deprecate file-like object support. * gnu/tests/pam.scm: New file. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30services: base: Deprecate 'pam-limits-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace pam-limits-service with pam-limits-service-type. * gnu/packages/benchmark.scm (python-locust)[description]: Update index anchor to manual. * gnu/services/base.scm (pam-limits-service-type): Set default value. (pam-limits-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-29services: configuration: Fix garbage output in configuration->documentation.Bruno Victal
Fixes <https://issues.guix.gnu.org/57958>. * gnu/services/configuration.scm (define-configuration-helper): Remove call to display within default-value-thunk. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-28services: fstrim: Fix schedule ungexp.Bruno Victal
Previously, only the first level of the list would be quoted, resulting in a schedule of the sort: '(next-second (range 0 60 30)) being incorrectly ungexp'd into: (list next-second (0 30)) * gnu/services/linux.scm (fstrim-mcron-job): Fix schedule ungexp. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-27services: ntpd: Add 'configuration' action.Ludovic Courtès
* gnu/services/networking.scm (ntp-shepherd-service): Add 'actions' field.
2023-03-27services: network-manager: Add 'configuration' action.Ludovic Courtès
* gnu/services/networking.scm (network-manager-shepherd-service): Add 'actions' field.
2023-03-27services: syslog: Add 'configuration' action.Ludovic Courtès
* gnu/services/base.scm (syslog-service-type): Add 'actions' field.
2023-03-26services: herd: Remove workaround for Shepherd < 0.5.0.Ludovic Courtès
* gnu/services/herd.scm (load-services/safe): Remove workaround for Shepherd < 0.5.0, released in 2018.
2023-03-25services: xorg-wrapper: Support xorg server input rewriting.r0man
This patch adds support for proper xorg server input rewriting. It uses the lookup-package-direct-input procedure to configure the X server paths dynamically, instead of always using the hard coded package. Something like this is now possible: (define other-mesa (package-input-rewriting/spec `(("mesa" . ,(const other-mesa))))) (xorg-configuration (xorg-configuration (server (other-mesa xorg-server)))) Without this patch the X server would still be configured with mesa (causing version issues), and not with other-mesa (as per the input rewrite). * gnu/services/xorg.scm (xorg-configuration-server-package-path) (xorg-configuration-dri-driver-path, xorg-configuration-xkb-bin-dir) (xorg-configuration-xkb-dir): New procedures. (xorg-wrapper): Use them for dri and xkb paths. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-03-24services: mpd: Set PulseAudio-related variables.Bruno Victal
These variables are necessary for PulseAudio to work properly out-of-the-box for 'non-interactive' users. * doc/guix.texi (Audio Services): Update environment-variables field description for mpd-configuration data type. * gnu/services/audio.scm (mpd-configuration)[environment-variables]: Set PULSE_CLIENTCONFIG and PULSE_CONFIG environment variables to the system-wide PulseAudio configuration. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-24services: audio: Remove redundant list-of-string? predicate.Bruno Victal
Use list-of-strings? predicate defined in (gnu services configuration). * gnu/services/audio.scm (list-of-string?): Remove predicate. (mpd-serialize-list-of-string): Rename procedure to ... (mpd-serialize-list-of-strings): ... this. (mpd-configuration)[environment-variables]: Switch to list-of-strings. [endpoints]: Switch to maybe-list-of-strings. (mympd-ip-acl)[allow, deny]: Switch to list-of-strings. (mympd-serialize-configuration): Rename serialize-list-of-string to serialize-list-of-strings. * doc/guix.texi (Audio Services): Update it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-24services: mympd: Require 'syslog service when configured to log to syslog.Bruno Victal
* gnu/services/audio.scm (mympd-shepherd-service): Depend on 'syslog when configured to log to syslog. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-23services: network-manager: Set LINUX_MODULE_DIRECTORY environment variable.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/62409>. * gnu/services/networking.scm (network-manager-shepherd-service): Set the LINUX_MODULE_DIRECTORY environment variable.
2023-03-22services: Add fstrim-service-type.Bruno Victal
* gnu/services/linux.scm (fstrim-service-type): New variable. (fstrim-mcron-job, serialize-fstrim-configuration) (fstrim-serialize-list-of-strings, fstrim-serialize-boolean): New procedure. (mcron-time?): New predicate. (fstrim-configuration): New record. * doc/guix.texi (Linux Services): Document new fstrim-service-type. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-21services: Add x11-socket-directory-service-type.Bruno Victal
The x11-socket-directory-service misuses activation-service-type to create directories. This kind of usage is incorrect since activation-service-type does not depend on file-systems, hence incompatible with user defined /tmp mount. This commit turns x11-socket-directory-service into a shepherd one-shot service by defining a new x11-socket-directory-service-type. * gnu/services/desktop.scm (x11-socket-directory-service-type): New variable. (x11-socket-directory-service): Deprecate procedure. (desktop-services-for-system): Use new service-type. * gnu/tests/lightdm.scm: Ditto. Reviewed-by: Josselin Poiret <dev@jpoiret.xyz> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-21services: mcron: Add log-file and date-format fields.Bruno Victal
* doc/guix.texi (Scheduled Job Execution): Document it. * gnu/services/mcron.scm (mcron-configuration)[log-file, date-format]: New field. (mcron-shepherd-services): Add log-file and date-format support. Use file-append instead of string-append. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-21services: mcron: Use match-record.Bruno Victal
* gnu/services/mcron.scm (mcron-shepherd-services): Use match-record. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-21services: mcron: Restyle mcron-configuration.Bruno Victal
* doc/guix.texi (Scheduled Job Execution): Sync doc with source. * gnu/services/mcron.scm (mcron-configuration): Restyle. [log-format]: Fix incorrectly formatted text. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-21services: static-networking: 'eval-when' for code used at expansion-time.Ludovic Courtès
Reported by bjc on #guix. * gnu/services/base.scm (valid-name, cidr->netmask): Wrap in 'eval-when' since they are used by "compile-time procedures" (macros).
2023-03-21services: configuration: simplify alist? procedure.Bruno Victal
* gnu/services/configuration.scm (alist?): simplify procedure. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-03-20services: network-manager: Add missing shadowing of 'iwd?' field.Andrew Tropin
* gnu/services/networking.scm (network-manager-shepherd-service): Add missing shadowing of 'iwd?' field by using let* instead of let.
2023-03-17services: dict: Deprecate 'dicod-service' procedure.Bruno Victal
* doc/guix.texi (Miscellaneous Services): Remove 'dicod-service' mention. * gnu/services/dict.scm (dicod-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-17services: console-font: 'stop' method always returns #f.Ludovic Courtès
The 'stop' method of Shepherd services is supposed to return #f on success. * gnu/services/base.scm (console-font-shepherd-services): 'stop' method returns #f.
2023-03-13services: dns: Fix cpe-id default value.Andrew Tropin
* gnu/service/dns.scm: (<dnsmasq-configuration>)[cpe-id]: Change cpe-id default value to #f instead of #t.
2023-03-13services: dns: Extend dnsmasq-configuration.Sergey Trofimov
* gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add. (<dnsmasq-configuration>)[tftp-secure?]: Fix typo in parameter name. * doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file]. Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-03-10services: xorg: Deprecate 'screen-locker-service' procedure.Bruno Victal
* doc/guix.texi (X Window): Replace 'screen-locker-service' with 'screen-locker-service-type'. Document <screen-locker-configuration>. * gnu/services/desktop.scm (desktop-services-for-system): Use screen-locker-service-type. * gnu/services/xorg.scm: Export accessors for <screen-locker-configuration>. (<screen-locker>): Rename to ... (<screen-locker-configuration>): ... this. (<screen-locker-configuration>)[empty?]: Rename to ... (<screen-locker-configuration>)[allow-empty-password?]: ... this. (screen-locker-pam-services): Update record name. (screen-locker-setuid-programs): Update accessor name. (screen-locker-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: connman: Set service canonical-name to connman.Bruno Victal
* gnu/services/networking.scm (connman-shepherd-service): Make 'networking a virtual service and set 'connman as its canonical name. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: network-manager: Set service canonical-name to NetworkManager.Bruno Victal
According to the semantics in [1], 'networking should be a "virtual service" and NetworkManager its canonical-name. This does not influence existing services and they should continue to use the 'networking symbol. One visible change is that 'herd status' doesn't show 'networking' anymore, instead listing 'NetworkManager' in its place but both symbols are can be used to start and stop the same service. Note: Though the symbol NetworkManager doesn't really conform with the overall kebab-case used throughout Guix, this is intentional as we really want to make it clear that that the symbol NetworkManager really refers to the software called NetworkManager, since it's a canonical name here. (rather than risk misleading the user to interpret the symbol network-manager as a symbol for some unspecific network management software) [1]: https://www.gnu.org/software/shepherd/manual/html_node/Jump-Start.html * gnu/services/networking.scm (network-manager-shepherd-service): Make 'networking a virtual service and set 'NetworkManager as its canonical name. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: network-manager: Await for NetworkManager to finish starting up.Bruno Victal
This is similar to its NetworkManager-wait-online.service systemd counterpart, with the main difference being that we handle it all in 'networking symbol, rather than introduce a new 'networking-online symbol. (see discussion #47253) As a result of this change, with opensmtpd-service-type as an example, manual 'herd restart smtpd' after system bootups are no longer required when opensmtpd is configured with a smtpd.conf containing non-loopback interfaces. (this issue is described in more detail at #60300) Fixes <https://issues.guix.gnu.org/60300>. * gnu/services/networking.scm (network-manager-shepherd-service): Await for NetworkManager to finish starting up. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: connman: Deprecate 'iwd?' field.Bruno Victal
* gnu/services/networking.scm (<connman-configuration>) [iwd?]: Use helper to warn deprecated field. (connman-shepherd-service): Make iwd? a local variable independent from the deprecated field. * doc/guix.texi (Networking Setup): Remove mention of iwd? field. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: connman: Add 'shepherd-requirement' field.Bruno Victal
* gnu/services/networking.scm (<connman-configuration>) [shepherd-requirement]: New field. (connman-shepherd-service): Honor it. (connman-configuration-shepherd-requirement): Export accessor. * doc/guix.texi (Networking Setup): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: connman: Use match-record and export accessors.Bruno Victal
* gnu/services/networking.scm (connman-shepherd-service): Use match-record. (connman-configuration-connman, connman-configuration-disable-vpn?) (connman-configuration-iwd?): Export accessors. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: network-manager: Deprecate 'iwd?' field.Bruno Victal
* gnu/services/networking.scm (warn-iwd?-field-deprecation): New procedure, helper for deprecated field. (<network-manager-configuration>)[iwd?]: Use helper to warn deprecated field. (network-manager-shepherd-service): Make iwd? a local variable independent from the deprecated field. * doc/guix.texi (Networking Setup): Remove mention of iwd? field. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-10services: network-manager: Add 'shepherd-requirement' field.Bruno Victal
Note: This also makes wpa-supplicant an optional requirement. * gnu/services/networking.scm (<network-manager-configuration>) [shepherd-requirement]: New field. (network-manager-shepherd-service): Honor it. (network-manager-configuration-shepherd-requirement): Export accessor. * doc/guix.texi (Networking Setup): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-07services: ladspa: Export accessors.Bruno Victal
* gnu/service/sound.scm: Export ladspa-configuration? and ladspa-configuration-plugins. (<ladspa-configuration>)[plugins]: Rename accessor to ladspa-configuration-plugins. (ladspa-environment): Adjust to use renamed plugin accessor. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-07services: alsa: Export accessors.Bruno Victal
* gnu/services/sound.scm: Export alsa-configuration?, alsa-configuration-alsa-plugins, alsa-configuration-pulseaudio? and alsa-configuration-extra-options. Signed-off-by: Ludovic Courtès <ludo@gnu.org>