summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2026-04-07services: redis: Add prefix `redis-`.Ashvith Shetty
* gnu/services/databases.scm (maybe-string): Add prefix. (serialize-field): Rename to `redis-serialize-field`, remove gexp. (redis-serialize-package): Add variable. (serialize-string): Rename to `redis-serialize-string`. (serialize-number): Rename to `redis-serialize-number`. (redis-configuration): Add prefix. * doc/guix.texi (Database Services) <redis>: Regenerate documentation. Merges: https://codeberg.org/guix/guix/pulls/6850 Change-Id: Iccbbb7108f8211b31769638ef885e485bab0ebc3 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-04-07services: nginx: Fix ‘stop’ in cases where a custom config file is passed.Ludovic Courtès
Previously, when the ‘file’ field of ‘nginx-configuration’ was true, the PID file would be unknown; thus, the ‘start’ method would return #t and the ‘stop’ method would eventually fail with a type error because it would receive #t instead of a process. This fixes it by changing ‘stop’ to invoke “nginx -s stop” when the service’s value is not a process. * gnu/services/web.scm (nginx-shepherd-service): In ‘stop’, change to invoke “nginx -s stop” when ‘value’ is not a process. Fixes: guix/guix#7061 Reported-by: Dan Littlewood Change-Id: I20ff065ecd2c64e5fc98f59c25d91b300bc7b4cd Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7543
2026-04-04services: Add gardenhostd-service-type.Noé Lopez
* gnu/services/desktop.scm (gardenhostd-service-type) (gardenhostd-configuration): New variables. * doc/guix.texi (Desktop Services): Document it. Change-Id: Ied926c34b620cc8032a0b121c7419644746e2ce9 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-04services: package-database: Run ‘guix locate’ without root privileges.Ludovic Courtès
* gnu/services/admin.scm (%package-database-file) (%package-database-accounts, %package-database-activation): New variables. (package-database-shepherd-services): Pass explicit ‘--database’ flag to ‘guix locate’. Pass #:user and #:group to ‘command’. Pass #:log-file. (package-database-service-type): Extend ‘activation-service-type’ and ‘account-service-type’. Change-Id: Ifbf65e004766d049d99a16e163339ac168c1f73c Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7527
2026-04-03services: wireguard: Export wireguard-configuration-file.Tomas Volf
When you want to invoke wg-quick yourself, for example from a script, this procedure is useful to produce the configuration file for it. * gnu/services/vpn.scm (define-module)<#:export>: Add wireguard-configuration-file. Change-Id: Ifab8a9d731de19d2943517bf18c156a56fea4cca Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-02services: cat-avatar-generator: Fix default cache directory.Evgeny Pisemsky
* gnu/services/web.scm (cat-avatar-generator-service): Append slash to default cache directory. * doc/guix.texi (PHP-FPM)<cat-avatar-generator-service>: Likewise. Mention requirements. Change-Id: Idd46deca135bf37133b46bee3ba535d9bedf9258 Merges: https://codeberg.org/guix/guix/pulls/5189 Reviewed-by: Yan Abu Arab <yanabuarab@gmail.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-03-29gnu: Add collectd-service-type.Ian Eure
* gnu/services/monitoring.scm: (collectd-plugin-generic, collectd-plugin-generic?, collectd-plugin-generic-load-plugin?, collectd-plugin-generic-name, collectd-plugin-generic-options, collectd-plugin-python, collectd-plugin-python?, collectd-plugin-python-load-plugin?, collectd-plugin-python-type-databases, collectd-plugin-python-type-packages, collectd-plugin-python-module-paths, collectd-plugin-python-log-traces?, collectd-plugin-python-log-interactive?, collectd-plugin-python-import, collectd-plugin-python-module, collectd-plugin?, %collectd-default-type-database, %collectd-pid-file, collectd-configuration, collectd-configuration?, collectd-configuration-collectd, collectd-configuration-base-directory, collectd-configuration-auto-load-plugin?, collectd-configuration-collect-internal-stats?, collectd-configuration-type-databases, collectd-configuration-interval, collectd-configuration-max-read-interval, collectd-configuration-timeout, collectd-configuration-read-threads, collectd-configuration-write-threads, collectd-configuration-write-queue-limit-high, collectd-configuration-write-queue-limit-low, collectd-configuration-host-name, collectd-configuration-fully-qualified-domain-name-lookup?, collectd-configuration-plugins, collectd-service-type): New variable. * doc/guix.texi (Monitoring Services): Document it. Change-Id: I18d581292979e85603e679b9441be3eeb1856949
2026-03-29services: web: Add sogogi service.Sören Tempel
* gnu/services/web.scm (sogogi-service-type): New services. (sogogi-serialize-section, sogogi-serialize-field) (sogogi-serialize-string, sogogi-serialize-list-of-strings) (sogogi-serialize-sogogi-user, sogogi-serialize-sogogi-location) (sogogi-serialize-list-of-sogogi-user): New procedures. (sogogi-user, sogogi-location) (sogogi-configuration): New record types. (sogogi-account-service): New variable. (sogogi-config-file, sogogi-shepherd-service): New procedures. * gnu/tests/web.scm (%test-sogogi): Add tests for the service. * doc/guix.texi (Web Services): Document it. Change-Id: I5cc6dd84d6c7c8d5d13b685853b19c5d433ed7e5
2026-03-20services, tests: Refer to inherited field values where applicable.Ludovic Courtès
* gnu/machine/hetzner.scm (operating-system-authorize): Refer to ‘services’ instead of calling ‘operating-system-user-services’. * gnu/services/virtualization.scm (secret-service-operating-system): Likewise. * gnu/tests.scm (operating-system-with-console-syslog): Likewise. * gnu/tests/avahi.scm (%avahi-os): Likewise. * gnu/tests/base.scm (%test-guix-daemon-unprivileged): Likewise. * gnu/tests/nfs.scm (%nfs-os): Likewise. (run-nfs-full-test): Likewise. * gnu/system/vm.scm (virtualized-operating-system): Refer to ‘initrd-modules’ instead of calling ‘operating-system-initrd-modules’. Change-Id: I00c5f5c1e171b174bf0ca709b2dbd13a2fe161b5
2026-03-19services: dbus: Add rtkit service.陈功
* gnu/services/dbus.scm (rtkit-service-type): New variable. (rtkit-configuration): New record. Change-Id: I5078cb5032824c7799e7d26962911bbc67527562 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-14services: apcupsd-event-handlers: Fix G-expressions.Tomas Volf
There was one level of parentheses too much, leading to errors when the script was invoked due to trying to apply e.g., 0 or #t. So either use begin, or strip one level, as appropriate. * gnu/services/power.scm (apcupsd-event-handlers): Fix all G-expressions. Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-03-14services: plasma-desktop: Enable udev configurations.Sughosha
* gnu/services/desktop.scm (plasma-udev-configurations): New variable. (plasma-desktop-service-type): Extend udev-service-type with it. Change-Id: Ifcf08c731b1173c9c811b22744072538e4df7e36
2026-03-14services: plasma-desktop: Adjust indentation.Sughosha
* gnu/services/desktop.scm (plasma-polkit-settings): Reindent comments. (plasma-dbus-service): Ditto. Change-Id: I67677e34732faf3aa0954f183562a0fc210b5fcd
2026-03-11services: Add fossil-service-type.Nguyễn Gia Phong
* gnu/services/version-control.scm (fossil-service-type, fossil-configuration): New public variables. * gnu/tests/version-control.scm (%test-fossil): Add system tests. * doc/guix.texi (Version Control Services): Add Fossil documentation. Change-Id: I84e09fe8c11e161ed7c4bdba42b0ae38ef4c2096 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-11services: Add and use shepherd-signal-action.Yelninei
* gnu/services/shepherd.scm (shepherd-signal-action): New procedure. * gnu/services/audio.scm (mpd-shepherd-service): Use it for actions. * gnu/services/base.scm (syslog-shepherd-service): * gnu/services/base.scm (dnsmasq-shepherd-service): * gnu/services/file-sharing.scm (transmission-daemon-shepherd-service): * gnu/services/monitoring.scm (vnstat-shepherd-service): * gnu/services/mail.scm (rspamd-shepherd-service): * doc/guix.texi (shepherd-signal-action): Document it. Change-Id: Ief5e00c7d430ec4aa28c3ef11d0ef9897793b45f Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6097
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