aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
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-05-04services: cuirass: Remove use-substitutes? configuration option.Ahmad Draidi
As of Cuirass commit 9a1452ee021c9f773424961cfeef47ca0b7c5c5a, this option seems to be unused and kept for back compatibility there. * gnu/services/cuirass.scm (<cuirass-configuration>): Remove use-substitutes? field. (cuirass-shepherd-service): Remove the option. * doc/guix.texi (Continuous Integration): Remove option documentation. Change-Id: I933550ce76eecdf918b07891aa8212fd30a7c87e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-04services: cuirass: Add new configuration options.Ahmad Draidi
* gnu/services/cuirass.scm (<cuirass-configuration>): Add ttl and threads fields. (cuirass-shepherd-service): Handle the new options. * doc/guix.texi (Continuous Integration): Document them. Change-Id: I4387fbd7bf6766f4a54801f35c7ed82ce4eb9645 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-04services: cuirass: Use separate extra options for cuirass web process.Ahmad Draidi
Currently, "extra-options" is passed to both "cuirass register" and "cuirass web" processes. This makes it impractical since the extra parameters have to be intended for and supported by both processes. * gnu/services/cuirass.scm (<cuirass-configuration>): Add a web-extra-options field. (cuirass-shepherd-service): Replace extra-options with web-extra-options for cuirass web. * doc/guix.texi (Continuous Integration): Document the changes. Change-Id: Iba79c559ea8267aaf8f25248f3d18ed7b352cb60 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-29services: build-vm: Provide only one locale.Ludovic Courtès
* gnu/services/virtualization.scm (%virtual-build-machine-operating-system) [locale, locale-definitions]: New fields. Change-Id: Ieb24b3a0c210291d8c04412e4c263b5e377b5704
2024-04-29services: Add gvfs-service-type.宋文武
* gnu/services/desktop.scm (gvfs-service-type): New variable. (gvfs-configuration, make-gvfs-configuration, gvfs-configuration?, gvfs-package): New procedures. (<gvfs-configuration>): New record. * doc/guix.texi (Desktop Services): Document it. Change-Id: I584819500e2ce7d2b14e57dac238a96e9888e75e
2024-04-28services: gdm: Use ‘make-forkexec-constructor’.Ludovic Courtès
* gnu/services/xorg.scm (gdm-shepherd-service): Use ‘make-forkexec-constructor’ directly. Change-Id: I4ede4c99996cea4421316411cf8d887d70ce4253
2024-04-28services: lightdm: Use ‘make-forkexec-constructor’.Ludovic Courtès
* gnu/services/lightdm.scm (lightdm-shepherd-service)[start]: Use ‘make-forkexec-constructor’ directly. Change-Id: Iaaa8dcde123ea80ce63c09033b681e40ccc589a4
2024-04-17services: Add the Guix Home service.Richard Sent
This patch adds a Guix Home service, which allows for configuring/deploying an operating-system declaration with an associated home-environment. * gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service * gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when the system shepherd runs guix-home-<user> * doc/guix.texi: Add documentation for guix-home-service * gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to activate a home environment Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e 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-30services: postgresql: Simplify execution of ‘initdb’.Ludovic Courtès
* gnu/services/databases.scm (postgresql-activation): Replace ‘primitive-exit’ + ‘system*’ with ‘execl’. Change-Id: I491fd3093f67af59f240438d7d6123e769e4ec1e
2024-03-30services: postgresql: Don't initdb when directory exists.Robert Vollmert
* gnu/services/databases.scm (postgresql-activation): Check if directory exists. Reviewed-by: Dale Mellor <guix-devel-0brg6b@rdmp.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Id563a3e8df2cb5b805e64cd8319303c65d308c69
2024-03-25services: nar-herder: Add new configuration options.Christopher Baines
* gnu/services/guix.scm (nar-herder-configuration-new-ttl, nar-herder-cached-compression-configuration-unused-removal-duration, nar-herder-cached-compression-configuration-ttl, nar-herder-cached-compression-configuration-new-ttl): New procedure. (nar-herder-shepherd-services): Handle the new options. * doc/guix.texi (Guix Services): Document the new nar-herder options. Change-Id: I161e490221a3ce394e32ada685dca27df60638bb
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-03-21services: shepherd: Load each service file in a fresh module.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/67649>. * gnu/home/services/shepherd.scm (home-shepherd-configuration-file)[config]: Define ‘make-user-module’. Call ‘load’ in ‘save-module-excursion’. * gnu/services/shepherd.scm (shepherd-configuration-file): Likewise. Reported-by: Attila Lendvai <attila@lendvai.name> Change-Id: I7df11c81b5bbbf2b24a8daa02502a000e0826fe0
2024-03-20Merge remote-tracking branch 'savannah/master' into gnome-teamChristopher Baines
Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745
2024-03-19services: sddm: Add extension for localed-service-type.Zheng Junjie
* gnu/services/sddm.scm (sddm-service-type): Add extension for localed-service-type. * gnu/services/xorg.scm (xorg-configuration-keyboard-layout): Export it. Change-Id: I26e6475b733d69f1baf00786e302a3ec6d3c4a74 Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2024-03-17gnu: services: Add insecure-sasl-mechanisms to prosody configuration.Carlo Zancanaro
* gnu/services/messaging.scm (prosody-configuration): Add insecure-sasl-mechanisms configuration option. * doc/guix.texi (Messaging Services): Document it. Change-Id: I8d9e42476ea8ad2f89b143ed4a66b4798e418586 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2024-03-10Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-03-06services: virtual-build-machine: Disable substitutes by default.Ludovic Courtès
These are useless when offloading yet were causing problems on systems where the default substitute servers are unreachable. * gnu/services/virtualization.scm (%virtual-build-machine-operating-system): Add ‘use-substitutes?’ field to ‘guix-configuration’. Change-Id: I7d5e380a6f2e2d537de43fdb3c550958ed4db255
2024-02-25Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-02-24services: gdm: Enable wayland by default.Vivien Kraus
* gnu/services/xorg.scm (<gdm-configuration>): Change the default value for wayland? from '#f' to '#t'. Change-Id: Ic966dfc462b1140894aa6c38c23e229d6252d340 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2024-02-23services: desktop: Remove unused imports.Liliana Marie Prikler
These imports were needed for a short time to consider two variants of finding udev/polkit configuration files. They are no longer needed, since the respective procedures use all packages now. * gnu/services/desktop.scm: Strip use of (guix diagnostics) and (srfi srfi-35).
2024-02-23services: Extend polkit capabilities of gnome-desktop-service.Liliana Marie Prikler
As with our udev extension, this makes it so that all inputs are considered modulo a new ignorelist. * gnu/services/desktop.scm (gnome-desktop-configuration): Add polkit-ignorelist. (gnome-polkit-settings): Adjust accordingly.
2024-02-23services: Extend udev capabilities of gnome-desktop-service.Vivien Kraus
Our udev service is capable of handling both rules and hardware databases. This patch makes it so that gnome can install any such needed rules or databases, while also allowing users to supply a list of names to ignore (via regular expressions). * gnu/services/desktop.scm (gnome-desktop-configuration): Add udev-ignorelist. (gnome-udev-resources): Rename to… (gnome-udev-configuration-files): … this. Account for udev-ignorelist. (gnome-desktop-service-type): Adjust accordingly. Change-Id: I6df4b896652581c42a35ea3ba1e4849ad72d12ef
2024-02-23services: Modularise gnome-desktop-configuration.Liliana Marie Prikler
* gnu/services/gnome.scm (extract-propagated-inputs): New variable. (gnome-desktop-configuration): Add ‘core-services’, ‘shell’, ‘utilities’, and ‘extra-packages’. Deprecate ‘gnome’. (gnome-desktop-configuration-core-services, gnome-desktop-configuration-shell) (gnome-desktop-configuration-utilities) (gnome-desktop-configuration-extra-packages): Export publicly. (gnome-udev-rules, gnome-polkit-settings): Adjust accordingly. (gnome-profile): New variable. (gnome-desktop-service-type): Adjust accordingly.
2024-02-20services: Add whoogle-service-type.Miguel Ángel Moreno
* gnu/services/web.scm (whoogle-service-type): New variable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-18services: virtual-build-machine: Add ‘configuration’ action.Ludovic Courtès
* gnu/services/virtualization.scm (build-vm-shepherd-services): Add ‘configuration’ action. * doc/guix.texi (Virtualization Services): Document it. Change-Id: I4734e096d744b3cda0d523692498a73c0029e188
2024-02-18services: virtual-build-machine: Add periodic GC job.Ludovic Courtès
* gnu/services/virtualization.scm (%virtual-build-machine-operating-system): Add ‘periodic-gc’ service. Change-Id: Id5bde1ee3f8e1e549e231375e776d3201ec9e0b5
2024-02-18services: virtual-build-machine: Use a non-volatile root file system.Ludovic Courtès
This is a followup to e0ade40c2b7f39dc109ef03d43241033e14c4d4a, which didn’t have the desired effect. * gnu/services/virtualization.scm (virtual-build-machine-default-image): Add ‘volatile-root?’ field. Change-Id: I1a622f22cdd0f8f83860a6eb4a852518db3b46b7
2024-02-18services: virtual-build-machine: Do not offload when service is stopped.Ludovic Courtès
* gnu/services/virtualization.scm (check-vm-availability): Check the value of ‘live-service-running’. Change-Id: Iba858ea0fa417d9276e026b72b4b78791932482e
2024-02-18services: block-facebook-hosts: Use proper unroutable addresses.Ludovic Courtès
This is safer and more appropriate than redirecting to localhost. * gnu/services/networking.scm (%unroutable-ipv4, %unroutable-ipv6): New variables. (facebook-host-aliases): Use them. Change-Id: Idd4b1fec903c52d542d177a52fec1814eded4119
2024-02-13Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-02-12services: virtual-build-machine: Use a larger partition by default.Ludovic Courtès
So far the partition had too little free space. * gnu/services/virtualization.scm (%default-virtual-build-machine-image-size): New variable. (virtual-build-machine-default-image): Define ‘partitions’ field. Change-Id: Iffe0f316eecad8754d29f8c811cdc4836a818a3f
2024-02-12services: virtual-build-machine: Add base file systems to default OS.Ludovic Courtès
This provides /dev/pts and other things that are important for builds (for example, Python 2.x has ‘openpty’ unit tests that can only succeed when /dev/pts is available.) * gnu/services/virtualization.scm (%virtual-build-machine-operating-system) [file-systems]: Add %BASE-FILE-SYSTEMS. Change-Id: I7d12a4cb491e957bf55e6c5f9dd09c013473ca42
2024-02-10services: Add ‘virtual-build-machine’ service.Ludovic Courtès
* gnu/services/virtualization.scm (<virtual-build-machine>): New record type. (%build-vm-ssh-port, %build-vm-secrets-port, %x86-64-intel-cpu-models): New variables. (qemu-cpu-model-for-date, virtual-build-machine-ssh-port) (virtual-build-machine-secrets-port): New procedures. (%minimal-vm-syslog-config, %virtual-build-machine-operating-system): New variables. (virtual-build-machine-default-image): (virtual-build-machine-account-name) (virtual-build-machine-accounts) (build-vm-shepherd-services) (initialize-build-vm-substitutes) (build-vm-activation) (virtual-build-machine-offloading-ssh-key) (virtual-build-machine-activation) (virtual-build-machine-secret-root) (check-vm-availability) (build-vm-guix-extension): New procedures. (initialize-hurd-vm-substitutes): Remove. (hurd-vm-activation): Rewrite in terms of ‘build-vm-activation’. * gnu/system/vm.scm (linux-image-startup-command): New procedure. (operating-system-for-image): Export. * gnu/tests/virtualization.scm (run-command-over-ssh): New procedure, extracted from… (run-childhurd-test): … here. [test]: Adjust accordingly. (%build-vm-os): New variable. (run-build-vm-test): New procedure. (%test-build-vm): New variable. * doc/guix.texi (Virtualization Services)[Virtual Build Machines]: New section. (Build Environment Setup): Add cross-reference. Change-Id: I0a47652a583062314020325aedb654f11cb2499c
2024-02-10services: secret-service: Make the endpoint configurable.Ludovic Courtès
Until now, the secret service had a hard-coded TCP endpoint on port 1004. This change lets users specify arbitrary socket addresses. * gnu/build/secret-service.scm (socket-address->string): New procedure, taken from Shepherd. (secret-service-send-secrets): Replace ‘port’ by ‘address’ and adjust accordingly. (secret-service-receive-secrets): Likewise. * gnu/services/virtualization.scm (secret-service-shepherd-services): Likewise. (secret-service-operating-system): Add optional ‘address’ parameter and honor it. Adjust ‘start’ method accordingly. Change-Id: I87a9514f1c170dca756ce76083d7182c6ebf6578
2024-02-05services: kernel-module-lodaer: Add udev requirement.Hilton Chain
Otherwise, modules will be loaded before udev starts, and load events won't be handled. * gnu/services/linux.scm (kernel-module-loader-shepherd-service)[requirement]: Add 'udev. Change-Id: Ib65028978f96012604b54b27a56501d4388b0f34
2024-02-03Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-01-31services: certbot: Add one-shot service to renew certificates.Carlo Zancanaro
* gnu/services/certbot.scm (certbot-renewal-one-shot): New procedure. (certbot-service-type)[extensions]: Add it to shepherd-root extension. (certbot-command): Make connection errors return a different exit code. (certbot-activation): Remove message with certificate renewal instructions. Change-Id: I614ac6214a753dba0396e2385a75926c8355caa1 Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31services: certbot: Reload nginx in deploy hook.Carlo Zancanaro
* gnu/services/certbot.scm (certbot-deploy-hook): Reload nginx. * doc/guix.texi (Certificate services): Remove deploy-hook from example. Change-Id: Ibb10481170a6fda7df72492072b939dd6a6ad176 Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31services: certbot: Create self-signed certificates before certbot runs.Carlo Zancanaro
* gnu/services/certbot.scm (<certificate-configuration>): Add start-self-signed? field. (generate-certificate-gexp): New procedure. (certbot-activation): Generate self-signed certificates when start-self-signed? is #t. * doc/guix.texi (Certificate services): Document start-self-signed?. Change-Id: Icfd85ae0c3e29324acbcde6ba283546cf0e27a1d Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31services: certbot: Symlink certificates to /etc/certs.Carlo Zancanaro
* gnu/services/certbot.scm (certbot-deploy-hook): New procedure. (certbot-command): Pass new deploy hook to certbot. * doc/guix.texi: Replace "letsencrypt/live" with "certs" throughout, except in the certbot deploy-hook description. Change-Id: I2ba5e4903d1e293e566b732a84b07d5a134b697d Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-28services: shepherd: Add respawn-limit and respawn-delay.Attila Lendvai
* gnu/services/shepherd.scm (<shepherd-service>): Add respawn-limit and respawn-delay. (shepherd-service-file): Emit the two values into the shepherd service constructor form. Change-Id: I54408e8fb4bcc0956d9610771bf5c566fdc2914c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-24services: cuirass: Depend on ‘user-processes’.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-shepherd-service) (cuirass-remote-worker-shepherd-service): Add ‘user-processes’ to the ‘requirement’ field. Change-Id: Iba087bfd8aaa9b1ef54bcc77d855adc136e18644
2024-01-24services: cuirass: Add ‘configuration’ action.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-shepherd-service): Add ‘actions’ field to ‘cuirass’ Shepherd service. Change-Id: I7feaeebcb89fcd9a1fdbc63f0337e0d63b697793
2024-01-22services: connman: Add 'connman-general-configuration'.muradm
Currently connman has no main.conf as specified in 'man 5 connman.conf' which would allow setting NetworkInterfaceBalcklist and other useful options. This patch adds connman-general-configuration, serializes it and passes to connmad with --config= flag. All configuration fields are 'maybe-*' deliberately, to not disturb current users and not require supporting configuration changes for connmand. * gnu/services/networking.scm (<connman-general-configuration>): New configuration record to represent main.conf for connmand. (<connman-configuration>)[general-configuration]: New field. (connman-shepherd-service): Honor it. *doc/guix.texi (Networking Services): Add generated configuration. Change-Id: I5d78f49e8b2d5e0b3cbd7b8b604e8a254b6397e8 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>