summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Expand)Author
2023-04-14Merge branch 'master' into core-updates....Conflicts: gnu/local.mk gnu/packages/build-tools.scm gnu/packages/certs.scm gnu/packages/check.scm gnu/packages/compression.scm gnu/packages/cups.scm gnu/packages/fontutils.scm gnu/packages/gnuzilla.scm gnu/packages/guile.scm gnu/packages/ibus.scm gnu/packages/image-processing.scm gnu/packages/linux.scm gnu/packages/music.scm gnu/packages/nss.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/qt.scm gnu/packages/ruby.scm gnu/packages/shells.scm gnu/packages/tex.scm gnu/packages/video.scm gnu/packages/vulkan.scm gnu/packages/web.scm gnu/packages/webkit.scm gnu/packages/wm.scm Maxim Cournoyer
2023-04-11services: nginx: Add reopen action....This is required to allow log file rotations using rottlog, etc. * gnu/services/web.scm (nginx-shepherd-service): Add reopen shepherd action. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal
2023-04-11services: nginx: Make logging level configurable....* gnu/services/web.scm (<nginx-configuration>)[log-level]: New field. (assert-valid-log-level): New procedure. (default-nginx-config): Make log-level configurable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal
2023-04-07services: desktop: Remove 'xfce-desktop-service' procedure....* gnu/services/desktop.scm (xfce-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: desktop: Remove 'mate-desktop-service' procedure....* gnu/services/desktop.scm (mate-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: desktop: Remove 'gnome-desktop-service' procedure....* gnu/services/desktop.scm (gnome-desktop-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: guix-publish: Remove 'compression-level' field....* 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> Bruno Victal
2023-04-07services: base: Remove 'console-font-service' procedure....* gnu/services/base.scm (console-font-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: base: Remove 'console-keymap-service-type' variable....* gnu/services/base.scm (console-keymap-service-type): Remove variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: sddm: Remove 'sddm-service' procedure....* gnu/services/sddm.scm (sddm-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-04-07services: ntp-service-type: Remove deprecated server as strings support....* 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> Bruno Victal
2023-04-02services: xvnc: Do not create a regular HOME directory for xvnc user....* gnu/services/vnc.scm (%xvnc-accounts) [home-directory]: Define as /var/empty. [shell]: Set to nologin, for good measures. Maxim Cournoyer
2023-04-02services: mympd: Use records for user and group fields....* 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> Bruno Victal
2023-04-02services: mpd: Use proper records for user and group fields....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> Bruno Victal
2023-04-02services: mpd: Fix unintentional API breakage for mixer-type field....* 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> Bruno Victal
2023-04-02services: replace bare serializers with (serializer ...)...* 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> Bruno Victal
2023-04-02services: configuration: Add user-defined sanitizer support....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> Bruno Victal
2023-03-30services: pam-limits-service-type: Deprecate file-like object support in favo......* 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> Bruno Victal
2023-03-30services: base: Deprecate 'pam-limits-service' procedure....* 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> Bruno Victal
2023-03-29services: configuration: Fix garbage output in configuration->documentation....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> Bruno Victal
2023-03-28services: fstrim: Fix schedule ungexp....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> Bruno Victal
2023-03-27services: ntpd: Add 'configuration' action....* gnu/services/networking.scm (ntp-shepherd-service): Add 'actions' field. Ludovic Courtès
2023-03-27services: network-manager: Add 'configuration' action....* gnu/services/networking.scm (network-manager-shepherd-service): Add 'actions' field. Ludovic Courtès
2023-03-27services: syslog: Add 'configuration' action....* gnu/services/base.scm (syslog-service-type): Add 'actions' field. Ludovic Courtès
2023-03-26services: herd: Remove workaround for Shepherd < 0.5.0....* gnu/services/herd.scm (load-services/safe): Remove workaround for Shepherd < 0.5.0, released in 2018. Ludovic Courtès
2023-03-25services: xorg-wrapper: Support xorg server input rewriting....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> r0man
2023-03-24services: mpd: Set PulseAudio-related variables....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> Bruno Victal
2023-03-24services: audio: Remove redundant list-of-string? predicate....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> Bruno Victal
2023-03-24services: mympd: Require 'syslog service when configured to log to syslog....* 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> Bruno Victal
2023-03-23services: network-manager: Set LINUX_MODULE_DIRECTORY environment variable....Fixes <https://issues.guix.gnu.org/62409>. * gnu/services/networking.scm (network-manager-shepherd-service): Set the LINUX_MODULE_DIRECTORY environment variable. Maxim Cournoyer
2023-03-22services: Add fstrim-service-type....* 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> Bruno Victal
2023-03-21services: Add x11-socket-directory-service-type....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> Bruno Victal
2023-03-21services: mcron: Add log-file and date-format fields....* 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> Bruno Victal
2023-03-21services: mcron: Use match-record....* gnu/services/mcron.scm (mcron-shepherd-services): Use match-record. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal
2023-03-21services: mcron: Restyle mcron-configuration....* 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> Bruno Victal
2023-03-21services: static-networking: 'eval-when' for code used at expansion-time....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). Ludovic Courtès
2023-03-21services: configuration: simplify alist? procedure....* gnu/services/configuration.scm (alist?): simplify procedure. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal
2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge
2023-03-20services: network-manager: Add missing shadowing of 'iwd?' field....* gnu/services/networking.scm (network-manager-shepherd-service): Add missing shadowing of 'iwd?' field by using let* instead of let. Andrew Tropin
2023-03-17services: dict: Deprecate 'dicod-service' procedure....* 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> Bruno Victal
2023-03-17services: console-font: 'stop' method always returns #f....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. Ludovic Courtès
2023-03-13services: dns: Fix cpe-id default value....* gnu/service/dns.scm: (<dnsmasq-configuration>)[cpe-id]: Change cpe-id default value to #f instead of #t. Andrew Tropin
2023-03-13services: dns: Extend dnsmasq-configuration....* 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> Sergey Trofimov
2023-03-10services: xorg: Deprecate 'screen-locker-service' procedure....* 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> Bruno Victal
2023-03-10services: connman: Set service canonical-name to connman....* 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> Bruno Victal
2023-03-10services: network-manager: Set service canonical-name to NetworkManager....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> Bruno Victal
2023-03-10services: network-manager: Await for NetworkManager to finish starting up....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> Bruno Victal
2023-03-10services: connman: Deprecate 'iwd?' field....* 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> Bruno Victal
2023-03-10services: connman: Add 'shepherd-requirement' field....* 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> Bruno Victal
2023-03-10services: connman: Use match-record and export accessors....* 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> Bruno Victal