summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2026-01-19services: <greetd-terminal-configuration>: Default initial-session-command ↵Danny Milosavljevic
to (greetd-user-session). * gnu/services/base.scm (<greetd-terminal-configuration>)[initial-session-command]: Default to (greetd-user-session).
2026-01-19gnu: %desktop-services: Switch to GDM on 64-bit systems.Rutherther
* gnu/services/desktop.scm (desktop-services-for-system): Use gdm on all 64-bit systems. * gnu/services/xorg.scm (set-xorg-configuration): Adapt to desktop-services-for-system change. * gnu/system/examples/desktop.tmpl: Determine the support of Gnome by checking for supported package. Fixes: #5388 Change-Id: I0d512a7c31188cea0335e66f00a6d65ae59d09a4 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14install: Register agetty on primary console on AArch64.Rutherther
This adds the possibility to parse /proc/consoles to find a primary console. Then, on AArch64 this is used in the installation image. On AArch64, the boot usually happens with chosen device tree that contains the serial console. On x86_64, this does not happen so often, so we keep the installation iso minimal there. The primary console is chosen, but there is a fallback to any non-virtual one. Virtual console (/dev/tty0) is skipped, because that one can point to any console, like /dev/tty1 and so on. So it's not safe to register agetty on it. * gnu/build/linux-boot.scm (read-linux-consoles): New variable. * gnu/services/base.scm (default-serial-console): Use primary console as fallback. * gnu/system/install.scm (%installation-services): Add agetty tty for consoles. Change-Id: Iae01f7bc85b5ffdef2e52b1d0710889915b0f54a Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-09services: radicale: add shepherd configuration actionSören Tempel
* gnu/services/mail.scm (radicale-shepherd-service): add configuration action. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-01-09services: configuration: Generalize 'list-of-packages?'Sergey Trofimov
* gnu/services/configuration.scm (list-of-packages?): Allow as well tuples of a package and its output. * gnu/home/services/sway.scm (list-of-packages): Remove duplicate. Change-Id: I42622a29ac808c76928e9056dee9330d5e1b3f39 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5470
2026-01-08services: Add opensnitch-service.Danny Milosavljevic
* gnu/services/opensnitch.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add reference to it. * doc/guix.texi (Miscellaneous Services, Security): Document it. * gnu/tests/security.scm (%test-opensnitch): New variable. Change-Id: I63d1b6636b3aaecf399664ec97383d82ff1391d1
2026-01-06services: Add luanti-service-type.Maxim Cournoyer
* gnu/services/games.scm (luanti-configuration): New variable. (%luanti-account): Likewise. (luanti-activation): New procedure. (luanti-shepherd-service): Likewise. (luanti-service-type): New variable. * gnu/tests/games.scm: New file. Change-Id: I65a1dcf832fa8add9c9d278d82bab91ca3eef086 Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-01-01gnu: services: Fix xorg configuration merging.Ian Eure
A bug in #21 causes the default configuration to be omitted from the xorg merging process. This can cause users not using set-xorg-configuration or service extensions to end up with a broken configuration. Fixes #5267. * tests/services/xorg.scm: Add a regression test. * gnu/services/xorg.scm (handle-xorg-configuration): Include the xorg-configuration record from config in merges. Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-12-30Revert "services/configuration: Fix case where sub-documentation is ↵Maxim Cournoyer
nonexistent." This reverts commit 8b6e9acc268501223a231d50932192f6bb69d34d. Fixes: <https://issues.guix.gnu.org/79578>
2025-12-26gnu: Merge xorg configurations when extending.Ian Eure
Configuration for xorg is embedded in the various display-manager configuration records, and extension support is factored out into the `handle-xorg-configuration' macro. However, the extension mechanism replaces the existing xorg-configuration with the supplied one, making it impossible to compose configuration from multiple sources. This patch adds a procedure to merge two xorg-configuration records, and calls it within handle-xorg-configuration, allowing the config to be built piecemeal. * gnu/services/xorg.scm (merge-xorg-configurations): New variable. (handle-xorg-configuration): Merge xorg configs. Change-Id: I20e9db911eef5d4efe98fdf382f3084e4defc1ba Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-12-26services: greetd: Create runfiles in a tmpfs.Luca Matei Pintilie
Greetd's initial-session (i.e. auto-login) functionality requires runfiles to be deleted on shutdown. Use a tmpfs to ensure said runfiles do not linger. * gnu/services/base.scm (make-greetd-terminal-configuration-file): Add “runfile” to configuration. (%greetd-file-systems): Add a tmpfs for “/run/greetd/runfiles”. Change-Id: I07319d5d8bdb1e18fb0074b67d5c9cb9fb49b04a Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-12-26services: cuirass-remote-worker: Disable JIT on AArch64.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Pass #:environment-variables to ‘make-forkexec-constructor’. Fixes: guix/guix#5052 Change-Id: Ibbf5aae9c6e62983c8e7f2eda310f68aef2edc8b Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5053
2025-12-22services: xorg: Return only supported packages in %default-xorg-modules.Rutherther
The xorg modules are used inside of services that's thunked. So we can make them depend on the %current-system. * gnu/services/xorg.scm (default-xorg-modules): New variable. (%default-xorg-modules): Return result of (default-xorg-modules). Change-Id: I10f722e52d598ce3e83ef3f200b3bd953bc08e17 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22services: Modernize redis service.Ashvith Shetty
* gnu/services/databases.scm (redis-configuration): Rewrite using `define-configuration'. (redis-shepherd-service): Honor it. * doc/guix.texi (Database Services) <redis>: Regenerate documentation. Change-Id: I5b99822ca3d8d23fb5133497d00eada0336d0c65 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #2158
2025-12-20services: shared-cache: Require user-file-systems.Rutherther
Newly user-file-systems should be required by services that do operations with mounts. Change-Id: Ib0438bb2e783e1d7131dcea6a8c166e83850de81 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20services: file-systems: Reverse order of unmounting manual mounts.Dariqq
* gnu/services/base.scm (file-system-shepherd-services): Reverse order of mount-points in service 'user-file-systems. Change-Id: I68df0c22bc6bacdc866b9adf62e7059f20e5842f Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20services: file-systems: Make user-file-systems depend on file-systems.Dariqq
Previously 'user-file-systems depended only on 'file-systems without any requirements. This inverts the logic to have file-systems <- user-file-systems <- user-processes to ensure that all user mounts are already unmounted when shepherd managed file systems get unmounted. Fixes: guix/guix#4445 Fixes: guix/guix#1703 * gnu/services/base.scm (file-system-shepherd-services): Remove requirement of 'file-systems on 'user-file-systems. Add dependency of 'user-file-systems on 'file-systems. (file-system-service-type): Add 'user-file-systems to user-processes extension. Change-Id: I9d89f682fb4b4673fa135d17b2b188788b9f8db1 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20services: xfce: Allow empty passwords in screenlocker.Rutherther
* gnu/services/desktop.scm (xfce-desktop-configuration): Add allow-empty-passwords? field. (xfce-pam-services): Respect it. Change-Id: Idd54b6016b5412aacdfbc134bc57de30394a77ad Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-19services: nscd: Cause PID 1 to drop nscd database mappings on shutdown.Ludovic Courtès
Partly fixes guix/guix#4269. Fixes a bug whereby shepherd (PID 1) could retain memory mappings for /var/run/nscd/dbXXX, which are created by glibc’s NSS from database file descriptors sent by nscd. Those mappings could then prevent ‘root-file-system’ from re-mounting the root file system as read-write. This change causes PID 1 to drop these mappings. PID 1 typically calls libc database functions such as ‘getgr’ when dealing with AF_UNIX endpoints for socket-activated services, to look up the socket’s owner and group. This is where the bug would manifest. The regression may have been introduced by 85ac164c41fc4c93d3cb2a5d3321c63598c2855f, which caused nscd to handle the password and group databases. * gnu/services/base.scm (nscd-shepherd-service): In ‘stop’ procedure, call ‘getpw’, ‘getgr’, and ‘getaddrinfo’. * gnu/tests/base.scm (run-root-unmount-test) <"open libc NSS database">: New test. (%test-root-unmount): Add #:imported-modules. Change-Id: I197cc8c82165c631f857415898137412ce9bd439 Reported-by: Rutherther <rutherther@ditigal.xyz> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #4828
2025-12-17gnu: ipfs-configuration: Update deprecated default value.Andreas Enge
* gnu/services/networking.scm (<ipfs-configuration>): Replace go-ipfs by kubo. Change-Id: Iba127e5e06e00dd7bb1ff5901fdfa9b2ff075e9d
2025-12-13services: postgres: Return #f on stop.Rutherther
Shepherd expects #f to know the service has stopped. * gnu/services/databases.scm (postgresql-shepherd-service): Return #f on stop. Change-Id: Ie5c45efc7eef75c325ddfd0ef197b306c7b60e5b Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-11services: oci: Fix oci-image value field handling.Owen T. Heisler
* gnu/services/containers.scm (lower-oci-image-state, oci-lowerable-image?): Remove support for gexps and correctly lower file-like objects. * doc/guix.texi: Remove gexp from oci-image value field description. Fixes: guix/guix#3818 Change-Id: Ib812d65b32dd68f8572fcb371ab4521d22e5336c Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #3819
2025-12-03services: hurd-vm: Support persistent images again.Ludovic Courtès
Fixes a regression introduced in bab6434f5855b92631615fdd8a2d2a225da28359 whereby following the example from the manual regarding non-volatile images would no longer work. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): Pass ‘image’ to ‘system-image’ only if it’s an image. * doc/guix.texi (Virtualization Services): Explicitly say that the ‘image’ field can contain a file name. Remove use of ‘const’ for the ‘image’ field in persistent image example and adjust text. Fixes: guix/guix#4130 Reported-by: Maxim Cournoyer <maxim@guixotic.coop> Change-Id: I1a81ce27fb45978a681310b8a8788ab671b3edf8
2025-12-03Update Giacomo's email address.Giacomo Leidi
The change was automated via: git grep -l goodoldpaul@autistici.org | xargs sed -i 's/goodoldpaul@autistici.org/therewasa@fishinthecalculator.me/g' * .mailmap: New entry. Change-Id: I1629388334695d221647afe6a14faf61af5fe0d6 Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-11-29services: hurd-vm: Add machine argument for qemu for 64 bit images.Yelninei
Fixes issues when memory is >= 3584. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): When type is 'hurd64-qcow2 add -M q35 to qemu arguments. Change-Id: I58ea603faad545294aad52b71aac82c922fd9b96 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-21gnu: Remove lsh-service-type.Andreas Enge
* gnu/services/ssh.scm (<lsh-configuration>, %yarrow-seed, lsh-initialization, lsh-activation, lsh-shepherd-service, lsh-pam-services, lsh-service-type): Delete variables. * doc/guix.texi: Remove lsh-service-type documentation. Change-Id: I18377a111c10ec6f6d362fadabc64cb66a2b122d
2025-11-21gnu: Remove lsh-service.Andreas Enge
* gnu/services/ssh.scm (lsh-service): Delete variable. Change-Id: I67589ddda78d5bd6473c7ed0a23c001ee772180f
2025-11-16gnu: Add autofs-service-type.Ian Eure
* gnu/services/nfs.scm (autofs-service-type): New variable. (<autofs-configuration>): New record. (<autofs-indirect-map>): New record. (<autofs-map-entry>): New record. Change-Id: I4ed1862772001470d1214c3061a306440b0d775b
2025-11-12gnu: services: Add mollysocket service.Lilah Tascheter
* gnu/services/messaging.scm (ms-format,ms-serialize-string, ms-serialize-integer, ms-serialize-boolean, ms-serialize-list-of-strings, mollysocket-shepherd-service, mollysocket-account-service, mollysocket-activation-service): New procedures. (mollysocket-configuration): New configuration. (mollysocket-service-type): New variable. * doc/guix.texi (Messaging Services)[Mollysocket Service]: New section. Change-Id: I87d57b69a6d8fa8841a95add084aa383385de4c7
2025-11-10gnu: Fix patchwork service test.Christopher Baines
* gnu/packages/patchutils.scm (patchwork):[arguments]: Write version.txt, tweak some indentation, patch the STATICFILES_DIRS entry. [propagated-inputs]: Add python-tzdata. * gnu/services/web.scm (patchwork-settings-module-compiler): Don't set STATIC_ROOT on debug, as this clashes with STATICFILES_DIRS. (patchwork-django-admin-gexp): Fix. (patchwork-shepherd-services): Workaround issue referencing random-token. * gnu/tests/web.scm (patchwork-initial-database-setup-service): Don't use primitive-fork, as this doesn't work with newer shepherds. (run-patchwork-test): Check the setup runs. Change-Id: I7dfeb816b4f6c9070358d433fb7ca8faa1fbfd2a
2025-11-09services: opensmtd: Add back option to log to syslog.Dariqq
The option for syslog logging was removed in 6036f1f3053bc9b4f0411b5e8aeaab5bd7f4ec7b. * gnu/services/mail.scm (opensmtpd-shepherd-service): When log-file is #f daemonize and set the pid-file. Change-Id: I356f4ccacc473def35708c114947788d485d058b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-07gnu: Add iio-sensor-proxy-service-type.dan
* gnu/services/desktop.scm (iio-sensor-proxy-configuration) (iio-sensor-proxy-shepherd-service, iio-sensor-proxy-service-type): New variables. * doc/guix.texi (Desktop Services): Document iio-sensor-proxy-service-type. Change-Id: I0c3d7164efcc499e4b785fd1f994c68a971ebdbd Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-11-02services: gitile: Add git-owner-validation? configuration.Nguyễn Gia Phong
* gnu/services/version-control.scm (gitile-configuration): Add git-owner-validation? field. * doc/guix.text (Version Control Services): Document it. Change-Id: I7d35e66e512fcaae25a5eac138b0fb2437a7c70c
2025-11-02services: git-http-nginx-location-configuration: Add gitconfig.Evgeny Pisemsky
* gnu/services/version-control.scm (git-http-nginx-location-configuration): Specify a global gitconfig that marks git-root as a safe directory. Fixes: guix/guix#3649 Change-Id: I503cd05e3247a71a4bd07df49c276e04d3a43a81 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2025-10-25services: getmail: Correct deprecated package.Andreas Enge
* gnu/services/getmail.scm (getmail-configuration)[package]: Replace getmail by getmail6. Change-Id: I53389da5afca7684275e6d7e6dae3d71d115c71d
2025-10-25tests: nar-herder: Test the control port.Christopher Baines
* gnu/services/guix.scm (nar-herder-shepherd-services): Add missing variables. * gnu/tests/guix.scm (%nar-herder-os): Have the control server listen on all interfaces. (run-nar-herder-test): Test connecting to the control server. Change-Id: I40949e8adaf0c6491ee56c59d611395a639d497b
2025-10-25services: nar-herder: Fix the control options.Christopher Baines
* gnu/services/guix.scm (nar-herder-shepherd-services): Fix the control server options. Change-Id: Iae17300f7ae6dffb0905936389b49032e763c401
2025-10-25services: nar-herder: Add storage-minimum-free-space and extra-options.Christopher Baines
Also export the control-host and control-port accessors. * gnu/services/guix.scm (<nar-herder-configuration>): Add storage-minimum-free-space and extra-options fields. (nar-herder-shepherd-services): Use these. Change-Id: Ie03b5c2ffd0daf295ebf51a1998ae01d5f0f4ef6
2025-10-24services: forgejo-runner: Add ‘log-file’ option.Romain GARBAGE
* gnu/services/ci.scm (<forgejo-runner-configuration>) [log-file]: New field. (forgejo-runner-shepherd-service): Use new field. * doc/guix.texi (Continuous Integration): Add documentation. Change-Id: Ie03e6d4b9b4f2c1cad0e9cd20032fca5ae4a4410 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-24services: herd: Remove ‘load-services/safe’.Ludovic Courtès
This is a followup to 95731b4ef1991f5b85aa9ec9d4fb97c006bec65d. * gnu/services/herd.scm (load-services/safe): Remove. * guix/scripts/system/reconfigure.scm (upgrade-services-program): Use ‘load-services’. Change-Id: Ie5ab99e69e2d7c1934fddd37794c07e6e07489a3
2025-10-24services: herd: Use the non-deprecated form of ‘register-services’.Ludovic Courtès
Passing a rest list to ‘register-services’ is deprecated since version 0.10.0 of the Shepherd. * gnu/services/herd.scm (load-services): Pass a list to ‘register-services’. Change-Id: Id6325259aed86d02510d4c741c0cd41c4566d3c8
2025-10-23services: unbound: Remove dns from provision.Evgeny Pisemsky
Fixes <https://issues.guix.gnu.org/76301>. The ‘dns’ provision collides with that of Knot. * gnu/services/dns.scm (unbound-shepherd-service): Remove dns from provision. Change-Id: Ice774a9a338416e865dbc4d26a8f37243f084a35 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-23services: nar-herder: Add control server options.Christopher Baines
* gnu/services/guix.scm (<nar-herder-configuration>): Add control host and control port fields. (nar-herder-shepherd-services): Use them. * doc/guix.texi (Guix Services): Document them. Change-Id: Ie738fb30302496d2ec530ca3b5c8b0628fdd4c05
2025-10-21services: guix: Populate /etc/subgid so guix-daemon can map the “kvm” GID.Ludovic Courtès
* gnu/services/base.scm (guix-activation): Add a line for ‘guix-daemon’ in /etc/subgid. (guix-shepherd-services): Add /run/privileged/bin to ‘PATH’. Change-Id: Ic103d86986ce2ace194b0a4296a00278bf0617eb
2025-10-21services: guix: Preserve ‘guix-daemon’ user supplementary groups.Ludovic Courtès
When running ‘guix-daemon’ unprivileged, supplementary groups such as “kvm” were dropped by ‘run-with-writable-store’. * gnu/services/base.scm (run-with-writable-store): Use ‘read-group’ to determine the list of supplementary groups for ‘user’ and pass that to ‘setgroups’. Change-Id: I21cc546a91a1a24cc94cafb44fa93e088f8673a7
2025-10-17gnu: services/desktop.scm: Remove reference to (gnu packages kde-frameworks).Sughosha
* gnu/services/desktop.scm: Remove reference to (gnu packages kde-frameworks) module. Change-Id: I3a8fa749af7b6141fe09609da32914e6f57fb70d
2025-10-17gnu: qca, qca-qt6: Move to kde-frameworks.scm.Sughosha
* gnu/packages/kde.scm: Remove file. * gnu/local.mk: Deregister it. * po/packages/POTFILES.in: Ditto. * gnu/packages/kde-frameworks.scm (qca): New variable. (qca-qt6): Ditto. * gnu/packages/geo.scm: Replace (gnu packages kde) with (gnu packages kde-frameworks). * gnu/packages/messaging.scm: Ditto. * gnu/packages/web.scm: Ditto. * gnu/packages/irc.scm: Remove reference to (gnu packages kde) module. * gnu/packages/kde-education.scm: Ditto. * gnu/packages/kde-games.scm: Ditto. * gnu/packages/kde-graphics.scm: Ditto. * gnu/packages/kde-internet.scm: Ditto. * gnu/packages/kde-office.scm: Ditto. * gnu/packages/kde-pim.scm: Ditto. * gnu/packages/kde-plasma.scm: Ditto. * gnu/packages/kde-systemtools.scm: Ditto. * gnu/packages/kde-utils.scm: Ditto. * gnu/services/desktop.scm: Ditto. Change-Id: Ib632bc46588a2400c61fd549389001ff367c0d66
2025-10-16services: cuirass: Start ‘cuirass register’ eagerly.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-shepherd-service): Pass #:lazy-start?. Change-Id: Ib91c82e74ce9c80616a3de693d858939e670a03d
2025-10-16services: cuirass: Validate specifications at build time.Ludovic Courtès
This ensures problems in the spec are caught before the system is instantiated. * gnu/services/cuirass.scm (cuirass-configuration->specification-file): New procedure. (cuirass-shepherd-service): Use it instead of ‘scheme-file’. Change-Id: I90187ed4ed1a51958159741a55b6dc635c97312a
2025-10-11services/base: Only remount read-write if needed in run-with-writable-store.Maxim Cournoyer
* gnu/services/base.scm (run-with-writable-store): Make it a no-op when the store is already writable (useful for testing). Change-Id: If598638e9d3eeac242c265cba77f27e4a15f8d9b