summaryrefslogtreecommitdiff
path: root/gnu/services/base.scm
AgeCommit message (Collapse)Author
2025-04-11gnu: eudev: Build with udevrulesdir pointing to /etc/udev/rules.d.Maxim Cournoyer
Prior to this change, only the udev rules installed to eudev's prefix were consulted by tools such as udevadm, leading to problems such as when configuring network interfaces, or attempting to override its default rules. While our custom eudev patch adding support for the EUDEV_RULES_DIRECTORY environment variable could have been refined to take precedence over the package's configured udevrulesdir, this was not pursued for the following reasons: 1. Due to eudev's using inotify to detect new rules, the EUDEV_RULES_DIRECTORY is fixed in Guix System, per commit e9fa17eb98 ("services: udev: Use a fixed location for the rules directory and config.") 2. Users would have had to set EUDEV_RULES_DIRECTORY to the fixed directory themselves to have udevadm work as expected, which is inconvenient. 3. This simple solution is already implemented and tested in NixPkgs. * gnu/packages/linux.scm (eudev) [source]: Remove custom patch. [arguments] <#:make-flags>: New argument. <#:phases>: Override install phase to alter installation make flags. * gnu/services/base.scm (udev-shepherd-service): Do not set EUDEV_RULES_DIRECTORY environment variable. * gnu/packages/patches/eudev-rules-directory.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. Fixes: https://issues.guix.gnu.org/63508 Reported-by: Felix Lechner <felix.lechner@lease-up.com> Change-Id: Ib8698f4b452f6fd0951bcd71831705b1be85e6e0
2025-04-11services/base: Remove extraneous UDEV_CONFIG_FILE environment variable.Maxim Cournoyer
This environment variable used to be honored by udevd, but that is no longer the case (as shown by grepping its source). * gnu/services/base.scm (udev-shepherd-service) <#:environment-variables>: Remove UDEV_CONFIG_FILE. Change-Id: I0828de76e8da429432bc0679903aa501c99625af
2025-04-08services: Make the urandom-seed-service-type return success properly.Leo Famulari
Reported by nigko on #guix: https://logs.guix.gnu.org/guix/2025-04-05.log#201718 * gnu/services/base.scm (urandom-seed-shepherd-service): Return #f when stopped. Change-Id: I8212508e4a017270e4e9284b43170cd17999e8b4
2025-04-06services: guix: Socket-activate ‘guix-daemon’.Ludovic Courtès
* gnu/services/base.scm (guix-shepherd-service): Change ‘start’ to use ‘make-systemd-constructor’ in the default case. Remove now-redundant code creating /var/guix/daemon-socket/. Adjust ‘stop’ method to use ‘make-systemd-destructor’ when appropriate. Change-Id: I3572670c90f65509fbad01dcf13a60f772a86839
2025-04-06services: guix: Streamline the default ‘start’ case.Ludovic Courtès
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method, use ‘fork+exec-command’ in the default case. Change-Id: Id04d3d2651f89fbcdb2f17f027df91e132ff9ed1
2025-04-06services: guix: Factorize ‘guix-daemon’ arguments.Ludovic Courtès
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method, move ‘fork+exec-command/container’ arguments to the new variables ‘daemon-command’ and ‘environment-variables’. Change-Id: Ic04a1006849697e4e185ad94185bbdec8a91a05a
2025-03-05Revert "services/udev: Allow configuring udev to run in debug mode."Maxim Cournoyer
This reverts commit dd64f441d3dcff9165927b821da2b69b1fc6a24f. Enabling debug output for udevd apparently hangs the boot.
2025-03-05services: Switch to ‘shepherd-system-log-service-type’ in ↵Ludovic Courtès
‘%base-services’. This reinstates c83bfc0415ba928b746362915d67600cdbb5da62, which had been reverted in 8c483c12e94bcf43e4c44170f1d5fea5fbba4970 in response to <https://issues.guix.gnu.org/76315>. * gnu/services/base.scm (%base-services): Replace ‘syslog-service-type’ by ‘shepherd-system-log-service-type’. * doc/guix.texi (Base Services): Update ‘syslog-service-type’ documentation. (Shepherd Services): Mention that ‘system-log-service-type’ is in ‘%base-services’. Add anchor. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I21082300f6a052865a6ab1bdff27fbe71f73d492
2025-03-03services/udev: Allow configuring udev to run in debug mode.Maxim Cournoyer
* gnu/services/base.scm (<udev-configuration>): <debug?>: New field. * gnu/services/base.scm (udev-shepherd-service): Use it to add '--debug' to the command line, if applicable. * doc/guix.texi (Base Services): Document it. Change-Id: I88243fb4f321ff0876dd227e3c2b22082d37cfcf
2025-02-23services: Add missing Shepherd dependency on ‘user-processes’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/76368>. * gnu/services/auditd.scm (auditd-shepherd-service): * gnu/services/base.scm (rngd-service-type): (gpm-shepherd-service): * gnu/services/ci.scm (laminar-shepherd-service): * gnu/services/containers.scm (rootless-podman-cgroups-fs-owner-service): (rootless-podman-cgroups-limits-service): * gnu/services/cups.scm (cups-shepherd-service): * gnu/services/databases.scm (postgresql-role-shepherd-service): * gnu/services/desktop.scm (upower-shepherd-service): (bluetooth-shepherd-service): (elogind-shepherd-service): (inputattach-shepherd-service): (seatd-shepherd-service): * gnu/services/dns.scm (knot-resolver-shepherd-services): (dnsmasq-shepherd-service): * gnu/services/docker.scm (containerd-shepherd-service): (docker-shepherd-service): * gnu/services/file-sharing.scm (transmission-daemon-shepherd-service): * gnu/services/games.scm (joycond-shepherd-service): (wesnothd-shepherd-service): * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): (guix-data-service-shepherd-services): (nar-herder-shepherd-services): (bffe-shepherd-services): * gnu/services/ldap.scm (directory-server-shepherd-service): * gnu/services/linux.scm (cachefilesd-shepherd-service): (rasdaemon-shepherd-service): * gnu/services/mail.scm (dovecot-shepherd-service): (imap4d-shepherd-service): (radicale-shepherd-service): (rspamd-configuration): * gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service): (vnstat-shepherd-service): * gnu/services/networking.scm (opendht-shepherd-service): (openvswitch-shepherd-service): (pagekite-shepherd-service): (ipfs-shepherd-service): * gnu/services/nfs.scm (rpcbind-service-type): (gss-service-type): (idmap-service-type): * gnu/services/pm.scm (thermald-shepherd-service): * gnu/services/rsync.scm (rsync-shepherd-service): * gnu/services/samba.scm (samba-samba-shepherd-service): (samba-nmbd-shepherd-service): (samba-smbd-shepherd-service): (samba-winbindd-shepherd-service): (wsdd-shepherd-service): * gnu/services/security-token.scm (pcscd-shepherd-service): * gnu/services/sound.scm (speakersafetyd-shepherd-service): * gnu/services/spice.scm (spice-vdagent-shepherd-service): * gnu/services/ssh.scm (lsh-shepherd-service): (openssh-shepherd-service): (dropbear-shepherd-service): (autossh-shepherd-service): * gnu/services/telephony.scm (jami-shepherd-services): (mumble-server-shepherd-service): * gnu/services/version-control.scm (git-daemon-shepherd-service): * gnu/services/virtualization.scm (virtlogd-shepherd-service): * gnu/services/vnc.scm (xvnc-shepherd-service): * gnu/services/vpn.scm (openvpn-shepherd-service): (strongswan-shepherd-service): * gnu/services/web.scm (httpd-shepherd-services): (fcgiwrap-shepherd-service): (php-fpm-shepherd-service): (hpcguix-web-shepherd-service): (tailon-shepherd-service): (varnish-shepherd-service): (whoogle-shepherd-service): (mumi-shepherd-services): (gmnisrv-shepherd-service): (agate-shepherd-service): Add ‘user-processes’ requirement. * doc/guix.texi (Mail Services): Update accordingly. Reported-by: Dariqq <dariqq@posteo.net> Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
2025-02-17gnu: guix-configuration: Add a chroot? parameter.Andreas Enge
The parameter should take the values #t, #f or 'default. In a container environment, 'default amounts to #f, otherwise it amounts to #t. * gnu/services/base.scm (guix-configuration)<chroot?>: New field. (guix-shepherd-service): If chroot? is #f, add "--disable-chroot". If it is #t or 'default, do nothing. * gnu/system/linux-container.scm (containerized-operating-system): If chroot? is 'default, replace it by #f. * doc/guix.texi: Document the parameter. Change-Id: I8b9c3f46ad8650fa6ed4acee947b4ae5d002d03d
2025-02-16Revert "services: Switch to ‘shepherd-system-log-service-type’ in ↵Ludovic Courtès
‘%base-services’." This reverts commit c83bfc0415ba928b746362915d67600cdbb5da62 and the corresponding ‘etc/news.scm’ entry (commits 12bd93113c7a2ddf8c1db849550d1c0ae356f039 and 622568ec13b54ad8caaa7f67d1e8686073749b8b) while investigating <https://issues.guix.gnu.org/76315>. Change-Id: Ie26c24b8cd25cee3466cc871470b0bec9a5dfafb
2025-02-15services: Switch to ‘shepherd-system-log-service-type’ in ↵Ludovic Courtès
‘%base-services’. * gnu/services/base.scm (%base-services): Replace ‘syslog-service-type’ by ‘shepherd-system-log-service-type’. * doc/guix.texi (Base Services): Update ‘syslog-service-type’ documentation. (Shepherd Services): Mention that ‘system-log-service-type’ is in ‘%base-services’. Add anchor. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I21082300f6a052865a6ab1bdff27fbe71f73d492
2025-02-07services: Rename field in greetd-terminal-configuration record.Maxim Cournoyer
This was erroneously renamed during the review of commit ee0d1b144c ("services: greetd: Improve greeter configurations."). The field *adds* to the intrinsic requirements of the service, so the 'extra-' prefixes communicates this better. * gnu/services/base.scm (<greetd-terminal-configuration>): Rename shepherd-requirement field to extra-shepherd-requirement. * doc/guix.texi (Base Services): Adjust doc accordingly. Change-Id: I4b970bdd63864ed86d61fde9cad2487a293417ce
2025-02-07services: greetd: Use mkdir-p in activation script.Dariqq
Fixes a bug introduced in ee0d1b144c1572433c9475c32c74d61c3be9c058 where reconfiguring a system with ‘greetd-service-type’ would fail with: guix system: error: mkdir: File exists "/run/user". * gnu/services/base.scm (greetd-run-user-activation): Replace mkdir with mkdir-p. Change-Id: I030d1f57c3292c518b3f17061f75258e8a72141c
2025-02-06services: greetd: Add new gtkgreet greeter.muradm
* gnu/services/base.scm (<greetd-gtkgreet-sway-session>): New record, represents 'gtkgreet' greeter session configuration. * doc/guix.texi (Base Services): Document new 'gtkgreet' greeter. Change-Id: I2e8b5710965faa05795af1d0b2a0e2f774af1d5a Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-06services: greetd: Improve greeter configurations.muradm
This improvement focuses on providing common user session scripts for use by multiple greeters. Now user session entry point is factored out into '<greetd-user-session>', which can be reused as is with different greeters. By default it uses 'bash' as first user process. Then user normally starts additional programs with '.profile' or '.bashrc'. Using 'command', 'command-args' and 'extra-env' one can specify something else, which could be 'dbus-session' wrapped process, some desktop environment or else. While the above is possible, one is still encouraged to use '.bashrc', '.profile' or similar. It also fixes incorrect use of 'XDG_RUNTIME_DIR' for 'wlgreet'. 'wlgreet' requires a compositor to run. We provide common sway based greeter script, which can be shared by other graphical greeters. * gnu/services/base.scm (<greetd-user-session>): Common user session factored out, for shared use by multiple greeters. (<greetd-agreety-session>): Switch to common user session. (<greetd-wlgreet-configuration>): Refactor 'wlgreet' configuration. (<greetd-wlgreet-sway-session>): Switch to common user session. (<greetd-terminal-configuration>): Add 'extra-shepherd-requirement' for establishing configurable Shepherd service dependency. * gnu/tests/desktop.scm (%minimal-services): Reflect configuration changes. * doc/guix.texi (Base Services): Document refactoring changes. Change-Id: I9d45a592b355eb9c438be5b1d4d15555ce4956fa Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-01-26services: Add the Shepherd’s ‘transient’ and ‘timer’ to ↵Ludovic Courtès
‘%base-services’. * gnu/services/base.scm (%base-services): Add instances of ‘shepherd-timer-service-type’ and ‘shepherd-transient-service-type’. Change-Id: I28a35d0dce40b142ee71b330b1cf7a3d222ef6bd
2025-01-16services: Switch from mcron + Rottlog to Shepherd’s log rotation.Ludovic Courtès
* gnu/services/admin.scm (unattended-upgrade-log-rotations): Remove. (unattended-upgrade-service-type): Remove ‘rottlog-service-type’ extension. * gnu/services/audio.scm (mpd-log-rotation): Remove. (mpd-service-type): Remove ‘rottlog-service-type’ extension. (mympd-log-rotation): Remove. (mympd-service-type): Remove rottlog-service-type’ extension. * gnu/services/base.scm (%guix-publish-log-rotations): Remove. (guix-publish-service-type): Remove ‘rottlog-service-type’ extension. (%base-services): Instantiate ‘log-rotation-service-type’ instead of ‘rottlog-service-type’. (%default-syslog-files): New variable. (syslog-service-type): Extend ‘log-rotation-service-type’. * gnu/services/cuirass.scm (cuirass-log-rotations): Remove. (cuirass-service-type): Remove ‘rottlog-service-type’ extension. (cuirass-remote-worker-log-rotations): Remove. (cuirass-remote-worker-service-type): Remove ‘rottlog-service-type’ extension. * gnu/services/file-sharing.scm (%transmission-daemon-log-rotations): Remove. (transmission-daemon-service-type): Remove ‘rottlog-service-type’ extension. * gnu/services/linux.scm (%earlyoom-log-rotation): Remove. (earlyoom-service-type): Remove ‘rottlog-service-type’ extension. * gnu/services/networking.scm (%ntp-log-rotation): Remove. (ntp-service-type): Remove ‘rottlog-service-type’ extension. (openntpd-service-type): Likewise. (%connman-log-rotation): Remove. (connman-service-type): Remove ‘rottlog-service-type’ extension. (%hostapd-log-rotation): Remove. (hostapd-service-type): Remove ‘rottlog-service-type’ extension. (%pagekite-log-rotation): Remove. (pagekite-service-type): Remove ‘rottlog-service-type’ extension. (%yggdrasil-log-rotation): Remove. (yggdrasil-service-type): Remove ‘rottlog-service-type’ extension. (%ipfs-log-rotation): Remove. (ipfs-service-type): Remove ‘rottlog-service-type’ extension. (%keepalived-log-rotation): Remove. (keepalived-service-type): Remove ‘rottlog-service-type’ extension. * gnu/services/web.scm (%hpcguix-web-log-rotations): Remove. (hpcguix-web-service-type): Remove ‘rottlog-service-type’ extension. (%mumi-log-rotations): Remove. (mumi-service-type): Remove ‘rottlog-service-type’ extension. * doc/guix.texi (Log Rotation): Adjust text regarding which one is in ‘%base-services’. Change-Id: I8802d4c2337a1e08e3c084d6217f76527d7ee1fb
2025-01-08services: static-networking: Fail when devices don’t show up.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/71173>. * gnu/services/base.scm (network-set-up/linux): Define ‘max-set-up-duration’ and use it. * gnu/tests/networking.scm (%static-networking-with-nonexistent-device): New variable. (run-static-networking-failure-test): New procedure. (%test-static-networking-failure): New variable. Change-Id: Idba9b36750aa8c6368c8f6d1bc1358066f7432e4
2025-01-08services: static-networking: Run set-up/tear-down as a separate process.Ludovic Courtès
Running that code in PID 1 was fun but it’s not really beneficial and somewhat risky: risk of blocking, file descriptor leak, inability to reload Guile-Netlink in shepherd when it’s upgraded, and so on. This change runs set-up and tear-down as separate processes, which, for the price of one fork(1), buys us peace of mind. * gnu/services/base.scm (network-set-up/hurd, network-tear-down/hurd) (network-tear-down/linux): Use ‘program-file’ instead of ‘scheme-file’. (network-set-up/linux): Likewise, and remove #:blocking? argument to ‘wait-for-link’. Change-Id: Ia41479b50eab31ea40c67243fcb1cffe29ac874a
2024-12-25services: syslog: fix configuration file argument45mg
* gnu/services/base.scm (syslog-shepherd-service): Separate incorrectly combined arguments which resulted in an argument like "-f /etc/syslog.conf" being passed to syslogd, leading it to ignore the argument and execute without a configuration file. Effects of this included no log files being written, though the Shepherd service ran successfully. Ref: https://issues.guix.gnu.org/70677#4-lineno7 Change-Id: I3dbe00eabd4a10804e554c12e1466483c0b185b7 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-23services: syslog: Adjust service for rsyslog compatibility.Jean-Baptiste Note
* gnu/services/base.scm (syslog-shepherd-service): Change flag for designating configuration file. The long option is not compatible with rsyslog while the short is; switch to the short one. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-23services: syslog: Add extra-options argument to syslog service.Jean-Baptiste Note
* gnu/services/base.scm (<syslog-configuration>): Add extra-options field. (syslog-shepherd-service): Use it when running the service. * doc/guix.texi: Document it. Change-Id: I540d070b9a9678b45ec9fa28d6fdc761f9b3fd9a Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18services: pam: Allow extension of pam limits.Giacomo Leidi
* gnu/services/pam.scm (pam-limits-service-type): Allow extension of pam limits rules from users and services. Change-Id: I93a363d1a2887493d52ef3ae32fc9721f81ddfa8 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-15services: mingetty: Support waiting on shepherd services.Tomas Volf
For auto-login on systems with elogind, dbus-system needs to be started. This commit adds ability to express that ordering. * gnu/services/base.scm (<mingetty-configuration>): Add shepherd-requirement field. (mingetty-shepherd-service): Use it. * doc/guix.texi (Base Services)<mingetty-configuration>: Document it. Change-Id: Iedbdc4375180740379d561aa193d7c63350d2e7b Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2024-12-15services: mingetty: Rename misnamed accessors.Tomas Volf
Rename the accessors to ensure all start with `mingetty-configuration-' prefix. Some were named just `mingetty-$FIELD', instead of `mingetty-configuration-$FIELD'. The renaming *is* backwards compatible, since in the define-module's #:export argument the correct (`mingetty-configuration-$FIELD') were used already and thus the accessors were not accessible. * gnu/services/base.scm (<mingetty-configuration>): Rename accessors for auto-login, login-program, login-pause?, clear-on-logout?. Change-Id: I4557a82498805ade0b341feda9d33eccc305690f Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2024-12-15services: mingetty: Add additional configuration options.Tomas Volf
Not all aspects of mingetty were configurable, so this commit adds the additional configuration fields to support that. * gnu/services/base.scm (<mingetty-configuration>): Add delay, print-issue, print-hostname, nice, working-directory, root-directory fields. (mingetty-shepherd-service): Use the new fields. (define-module)<#:export>: Export the new accessors. * doc/guix.texi (Base Services)<mingetty-configuration>: Document the additional field. Change-Id: I4557a82498805ade0b341feda9d33eccc305690f
2024-11-11system: hurd: Add swap-services to hurd-default-essential-services.Janneke Nieuwenhuizen
* gnu/services/base.scm (swap-service-type): Do not include 'udev' requirement for the Hurd. Use system* with "swapon", "swapoff" for the Hurd. * gnu/system.scm (hurd-default-essential-services): Add swap-services. * gnu/services/base.scm (swap-service-type): Change-Id: I1d4d445c614921752dc84aa0dd6ff42cdbf62aa8
2024-11-03services: guix: Add access control to daemon socket.Reepca Russelstein
* gnu/services/base.scm (guix-configuration-socket-directory-{permissions,group,user}): New fields. (guix-shepherd-service): Use them. * doc/guix.texi (Base Services): Document them. Change-Id: I8f4c2e20392ced47c09812e62903c87cc0f4a97a Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-10-15services: nscd: When cross-compiling, Use (cross-libc target).Zheng Junjie
* gnu/services/base.scm (nscd-configuration)[glibc]: When cross-compiling, Use (cross-libc target). Change-Id: Ib219459b1ec28f7edfac075e70be3d61edf72d27 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-09-19services: file-system: Do not try to unmount /dev and /.Ludovic Courtès
Previously, when being stopped, the ‘user-file-systems’ service would attempt to unmount / and /dev, which was bound to fail. This was harmless, apart from a couple of lines in /var/log/messages, but it was wrong. * gnu/services/base.scm (file-system-shepherd-services)[user-unmount]: Remove “/” and “/dev” from the list of file systems subject to unmounting. Change-Id: Ieb68fe46c114909a64d54f885c94a9d7cd61f5e0
2024-09-09services: host-name: Use the host name as the running value.Ludovic Courtès
Previously, the “running value” of the ‘host-name’ service would be #<unspecified>. This change makes it more pleasing to the eye. * gnu/services/base.scm (host-name-service-type): ‘start’ returns NAME. Change-Id: I38b8320e43639b6623475871ca6fbad3a459eb59
2024-06-26services: guix: Default `channels' field to #f.Tomas Volf
In the absence of the /etc/guix/channels.scm file, %default-channels is used anyway. If user manually (or by extra-special-file) created the file, we should respect it. This commit therefore changes the default to #f, hopefully having zero impact on people not actively using the `channels' field. * gnu/services/base.scm (<guix-configuration>)[channels]: Set default to #f. Change-Id: I516c1735a037a153fabbebfc337051aaf0be2155 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-26services: Never throw when stopping mount-may-fail file systems.Ludovic Courtès
This is a followup to 7c27bd115b14afd142da7684cc349369965f9eab. * gnu/services/base.scm (file-system-shepherd-service): Catch 'system-error from ‘umount’ call when FILE-SYSTEM is marked as mount-may-fail. Change-Id: I2234f8da320b43089f4ee058cad8608ce9c078f8
2024-06-04services: base: Add optional delayed mount of file-systemsRichard Sent
Add a mechanism to only require mounting a subset of file-system entries during early Shepherd initialization. Any file-system with additional Shepherd service requirements (e.g. networking) is not required to provision 'file-systems. * gnu/services/base.scm (file-system-shepherd-service): Splice file-system-requirements into the Shepherd service requirement list. (file-system-shepherd-services): Provision 'file-system only when file system services without additional Shepherd requirements are started. * gnu/system/file-systems.scm (file-system): Add shepherd-requirements field to the file-system record. This field is used for adding additional Shepherd requirements to a file-system Shepherd service. * doc/guix.texi: Add documentation for file-system shepherd-requirements. Change-Id: If0392db03d48e8820aa53df1df482c12ec72e1a5 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-03services: nscd: Enable ‘passwd’ and ‘group’ caches by default.Ludovic Courtès
This allows users to specify NSS plugins such as LDAP via the ‘name-services’ field of <nscd-configuration>. Failing that, user code will dlopen whatever passwd/group plugins are listed in /etc/nsswitch.conf, which is likely to fail, typically because those are not in $LD_LIBRARY_PATH. * gnu/services/base.scm (%nscd-default-caches): Add ‘passwd’ and ‘group’ caches. Change-Id: I9c03346a1de2710685f7801eccd2e08007427f5d
2024-06-02services: nscd: ‘log-file’ defaults to #f.Ludovic Courtès
* gnu/services/base.scm (<nscd-configuration>)[log-file]: Default to #f. * doc/guix.texi (Base Services): Clarify documentation. Change-Id: Ia75914fc2665db13bef688d53659083a615ebef4
2024-05-05services: guix: Use Shepherd 0.10 API for actions.Ludovic Courtès
The ‘action’ method was deprecated in Shepherd 0.10.0. * gnu/services/base.scm (shepherd-set-http-proxy-action) (shepherd-discover-action): Use ‘perform-service-action’ instead of the now-deprecated ‘action’ method. Change-Id: Ibe1c79a44148596292c2c8907011ec787f8a9ddd
2024-05-04gnu: guix-configuration: Improve offload build-machines.Ian Eure
It’s currently difficult to programmatically add a build-machine, because the `service-extension' mechanism is the only facility which can do that. It relies on the `guix-service-type', ala: (service-extension guix-service-type (guix-extension (build-machines (list ...)))) ...but `guix-service-type' is already instantiated as part of `%base-services', and replacing it may lose other configuration, like substitute servers and authorized keys. Additionally, a default value of `#f' for the build-machines field requires guarding uses of the field with: (or (guix-build-machines config) '()) Changing the default to be the empty list avoids that. One can now add build-machines with code such as: (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (authorized-keys (cons %build-machine-key (guix-configuration-authorized-keys config))) (build-machines (cons #~(build-machine ...) (guix-configuration-build-machines config)))))) * gnu/services/base.scm (guix-configuration): Rename `guix-build-machines' to `guix-configuration-build-machines' and export it. Change the default from `#f' to the empty list. * gnu/services/base.scm (guix-activation): Update the build-machines test and reverse the conditions. Change-Id: I6780c6a5579fd9d4b4f22ee2b2bf7ba7a0454407 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-06services: guix: Gracefully handle dangling symlink for ‘machines.scm’.Ludovic Courtès
Previously, if /etc/guix/machines.scm was a dangling symlink, it would be kept (because ‘file-exists?’ would return #f) and thus the following ‘symlink’ call would throw with EEXIST. * gnu/services/base.scm (guix-machines-files-installation): Use ‘lstat’ rather than ‘file-exists?’. Change-Id: I07c7eed842dacabbd19ae2a17ac3e59cf26e46b2
2024-03-30Merge branch 'gnome-team'Liliana Marie Prikler
2024-03-22services: guix: Add ‘channels’ field.Antero Mejr
* doc/guix.texi (Base Services): Document 'guix-configuration-channels' field. (Invoking guix pull): Add cross-reference. * gnu/services/base.scm (install-channels-file): New procedure. (guix-configuration): Add channels field. (guix-activation): Use 'install-channels-file' procedure. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I4d89235bf0bc6dde69984138ccb894b48ace9d76
2024-03-21services: guix-publish: Use ‘make-systemd-constructor’ unconditionally.Ludovic Courtès
The #:lazy-start? parameter was added in the Shepherd 0.10.0, which is required since commit 477d4f7d241165b5a5fd315c27efd7803fad4a04. * gnu/services/base.scm (guix-publish-shepherd-service): Use ‘make-systemd-constructor’ unconditionally and pass #:lazy-start?. Change-Id: I95aa079732cd21e32091c7deea2ed2f1bc50f2f2
2024-01-07Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-01-05daemon: Change default ‘timeout’ and ‘max-silent-time’ values.Ludovic Courtès
Having a timeout seems generally preferable as it makes sure build slots are not kept busy for no good reason (few package builds, if any, are expected to exceed these values). * nix/libstore/globals.cc (Settings::Settings): Change ‘maxSilentTime’ and ‘buildTimeout’. * gnu/services/base.scm (<guix-configuration>)[max-silent-time] [timeout]: Change default values. * doc/guix.texi (Invoking guix-daemon, Base Services): Adjust accordingly. Change-Id: I25c50893f3f7fcca451b8f093d9d4d1a15fa58d8
2023-12-20Merge branch 'master' into gnome-teamLiliana Marie Prikler
2023-12-14services: guix: Allow gexps evaluating to a list of build-machines.Saku Laesvuori
* gnu/services/base.scm (guix-machines-files-installation): Handle machines being a mixed list of build-machines and lists of build-machines. * doc/guix.texi (Base Services): Document it. Change-Id: Ie404562ca0b564413233c3a624046da831893dc3 Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-12-03Merge branch 'master' into HEADLiliana Marie Prikler
Change-Id: I3f5d121162d98ef2ae61a62c4da3b0fd19d864e8
2023-12-02gnu: Use ‘libc-utf8-locales-for-target’.Janneke Nieuwenhuizen
* guix/packages.scm (%standard-patch-inputs): Use ‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’. * guix/self.scm (%packages): Likewise. * gnu/home/services/ssh.scm (file-join): Likewise * gnu/installer.scm (build-compiled-file): Likewise. * gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise. * gnu/packages/gnome.scm (libgweather4, tracker): Likewise. * gnu/packages/javascript.scm (js-mathjax): Likewise. * gnu/packages/package-management.scm (guix, flatpak): Likewise. * gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise. * gnu/packages/suckless.scm (svkbd): Likewise. * gnu/services.scm (cleanup-gexp): Likewise. * gnu/services/base.scm (guix-publish-shepherd-service): Likewise. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services) (guix-build-coordinator-agent-shepherd-services): Likewise. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services): (guix-data-service-shepherd-services) (nar-herder-shepherd-services) (bffe-shepherd-services): Likewise. * gnu/services/web.scm (anonip-shepherd-service) (mumi-shepherd-services): Likewise. * gnu/system/image.scm (system-disk-image, system-iso9660-image) (system-docker-image, system-tarball-image): Likewise. * gnu/system/install.scm (%installation-services): Likewise. * guix/profiles.scm (info-dir-file): Likewise. (ca-certificate-bundle, profile-derivation): Likewise. * guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise. * tests/pack.scm: Likewise. * tests/profiles.scm ("profile-derivation, cross-compilation"): Likewise. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374