summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Expand)Author
2023-07-26Revert "services: mpd: Add an 'update' action to trigger a database update."...This reverts commit e1070ee16036f6dfb84c44aea4119e4db770356b. Rationale: this only works with the default 'endpoints'. The 'auto-update?' option should be sufficient to trigger a database update automatically anyway. Maxim Cournoyer
2023-07-26services: mpd: Provision a default cache directory and set HOME....Relates to <https://issues.guix.gnu.org/63082>. * gnu/services/audio.scm (mpd-shepherd-service): Create a default .cache directory. Use mkdir-p/perms and refactor loop. Set the HOME environment variables. Maxim Cournoyer
2023-07-26services: mpd: Auto-detect mpd-output mixer type by default....Relates to <https://issues.guix.gnu.org/63082>. * gnu/services/audio.scm (mpd-output) [mixer-type]: Change default value from "none" to unspecified. * doc/guix.texi (Audio Services): Regenerate doc. Maxim Cournoyer
2023-07-26services: Avoid 'delete' overrides warning in audio module....* gnu/services/audio.scm: Hide 'delete' on (gnu services) import. Maxim Cournoyer
2023-07-26services: mpd: Do not rotate logs when using syslog....* gnu/services/audio.scm (mpd-log-rotation): Conditionlize based on the value of LOG-FILE. Maxim Cournoyer
2023-07-26services: mpd: Log to syslog by default....Rationale: the tristate value was awkward to deal with, the default log file name was odd (/var/log/mpd/log) and it required special attention to create the 'mpd' parent directory as root and chowning it to the MPD user. It also didn't match the default behavior of MPD, which is to log to systemd or syslog unless a log file is specified. * gnu/services/audio.scm (mpd-log-file-sanitizer): New procedure. (mpd-configuration) [log-file]: Remove default maybe value. Add sanitizer. (mpd-shepherd-service): Validate the log file parent directory exists and has the right permissions. Conditionally add syslogd to requirements. (mympd-log-to-sanitizer): New procedure. (mympd-configuration) [log-to]: Change type to maybe-string. Update doc and add sanitizer. (mympd-shepherd-service) [requirement]: Fix to use syslogd. Adjust accordingly. [start] Adjust accordingly. (mympd-log-rotation): Check log-to via maybe-value-set?. * doc/guix.texi (Audio Services): Update doc. Maxim Cournoyer
2023-07-26services: mpd; Refactor start slot directory initialization....* gnu/services/audio.scm (mpd-shepherd-service): Standardize the way the log file parent and other directories are initialized in the start slot. (mympd-shepherd-service): Likewise. Maxim Cournoyer
2023-07-26services: mpd: List log-level in decreasing verbosity order in doc....* gnu/services/audio.scm (mpd-configuration) [log-level]: List log-level in decreasing verbosity order in doc. * doc/guix.texi (Audio Services): Update doc. Maxim Cournoyer
2023-07-26services: guix-data-service: Unlink the two shepherd services....So that they can be restarted in dependently. * gnu/services/guix.scm (guix-data-service-shepherd-services): Don't require the main service from the jobs service. Christopher Baines
2023-07-25services: mpd: Rename %set-user-group to set-user-group....The convention to use % as a prefix is for "special" variables rather than procedures. * gnu/services/audio.scm (%set-user-group): Rename to... (set-user-group): ... this. Maxim Cournoyer
2023-07-25services: mpd: Streamline mpd-user-sanitizer and mympd-user-sanitizer....* gnu/services/audio.scm (mpd-user-sanitizer, %mympd-user): Remove extraneous group field, already inherited. (%mpd-user, %mympd-user): Clarify %lazy-group explanatory comment. Fix indentation. Maxim Cournoyer
2023-07-25services: mpd: Add an 'update' action to trigger a database update....* gnu/services/audio.scm (mpd-shepherd-service): Register a new update action. * doc/guix.texi (Audio Services): Document it. Maxim Cournoyer
2023-07-25services: mpd: Add auto-update? field to mpd-configuration....* gnu/services/audio.scm (mpd-configuration) [auto-update?]: New field. * doc/guix.texi (Audio Services): Update doc. Maxim Cournoyer
2023-07-21services: wireguard: Add a 'configuration' action....* gnu/services/vpn.scm (wireguard-shepherd-service) [actions]: New field. Maxim Cournoyer
2023-07-21services: wireguard: Clean-up configuration file serializer....Previously, the generated config file would contain arbitrary whitespace that made it look ugly. * gnu/services/vpn.scm (<wireguard-configuration>) [dns]: Change default value from #f to '(). (wireguard-configuration-file): Use match-record. Format each line individually, assembling the lines at the end to avoid extraneous white space. * doc/guix.texi (VPN Services): Update doc. Maxim Cournoyer
2023-07-21services: wireguard: Implement a dynamic IP monitoring feature....* gnu/services/vpn.scm (<wireguard-configuration>) [monitor-ips?, monitor-ips-internal]: New fields. * gnu/services/vpn.scm (define-with-source): New syntax. (wireguard-service-name, strip-port/maybe) (ipv4-address?, ipv6-address?, host-name?) (endpoint-host-names): New procedure. (wireguard-monitoring-jobs): Likewise. (wireguard-service-type): Register it. * tests/services/vpn.scm: New file. * Makefile.am (SCM_TESTS): Register it. * doc/guix.texi (VPN Services): Update doc. Reviewed-by: Bruno Victal <mirai@makinata.eu> Maxim Cournoyer
2023-07-21services: herd: Add a new 'current-service' procedure....* gnu/services/herd.scm (current-service): New procedure, mostly reusing the existing current-services. (current-services): Implement in terms of the above procedure. Maxim Cournoyer
2023-07-13services: static-networking: Support netdde for the Hurd....As suggested by Sergey Bugaev on bug-hurd https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00455.html * gnu/services/base.scm (static-networking->hurd-pfinet-options): Use /DEV/ethX. Use long options for settrans. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> Janneke Nieuwenhuizen
2023-07-13services: childhurd: Bump default qemu memory to 2048MB....When booting with pci-arbiter and rumpdisk and using 1024MB of memory for qemu, booting hangs, or seems to hang, at the end of the rumpdisk boot messages. At least 1200MB is required, currently. * gnu/services/virtualization.scm (<hurd-vm-configuration>)[memory-size]: Bump to 2048. * gnu/system/examples/bare-hurd.tmpl: Suggest using 2048 here too. Update example `guix system image' and "qemu" command lines too. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> Janneke Nieuwenhuizen
2023-07-02services: cgit: Remove ‘cgit-repo’ left-overs....This follows up on commit 16d77b31c5024e9288dfd2f25f8eb6d0114a342c. * gnu/services/cgit.scm (cgit-configuration): Use extant repository-cgit-configuration variable name. Tobias Geerinckx-Rice
2023-07-07services: libvirt: Add requirement on dbus....* gnu/services/virtualization.scm (libvirt-shepherd-service): Add requirement on dbus. Josselin Poiret
2023-07-07gnu: gnome: Remove gnome-boxes from default GNOME apps....* gnu/packages/gnome.scm (gnome): Remove gnome-boxes from propagated-inputs, since it is no longer a Core App in 42. Josselin Poiret
2023-07-02services: nginx: Harden php-location settings....* gnu/services/web.scm (nginx-php-location): Only pass existing PHP files to the back end. Mitigate httpoxy vulnerability. Bruno Victal
2023-06-27services: pam-limits: Add lightdm....Without this a user's pam-limits-service-type configuration does not have an effect when using lightdm. * gnu/services/base.scm (pam-limits-service-type): Add "lightdm" to the list. John Kehayias
2023-06-25services: Validate 'provision' field of <shepherd-service>....Fixes <https://issues.guix.gnu.org/63979>. * gnu/services/shepherd.scm (validate-provision): New procedure. (<shepherd-service>)[provision]: Use it. Co-authored-by: Bruno Victal <mirai@makinata.eu> Ludovic Courtès
2023-06-24services: dicod: Use one inetd endpoint per interface....* gnu/services/dict.scm (dicod-shepherd-service): Remove the (= 1 (length interfaces)) restriction by adding one endpoint per interface. Ludovic Courtès
2023-06-18services: certbot: Fix nginx crash when certbot is used without domains....* gnu/services/certbot.scm (certbot-nginx-server-configurations): Don't return a broken nginx-server-configuration with empty server_name when no certificate domains are configured. Instead add a separate server for every certificate, so 0 certificates adds 0 servers. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Reviewed-by: Bruno Victal <mirai@makinata.eu> Saku Laesvuori
2023-06-16services: qemu-guest-agent: Add dependency on udev....Fixes <https://issues.guix.gnu.org/64057>. * gnu/services/virtualization.scm (qemu-guest-agent-shepherd-service): Add 'requirement' field. Reported-by: Yann Dupont <yann.dupont@univ-nantes.fr> Ludovic Courtès
2023-06-14services: static-netwoking: Wait for devices to show up....Fixes <https://issues.guix.gnu.org/63516>. * gnu/services/base.scm (network-set-up/linux): Add call to 'wait-for-link'. Ludovic Courtès
2023-06-04services: screen-locker-service-type: Configurable PAM and setuid....screen-locker-service-type by default does both define PAM entry and make program setuid binary. Normally both methods are mutually exclusive, if binary has setuid set it does not really needs PAM, otherway around also similar, if PAM is enabled binary should not relay on setuid. Recent swaylock package now compiled with PAM support. When PAM support is compiled in, swaylock rejects executing if binary is also setuid program. This change turns screen-locker-configuration from strict PAM AND setuid to more flexible PAM AND/OR setuid. Allowing swaylock to be configured properly while supporting other screen locker preferences. * gnu/services/xorg.scm (screen-locker-configuration): Switch from define-record-type to define-configuration. [using-pam?]: New field to control PAM entry existence. [using-setuid?]: New field to control setuid binary existence. (screen-locker-pam-services): Should not make unix-pam-service if using-pam? is set to #f. (screen-locker-setuid-programs): Should not make program setuid program if using-setuid? is set to #f. (screen-locker-generate-doc): Internal function to generate configuration documentation. (screen-locker-service): Adapt to new screen-locker-configuration. * gnu/services/desktop.scm (desktop-services-for-system): Adapt to new screen-locker-configuration. * doc/guix.texi: Reflect new changes to screen-locker-configuration. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> muradm
2023-05-30services: herd: "Resolve" transient services only when needed....This allows us to get rid of the "eval root" actions, which in turn would lead to confusing "Evaluating user expression" messages. Fixes <https://issues.guix.gnu.org/55857>. * gnu/services/herd.scm (resolve-transients): In 'values', avoid 'eval-there' call when UNRESOLVED is empty. Ludovic Courtès
2023-05-24services: guix: Depend on 'avahi-daemon' when 'discover?' is set....Previously, with shepherd 0.10.0, guix-daemon would start quickly, possibly before avahi-daemon is running. Consequently, its "guix discover" child process would exit immediately with a warning saying "Avahi daemon is not running". * gnu/services/base.scm (guix-shepherd-service): When DISCOVER? is true, add 'avahi-daemon' to 'requirement'. Ludovic Courtès
2023-05-23services: cups: Add cups PAM service....Fixes <https://issues.guix.gnu.org/63198>. Have the CUPS service extend pam-root-service-type providing minimal configuration to authenticate users. Since PAM authentication is provided, the regular cups package can be used as default instead of the minimal, PAM-lacking variant. * gnu/services/cups.scm (cups-configuration) [cups]: Replace cups-minimal with cups. [allow-empty-password?]: PAM service configuration permitting empty passwords. (opaque-cups-configuration): Likewise. (cups-pam-service): New procedure. (cups-service-type): Extend pam-root-service-type with cups-pam-service. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> muradm
2023-05-21services: Transient inetd services inherit requirements....That way, per-connection transient services such as 'sshd-123' inherit dependencies of their "parent" ('sshd' in this example), which is more consistent than not depending on anything. * gnu/services/dict.scm (dicod-shepherd-service): Pass #:requirements to 'make-inetd-constructor'. * gnu/services/messaging.scm (bitlbee-shepherd-service): Likewise. * gnu/services/ssh.scm (openssh-shepherd-service): Likewise. * gnu/services/vnc.scm (xvnc-shepherd-service): Likewise. Ludovic Courtès
2023-05-21services: root-file-system: Remove reference to 'stop-logging'....* gnu/services/base.scm (%root-file-system-shepherd-service): In 'stop' method, remove reference to 'stop-logging'. That procedure is gone in Shepherd 0.10.0, leading to an unbound-variable exception. Additionally, calling is unnecessary since 0.4.0, where shepherd logs to syslog (thus the open file descriptor is not backed by an on-disk file). Ludovic Courtès
2023-05-21services: agetty: 'stop' method does nothing when running is 'idle....This is a followup to 57e731c358d000f614fbda23654cae6a5e79df80. * gnu/services/base.scm (agetty-shepherd-service): Change 'stop' method to return #f immediately when the running value is 'idle. Ludovic Courtès
2023-05-18services: rsync: Use least authority wrapper....* gnu/services/rsync.scm (rsync-shepherd-service) Wrap rsync command in a least-authority-wrapper. Reviewed-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer
2023-05-18services: rsync: Use make-inetd-constructor....* gnu/services/rsync.scm (rsync-shepherd-service): Use make-inetd-constructor if available in start slot. * gnu/tests/rsync.scm (run-rsync-test): Delete "PID file" test. Reviewed-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer
2023-05-17services: ssh: Really rename openssh-challenge-response-authentication?...Fixes up 9c161c1f0d, which renamed the accessor of <openssh-configuration> but failed to adjust the single usage. * gnu/services/ssh.scm (openssh-config-file): Rename openssh-challenge-response-authentication? call to openssh-configuration-challenge-response-authentication?. Maxim Cournoyer
2023-05-17services: ssh: Rename openssh-challenge-response-authentication?...This is a follow-up commit to the preceding commit, which exported all <openssh-configuration> accessors. * gnu/services/ssh.scm (<openssh-configuration>): Rename openssh-challenge-response-authentication? to openssh-configuration-challenge-response-authentication?. It's a mouthful, but is at least consistent with the rest. Maxim Cournoyer
2023-05-17services: openssh: Export openssh-configuration accessors....* gnu/services/ssh.scm: Export openssh-configuration accessors. Maxim Cournoyer
2023-05-13services: shepherd: Default to 0.10....* gnu/services/shepherd.scm (<shepherd-configuration>)[shepherd]: Default to SHEPHERD-0.10. * gnu/home/services/shepherd.scm (<home-shepherd-configuration>)[shepherd]: Likewise. Ludovic Courtès
2023-05-13services: nar-herder: Support extra environment vars....* gnu/services/guix.scm (nar-herder-configuration-extra-environment-variables): New procedure. (nar-herder-shepherd-services): Pass the environment variables to the shepherd. * doc/guix.texi (Guix Services): Document it. Christopher Baines
2023-05-11services: inetd: Export accessors....* gnu/services/networking.scm: Export inetd-configuration?, inetd-configuration-program, inetd-configuration-entries, inetd-entry?, inetd-entry-node, inetd-entry-name, inetd-entry-socket-type, inetd-entry-protocol, inetd-entry-wait?, inetd-entry-user, inetd-entry-program and inetd-entry-arguments. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-05-11services: Add vnstat-service-type....* gnu/services/monitoring.scm (vnstat-service-type): New variable. * doc/guix.texi (Monitoring Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal
2023-05-11services: dhcp-client-configuration: Add 'shepherd-requirement' field....* gnu/services/networking.scm (<dhcp-client-configuration>) [shepherd-requirement]: New field. (dhcp-client-shepherd-service): Honor it. (dhcp-client-configuration-shepherd-requirement): Export accessor. * doc/guix.texi (Networking Setup): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sergey Trofimov
2023-05-11services: elogind: Add elogind as a shepherd PAM requirement....* gnu/services/desktop.scm (pam-extension-procedure): Add the elogind shepherd requirement to the PAM extension. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret
2023-05-11system: pam: Let PAM extensions add shepherd requirements....* gnu/system/pam.scm (<pam-extension>): New record type. (pam-shepherd-service): Add Shepherd synchronization point. * gnu/services/mail.scm (dovecot-shepherd-service) * gnu/services/lightdm.scm (lightdm-shepherd-service) * gnu/services/mail.scm (opensmtpd-shepherd-service) * gnu/services/sddm.scm (sddm-shepherd-service) * gnu/services/ssh.scm (lsh-shepherd-service, openssh-shepherd-service) * gnu/services/xorg.scm (slim-shepherd-service, gdm-shepherd-service) * gnu/services/base.scm (greetd-shepherd-services): Add PAM requirement. * gnu/system/pam.scm (/etc-entry, extend-configuration, pam-root-service-type, pam-root-service) * gnu/services/authentication.scm (pam-ldap-pam-service) * gnu/services/base.scm (pam-limits-service-type) (greetd-pam-service) * gnu/services/desktop.scm (pam-gnome-keyring) * gnu/services/kerberos.scm (pam-krb5-pam-service) * gnu/services/pam-mount.scm (pam-mount-pam-service): Adapt to use pam-extension. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret
2023-05-11services: syslog: Do not call 'umask' in PID 1....Fixes a race condition when starting services in parallel with shepherd 0.10.x whereby a service might create files and directories with umask #o137. An example is the bitlbee service with its least-authority wrapper: the wrapper would create a tree with directories set to #o640, thereby making the whole directory tree inaccessible. * gnu/services/base.scm (syslog-shepherd-service): Pass #:file-creation-mask to 'make-forkexec-constructor' instead of calling 'umask' in PID 1. Ludovic Courtès
2023-05-11services: dicod, bitlbee: Pass 'make-inetd-constructor' a list of endpoints....'make-inetd-constructor' accepts a list of endpoints since version 0.9.1 of the Shepherd (released in May 2022). * gnu/services/dict.scm (dicod-shepherd-service): Pass 'make-inetd-constructor' a list of endpoints. * gnu/services/messaging.scm (bitlbee-shepherd-service): Likewise. Ludovic Courtès