summary refs log tree commit diff
path: root/gnu/services
AgeCommit message (Collapse)Author
2023-04-25services: tor: Deprecate 'tor-hidden-service' procedure.Bruno Victal
Due to (now renamed) 'hidden-service' record type not being exported, the only way Onion services (formely hidden services) could have worked is through the now deprecated 'tor-hidden-service' procedure. This commit updates the Tor service documentation, corrects some inconsistently named accessors in <tor-configuration> record-type, renames and refactors tor-hidden-service-configuration to tor-onion-service-configuration using define-configuration and also exports it, allowing Onion services to be configured directly within a <tor-configuration> record. Lastly, it also deprecates the 'tor-hidden-service' procedure. * doc/guix.texi (Networking Services): Substitute mentions of “Hidden services” with “Onion Services”. Add a Tor Onion service configuration example. Document <tor-onion-service-configuration>. Remove mention of 'tor-hidden-service' procedure. * gnu/services/networking.scm: Export tor-configuration-tor, tor-configuration-config-file, tor-configuration-hidden-services, tor-configuration-socks-socket-type, tor-configuration-control-socket-path, tor-onion-service-configuration, tor-onion-service-configuration?, tor-onion-service-configuration-name, tor-onion-service-configuration-mapping. (<tor-configuration>)[control-socket?]: Rename accessor. (<hidden-service>): Replace with … (<tor-onion-service-configuration>): … this. (tor-configuration->torrc): Update record-type name. (tor-activation): Ditto. (tor-hidden-service-type): Remove variable. (tor-hidden-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-22Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge
2023-04-21services: herd: 'load-services/safe' is synonymous with 'load-services'.Ludovic Courtès
This is a followup to 547965aa27b6a09cadf42130b7ec7db3f1aee61f. * gnu/services/herd.scm (load-services/safe): Make an alias for 'load-services'.
2023-04-21services: nscd: Depend on syslogd.Ludovic Courtès
This gets rid of nscd debug messages on the console at boot time. * gnu/services/base.scm (nscd-shepherd-service): Add dependency on 'syslogd'.
2023-04-21services: postgresql: Add default package.Ludovic Courtès
* gnu/services/databases.scm (<postgresql-configuration>)[postgresql]: Add default value, moved from... (postgresql-service-type)[default-value]: ... here.
2023-04-21services: knot: Add 'configuration' action.Ludovic Courtès
* gnu/services/dns.scm (knot-shepherd-service): Add 'actions' field.
2023-04-21services: rsync: Add 'configuration' action.Ludovic Courtès
* gnu/services/rsync.scm (rsync-shepherd-service): Add 'actions' field.
2023-04-21services: redis: Add 'configuration' action.Ludovic Courtès
* gnu/services/databases.scm (redis-shepherd-service): Add 'actions' field.
2023-04-21services: mysql: Add 'configuration' action.Ludovic Courtès
* gnu/services/databases.scm (mysql-shepherd-service): Add 'actions' field.
2023-04-21services: postgresql: Add 'configuration' action.Ludovic Courtès
* gnu/services/databases.scm (postgresql-shepherd-service): Add 'actions' field.
2023-04-21services: postgresql: Add the 'postgresql' Shepherd service name.Ludovic Courtès
* gnu/services/databases.scm (postgresql-shepherd-service): Add 'postgresql' to 'provision'.
2023-04-21services: syslog: Log auth.info to /var/log/secure in default configuration.Maxim Cournoyer
This causes authentication failures such as those generated by SSH brute force attacks to appear in /var/log/secure, which is picked up by tools such as fail2ban. * gnu/services/base.scm (%default-syslog.conf): Add a auth.info selector for the /var/log/secure log. Series-to: 62802@debbugs.gnu.org
2023-04-21services/syslog: Strip leading white space indent in syslog.conf.Maxim Cournoyer
This is a cosmetic change. * gnu/services/base.scm (%default-syslog.conf): Add a comment referencing the documentation. Strip the extraneous leading trailing white space indent.
2023-04-21services: syslog: Add a reload action.Maxim Cournoyer
* gnu/services/base.scm (syslog-service-type) [actions]: Add a reload action. * doc/guix.texi (Base Services): Document it.
2023-04-21services: syslog: Move configuration to /etc/syslog.conf.Maxim Cournoyer
Having the configuration live at a static location makes it possible to hot-reload it. * gnu/services/base.scm (syslog.conf): New variable. (syslog-etc, syslog-shepherd-service): New procedures. (syslog-service-type): Rewrite using the above new variable and procedures, extending etc-service-type with its configuration file.
2023-04-19services: agetty: 'term-console' succeeds by default.Ludovic Courtès
Previously, on a typical setup without "console=ttyS0" or similar in 'kernel-arguments', the 'term-console' Shepherd service would always be marked as failing to start. This is undesirable because it raises a false alarm: the service is expected to do nothing in this case. This patch instead marks it as succeeding and logs a message explaining it's doing nothing. * gnu/services/base.scm (agetty-shepherd-service): In 'start' method, succeed when TTY is #f and print a message.
2023-04-17services: agetty: 'term-console' succeeds by default.Ludovic Courtès
Previously, on a typical setup without "console=ttyS0" or similar in 'kernel-arguments', the 'term-console' Shepherd service would always be marked as failing to start. This is undesirable because it raises a false alarm: the service is expected to do nothing in this case. This patch instead marks it as succeeding and logs a message explaining it's doing nothing. * gnu/services/base.scm (agetty-shepherd-service): In 'start' method, succeed when TTY is #f and print a message.
2023-04-14Merge branch 'master' into core-updates.Maxim Cournoyer
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
2023-04-14services: 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-14services: 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-11services: nginx: Add reopen action.Bruno Victal
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>
2023-04-11services: nginx: Make logging level configurable.Bruno Victal
* 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>
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>