summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2026-03-10services: Generalize alsa-configuration.Liliana Marie Prikler
* gnu/packages/sound.scm (alsa-pcm-configuration, alsa-ctl-configuration): New configuration records. (serialize-alsa-pcm-configuration, serialize-alsa-ctl-configuration): New variables. (<alsa-configuration>): Remove alsa-plugins and pulseaudio?. Add default-pcm and default-ctl. Rename extra-options to options. (alsa-config-file): Adjust accordingly. (alsa-servcice-type): Add compose and extend. (<pulseaudio-configuration>): Add alsa-lib. (pulseaudio-alsa-configuration): New procedure. (pulseaudio-service-type): Extend alsa-servcice-type.
2026-03-09gnu: Add soju-service-type.Giacomo Leidi
* gnu/services/messaging.scm (%default-soju-shepherd-requirement): New variable. (soju-ssl-certificate): New configuration record. (soju-database): New configuration record. (soju-configuration): New configuration record. (serialize-soju-configuration,soju-activation,soju-accounts, soju-shepherd-services): New procedures. (soju-service-type): New service. (serialize-ngircd-configuration): Reformat. (pounce-configuration): Reformat. * doc/guix.texi: Document the new soju service. * gnu/tests/messaging.scm: Test the new soju service. Change-Id: I6223ecac1aaaab76bd75461851ffe4cec0678118
2026-03-09gnu: Remove postgresql-service procedure.Andreas Enge
* gnu/services/databases.scm (postgresql-service): Delete variable. Change-Id: Iec27908b892eae666ea4c1b28a63a2d3d48b804d
2026-03-09gnu: Remove mysql-service procedure.Andreas Enge
* gnu/services/databases.scm (mysql-service): Delete variable. Change-Id: Idbf3c9e2d595722792231f2417f85927bf89330c
2026-03-07gnu: Add tuned-service-type.Giacomo Leidi
* gnu/services/linux.scm (tuned-configuration,tuned-settings,tuned-ppd-settings): New configuration records. (tuned-file-systems,tuned-activation,tuned-shepherd-services, tuned-kernel-modules): New procedures. (tuned-service-type): New service type. * doc/guix.texi: Add service documentation. Change-Id: I6c8d54c23175c2ea133d99965641c548fb1d6452
2026-03-08services: plasma-desktop: Enable kde-inotify-survey.Sughosha
* gnu/services/desktop.scm (plasma-polkit-settings): Add kde-inotify-survey. (plasma-dbus-service): Ditto. Change-Id: Ic4598dca4a8c109821b5de60d1b5bdb1d7f6f6bf
2026-03-05services: plasma-desktop: Enable plasma-thunderbolt.Sughosha
* gnu/services/desktop.scm (plasma-polkit-settings): Add bolt. (plasma-dbus-service): Ditto. Change-Id: I7d32a0053dfd2f472cdcfbab67e17307871a4824
2026-03-05services: plasma-desktop: Enable fwupd.Sughosha
* gnu/services/desktop.scm (plasma-polkit-settings): Add fwupd. (plasma-dbus-service): Ditto. Change-Id: Ibe5ffea441b8920694accd688401b5fed2c41784
2026-03-05services: plasma-desktop: Cleanup plasma-polkit-settings.Sughosha
* gnu/services/desktop.scm (plasma-polkit-service): Reorder. Change-Id: Icc0ae7aff52a567c8b7b8ad5e929828a8b4eafe2
2026-03-05services: plasma-desktop: Cleanup plasma-dbus-service.Sughosha
* gnu/services/desktop.scm (plasma-dbus-service): Reorder; remove kactivitymanagerd and kwallet. Change-Id: I304490c20006d60729fe7984a1c1b8c7d84f62fc
2026-03-04gnu: libvirt: Configure default libvirt network.Giacomo Leidi
* gnu/services/virtualization.scm (%libvirt-activation): Activate default libvirt network configuration file. * gnu/tests/virtualization.scm (run-libvirt-test): Drop network definition test and replace it with a test checking that the default network is inactive by default. Change-Id: I03b6314a390c6d93ebf886d7033867ff5cacad74
2026-03-04services: mollysocket: Fix mollysocket configuration.Lilah Tascheter
* gnu/services/messaging.scm (ms-format): Run string-map on label, not str/rhs. Change-Id: I07b6b90e4156b525aad1490a4165a3359bda8b3e Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #4435
2026-03-03services: readymedia: Allow relative paths to media directories.Sughosha
* gnu/services/upnp.scm (readymedia-activation): For home services, if the media directory paths are relative, create it in the user's home directory. * doc/guix.texi (Miscellaneous Services)[DLNA/UPnP Services]: Update doc. Change-Id: I39176320d6c33c56c5b80ad9e67e989ee41565da
2026-03-01gnu: services: Add gunicorn-service-type.Fabio Natali
* gnu/services/web.scm (<gunicorn-configuration>, <gunicorn-app>): New records. (unix-socket?, unix-socket-path, gunicorn-activation, gunicorn-shepherd-services): New procedures. (gunicorn-service-type): New variable. * doc/guix.texi (Web Services): Document the new service. Co-authored-by: Arun Isaac <arunisaac@systemreboot.net> Change-Id: I3aa970422e6a5d31158b798b1061e6928ad2160b Signed-off-by: jgart <jgart@dismail.de>
2026-03-01services: greetd: Fix Signal.Danny Milosavljevic
* gnu/services/base.scm (%greetd-pam-mount-rules): Remove noexec. Closes: guix/guix#5083 Change-Id: Iede81a8afecc8d7213e9eb101ac7eeec3bb9632b
2026-02-25services: Support list of strings for oci-container-configuration's entrypoint.Giacomo Leidi
Dockerfile's ENTRYPOINT statement supports also a list of strings. This patch implements this behavior for oci-container-configuration. * oci/services/containers.scm (string-or-list-of-strings?): New procedure. (oci-container-configuration)[entrypoint]: Change field type to maybe-string-or-list-of-strings. (oci-container-configuration->options): Use it. * doc/guix.texi: Document it. Change-Id: I1c94dec79c9f4b2324225810a7926be251bfd795 Reviewed-by: Owen T. Heisler <writer@owenh.net> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25services: Add gexp compiler for oci-image.Giacomo Leidi
This commit allows oci-image records to be directly compiled to tarballs file names when ungexeped, by means of a gexp compiler. It is supposed to make the usage of oci-images in gexp smoother. * oci/services/containers.scm (lower-manifest): Reformat and derive tarball name from the image reference. (lower-oci-image-state): Drop procedure and merge with lower-oci-image. (oci-image-compiler): Implement in terms of lower-oci-image. (oci-image-loader): Drop call to lower-oci-image and directly ungexp the oci-image record. Change-Id: I1755585a10294ad94c8025e7c35d454319174efc Reviewed-by: Owen T. Heisler <writer@owenh.net> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25gnu: rabbitmq-service-type: Extend profile-service-type.Mathieu Lirzin
* gnu/services/high-availability.scm (rabbitmq-service-type): Extend profile-service-type. Change-Id: I5946c7d00ad8dba2e11f7798d77b5fbb80d066ba Reviewed-by: Nguyễn Gia Phong <cnx@loang.net> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25services: pulseaudio: Use match-record-lambda.Liliana Marie Prikler
* gnu/packages/sound.scm (pulseaudio-etc): Reimplement in terms of match-record-lambda.
2026-02-23services: Add configuration action to miniflux-service-type.Rodion Goritskov
* gnu/services/web.scm (miniflux-shepherd-service): Add configuration action. * gnu/tests/web.scm (run-miniflux-test): Add configuration action check. Change-Id: I515653070cc0c39fcbe31fef19d8745a1a8d47cb Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-22services: readymedia: Run with a pid file.Sughosha
* gnu/services/upnp.scm (%readymedia-default-pid-directory): New variable. (%readymedia-pid-file): New procedure. (readymedia-shepherd-service)[start]: Start with the pid file. (readymedia-activation): Create the pid directory. * gnu/tests/upnp.scm (run-readymedia-test): Test the pid directory and file. Merges: https://codeberg.org/guix/guix/pulls/1007 Change-Id: I454a89d25afe0e9bb0414645b1e4594afdf89058 Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-02-22services: readymedia: Fix configurations.Sughosha
* gnu/services/upnp.scm (%readymedia-default-log-directory): Remove variable. (%readymedia-default-log-file): New procedure. (%readymedia-default-cache-directory): Turn it into a procedure. (<readymedia-configuration>)[log-directory]: Remove field. [log-file]: New field. [cache-directory]: Set to %readymedia-default-cache-directory. (readymedia-configuration->config-file): Remove "user" and "log_dir" fields. (readymedia-shepherd-service)[modules]: Add (shepherd support). [start]: Do not map the log-directory. For home services, do not wrap the program with least-authority-wrapper. (readymedia-activation): Do not create the log-directory. * gnu/home/services/upnp.scm (%readymedia-cache-file, %readymedia-cache-path, %readymedia-log-path): Remove variables. (run-readymedia-test): Use the procedures properly. Do not test the log directory. Test the log file. * doc/guix.texi (Miscellaneous Services)[DLNA/UPnP Services]: Update doc. Change-Id: I97d84b5287c374ddb26a495f20a36f986b0c142d Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-02-11gnu: postgresql-role: Avoid leaking passwords through kernel's command line ↵Giacomo Leidi
facility. The implementation of postgresql-role's password up until now relied on spawining a subshell reading the password file and passing its content via command line to a psql process which would create users and set passwords. This allowed a (fast) attacker to eavesdrop, via the kernel command line facility, the password while they were read, without having the permissions required for reading the password file. This new implementation reads passwords directly from password files into the Guile process, temporarily stores them in query files living in a memory backed file system and deletes the query files after executing them. It also makes sure to turn off logging of commands for the duration of the password setting transaction, so passwords don't get leaked to system logs through misconfiguration. * gnu/services/databases.scm (%postgresql-role-runtime-dir): New variable. (postgresql-create-roles): Rework the way passwords are set to avoid leaking them through subshells and command lines. (%postgresql-role-file-systems): New variable. (postgresql-role-service-type): Add file-system-service-type extension point. Change-Id: I52406d1d24f5d163081b5c21d3e1760fc0b67a1e
2026-02-10services: Fix logging for jami-service-type.Maxim Cournoyer
Its default behavior changed and it no longer logs to syslog by default; update to log to /var/log/jami.log instead. * gnu/services/telephony.scm (jami-configuration->command-line-arguments): Drop /dev/log mapping. Add /var/log/jami.log mapping. Always add --console argument. (jami-shepherd-services): Conditionally add #:log-file argument; simplify usernames logic a bit. * gnu/services/telephony.scm (jami-configuration): Update doc. * doc/guix.texi (Telephony Services): Likewise. Change-Id: Ia2819866c84db4cba92fad52dfd0a74acdc887fc
2026-02-09gnu: services: Add xandikos-service-type.Wilko Meyer
* gnu/services/dav.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add file. * doc/guix.texi (DAV Services): Document the service. Change-Id: I5345efd579f9e527eb8798397b52bf1b9b4cab56
2026-02-08services: web: Add go-webdav.Sören Tempel
* gnu/services/web.scm (go-webdav-service-type): New service. (go-webdav-account-service): New variable. (go-webdav-shepherd-service): New procedures. * gnu/tests/web.scm (%test-go-webdav): Add tests for the service. * doc/guix.texi (Web Services): Document it. Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2026-02-06services: virtual-build-machine: Fix typo in GC job configuration.Sergey Trofimov
* gnu/services/virtualization.scm (gc-service-type): Use make-timer-destructor as stop procedure. Change-Id: I94b2cac0b03cbf1b5add7e5554567907a982c58e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-06services: static-networking: Add ‘scope’ field to <network-route>.Ludovic Courtès
* gnu/services/base.scm (assert-network-route-scope): New procedure. (<network-route>)[scope]: New field. (network-set-up/linux)[route-scope->constant]: New procedure. Use it to pass #:scope to ‘route-add’. * doc/guix.texi (Networking Setup): Document it. Fixes: guix/guix#4175 Reported-by: Christopher Baines <mail@cbaines.net> Change-Id: I24399eca6e691d63fa3d01be564060a3d693d650 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5507
2026-02-06services: static-networking: Tweak error messages.Ludovic Courtès
* gnu/services/base.scm (assert-network-link-mac-address): Change error message string to conform to standards. (assert-network-link-type): Change to ‘define-with-syntax-properties’ since previously it would reject a non-literal symbol. Adjust message string. Change-Id: I0a8b9d7512ca7567f9d60eb15ad6fb4e05020e48 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-01-31services: pcscd: Add polkit extension.Rutherther
Extend polkit to support new polkit rule used in pcsc-lite. * gnu/services/security-token.scm (pcscd-service-type): Extend polkit. Change-Id: Ib14f6f58b7ce0383e091f23257b379af0f78e928 Fixes: #5940 Signed-off-by: Hilton Chain <hako@ultrarare.space> Modified-by: Hilton Chain <hako@ultrarare.space> Merges: #5942
2026-01-27services: Add endlessh-service-type.Clombrong
* docs/guix.texi: Document EndleSSH service and configuration. * gnu/services/ssh.scm: New service. * gnu/services/ssh.scm: Define shepherd service. Merges: https://codeberg.org/guix/guix/pulls/5910 Co-Authored-By: Giacomo Leidi <therewasa@fishinthecalculator.me> Change-Id: Ief4520b536276b88f2e5027ef0897bf84b2835df Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-01-25services: gdm: Include system profile in XDG_DATA_DIRS.Hilton Chain
* gnu/services/xorg.scm (gdm-shepherd-service) [start] <#:environment-variables>: Add system profile to XDG_DATA_DIRS so that we can use fonts installed in it. Change-Id: Idd11fe0a5d5d57db5459a5c2a9471d1bf640a6ef
2026-01-25services: guix: Pretty print /etc/guix/channels.scm.Hilton Chain
* gnu/services/base.scm (install-channels-file): Pretty print channels.scm. Change-Id: I692758a4f0a3f6e57b40c95a487c7c843245fe6c
2026-01-23gnu: Break circular module cycle.Ian Eure
Commit a9462997d743e4cb4edd557d7ffeeb98048bb4de added the (gnu services desktop) module to (gnu services xorg). It’s not actually used, and causes a module cycle. Remove it. * gnu/services/xorg.scm: Remove (gnu services desktop) module. Change-Id: Id16a3bf149b1c924578cfc8c486dd96fa92674a3
2026-01-22Merge branch 'version-1.5.0'Rutherther
Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
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>