summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
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-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-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>
2024-01-12gnu: guix-build-coordinator: Update to 0-94.c4c4f5a.Christopher Baines
This also switches to use guile-next, which includes important fixes to invalid unicode handling with suspendable ports, which is necessary for the agent. * gnu/packages/package-management.scm (guix-build-coordinator): Update to 0-94.c4c4f5a. * gnu/services/guix.scm: Use guile-next for the coordinator service. Change-Id: I853539a612fd0b41a6c63069c6291b3f42e5cdee
2024-01-08services: bitlbee: Use ‘make-inetd-constructor’ unconditionally.Ludovic Courtès
This construct was introduced in Shepherd 0.9.0. * gnu/services/messaging.scm (bitlbee-shepherd-service): Use ‘make-inetd-constructor’ unconditionally. Change-Id: Id1b79077d60609c7f95439ee0d097dfe6e66dd2e
2024-01-08services: shepherd: Use the 0.10.x GOOPS-less interface.Ludovic Courtès
* gnu/services/shepherd.scm (%default-modules): Remove (oop goops). (shepherd-service-file): Use (service …) instead of (make <service> …). Use ‘actions’ instead of ‘make-actions’. (scm->go): Remove use of (oop goops). (shepherd-configuration-file): Pass ‘register-services’ a list. Use ‘start-in-the-background’ unconditionally. Change-Id: I0ad1ba32e339c56ee31e59f160b53d3581277d97
2024-01-08services: openssh: Add dependency on ‘networking’.Ludovic Courtès
* gnu/services/ssh.scm (openssh-shepherd-service): Add ‘networking’ to ‘requirement’. Change-Id: I14c48fe40cce86810a544de6bb7f925bc360653a
2024-01-05services: xorg: ‘dbus-daemon-wrapper’ handles Home profile.Feng Shu
* gnu/services/xorg.scm (dbus-daemon-wrapper): Handle Home profile. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Ib2f2330b7ea017ddf33d636de71aaa1c316808cb
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
2024-01-05services: shepherd: Remove ‘dynamic-wind’ in ‘call-with-*-file’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/64653>. The ‘dynamic-wind’ was causing files to be closed prematurely when leaving the dynamic extent of PROC for instance via a delimited continuation, using Fibers (that ‘dynamic-wind’ call was also semantically incorrect in the first place). * gnu/services/shepherd.scm (shepherd-configuration-file) [config](call-with-file): Remove. (call-with-input-file, call-with-output-file): Rewrite in terms of ‘call-with-port’. Change-Id: Ica8af71a04f525a15be99985552063cb98cd6ee8
2024-01-03services: docker: Add config-file option.Connor Clark
* gnu/services/docker.scm (docker-configuration)[config-file] Add file-like field. * doc/guix.texi (Docker Service): Add information about config-file. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-12-28services: laminar: Add configuration option for supplementary groups.David Thompson
* gnu/services/ci (<laminar-configuration>)[supplemental-groups]: New field. (laminar-shepherd-service): Exec laminard with supplementary groups. (laminar-account): Add supplementary groups to laminar user. * doc/guix.texi (Laminar): Document new configuration field. Change-Id: Iebfdbb58ea8c6dfa22bb8f64f6463e3ad133d2f9
2023-12-22services: guix: Move GUIX_LOCPATH handling to packages.Christopher Baines
I think this might be better than handling it in the service. I'm seeing locale issues on the hurd which I hope this will address. * gnu/packages/package-management.scm (guix-build-coordinator, guix-build-coordinator/agent-only): * gnu/services/guix.scm (guix-build-coordinator-shepherd-services, guix-build-coordinator-agent-shepherd-services): Change-Id: I07ca424f434854176326a19177dc5573d53b59c2
2023-12-22services: guix: Remove guix-build-coordinator-queue-builds service.Christopher Baines
This has been effectively replaced by the bffe. * gnu/services/guix.scm (<guix-data-service-configuration>): Remove record type. (guix-build-coordinator-queue-builds-shepherd-services, guix-build-coordinator-queue-builds-activation, guix-build-coordinator-queue-builds-account): Remove procedures (guix-build-coordinator-queue-builds-service-type): Remove service type. Change-Id: I2a233fb10b12cc9bfddebaa35928b25c243f82a2
2023-12-22services: Remove unnecessary references to (gnu build shepherd).Ludovic Courtès
* gnu/services/databases.scm (memcached-shepherd-service): Remove ‘with-imported-modules’ form and ‘modules’ field. * gnu/services/security-token.scm (pcscd-shepherd-service): Remove ‘with-imported-modules’ form. * gnu/services/web.scm (hpcguix-web-shepherd-service): Likewise. Change-Id: Ieb817508f1751e0c1ff551a0e078789a4a813c1c
2023-12-22services: jami: Use ‘least-authority-wrapper’.Ludovic Courtès
* gnu/services/telephony.scm (jami-configuration->command-line-arguments) [wrapper]: New procedure. Use it. (jami-shepherd-services): In ‘start’ method of ‘jami’ service, use ‘fork+exec-command’ instead of ‘make-forkexec-constructor/container’. Remove use of (gnu build shepherd). Change-Id: Ic71c0c88477d92bf137d9d0a5832bae8721cc210
2023-12-22services: jami-dbus-session: Use ‘least-authority-wrapper’.Ludovic Courtès
* gnu/services/telephony.scm (jami-shepherd-services): Use ‘least-authority-wrapper’ for ‘dbus-daemon’. Use ‘fork+exec-command’ instead of ‘make-forkexec-constructor/container’ in the ‘start’ method’. Remove reference to (gnu build shepherd). Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I9d9f8de6ecea77950000ff64aa8c8d097dc028a0
2023-12-22services: bitlbee: Remove use of ‘make-forkexec-constructor/container’.Ludovic Courtès
This will only affect systems running Shepherd < 0.9.0, which was released in August 2022. * gnu/services/messaging.scm (bitlbee-shepherd-service): Remove ‘with-imported-modules’ and ‘modules’ field. Use ‘make-forkexec-constructor’ instead of ‘make-forkexec-constructor/container’ when ‘make-inetd-constructor’ is missing. Change-Id: I35a0487bccaee4799ad0d81388d540e5c7891f7e
2023-12-22services: pagekite: Add ‘configuration’ action.Ludovic Courtès
* gnu/services/networking.scm (pagekite-shepherd-service): Add ‘actions’ field. Change-Id: I04daa846d505b0700b574a82472ecd99b492d7c4
2023-12-22services: pagekite: Use ‘least-authority-wrapper’.Ludovic Courtès
* gnu/services/networking.scm (pagekite-shepherd-service): Define ‘config-file’ and ‘mappings’; define ‘pagekite’ in terms of ‘least-authority-wrapper’. Remove now-unneeded ‘with-imported-modules’ form and ‘modules’ field. Use ‘make-forkexec-constructor’ instead of ‘make-forkexec-constructor/container’. Change-Id: I7c6c6266785f6a0f81a69d85f070779a0d6edd91
2023-12-14services: Add rspamd-service-type.Thomas Ieong
* gnu/services/mail.scm (rspamd-service-type): New variable. * gnu/tests/mail.scm (%test-rspamd): New variable. * doc/guix.texi: Document it. Co-authored-by: Saku Laesvuori <saku@laesvuori.fi> Change-Id: I7196643f087ffe9fc91aab231b69d5ed8dc9d198 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-14services: hpcguix-web: Add ‘configuration’ action.Ludovic Courtès
* gnu/services/web.scm (hpcguix-web-shepherd-service): Define ‘config-file’ and use it. Add ‘actions’ field. Change-Id: I085df403270039ede3c13f21a5d60682c7510e2e
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-10services: Fix oci-container-service-type container user.Giacomo Leidi
The oci-container-configuration supports two user fields: one is the user, from the host system, under whose authority the OCI-backed Shepherd service is run; the other is an optional user/UID that can be passed to the docker run invokation to override the user defined in the OCI image. The user from the host system is incorrectly passed to docker run command, this patches reverts the incorrect behavior and passes the correct container-user field value. * gnu/services/docker.scm (oci-container-configuration): Fix the user passed to the docker run invokation. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-03gnu: gmnisrv: Fix typo.Michal Atlas
* gnu/services/web.scm (gmnisrv-service-type): Change the service name to gmnisrv Change-Id: I1ca46c312db851486313c431fe0454786f0a673e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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
2023-11-27services: xvnc: Do not specify display number when using inetd.David Thompson
* gnu/services/vnc.scm (xvnc-configuration->command-line-arguments): Omit X display number when inetd? is #t. Change-Id: I0fc8e3068f3ae22421e60e96bd40e3b6e477ca99
2023-11-26services: rsync: Provide a prettier Shepherd inetd service name.Ludovic Courtès
Previously, a default name would be used for transient inetd services, leading to names such as #{5rjnskb6011jgmfmpgp63jp9mh9nkl20-rsync-3274}#. * gnu/services/rsync.scm (rsync-shepherd-service): Pass #:service-name-stem. Change-Id: I4d0a4a01e122c6eeaa85f104b083cf7e8709eac3
2023-11-23services: Add oci-container-service-type.Giacomo Leidi
* gnu/services/docker.scm (oci-container-configuration): New variable; (oci-container-shepherd-service): new variable; (oci-container-service-type): new variable. * doc/guix.texi (Miscellaneous Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I17cede1975051a9fdd0e0a13b2191d8055266f80
2023-10-24services: admin: Export rottlog-configuration accessors.Simon Tournier
* gnu/services/admin.scm (<rottlog-configuration>): Rename accessors rottlog-rottlog to rottlog-configuration-rottlog, rottlog-rc-file to rottlog-configuration-rc-file, rottlog-rotations to rottlog-configuration-rotations, rottlog-jobs to rottlog-configuration-jobs. (rottlog-etc, rottlog-jobs-or-default, rottlog-service-type): Adjust accordingly.
2023-10-20services: nftables: Tighten the default rules.Tomas Volf
Packets for local host IP ranges should be coming only over lo. If that is not the case, we should drop them. Use iif for the check instead of iifname, lo is guaranteed to exists, and iif is faster. * gnu/services/networking.scm (%default-nftables-ruleset): Tighten the rules. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-14services: dhcp-client-service-type: Support DDNS.Lilah Tascheter
* gnu/services/networking.scm (dhcp-client-shepherd-service): Enable -I flag on dhclient. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-10-12services: cuirass: Add ‘log-expiry’ option for ‘remote-server’.Ludovic Courtès
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)[log-expiry]: New field. (cuirass-shepherd-service): Honor it. * doc/guix.texi (Continuous Integration): Document it.
2023-10-11services: static-networking: Add support for bonding.Alexey Abramov
* gnu/services/base.scm (<network-link>): Add mac-address field. Set type field to #f by default, so it won't be mandatory. network-link without a type will be used for existing interfaces. (assert-network-link-mac-address, mac-address?): Add sanitizer. Allow valid mac-address or #f. (assert-network-link-type): Add sanitizer. Allow symbol or #f. * gnu/services/base.scm (network-set-up/linux, network-tear-down/linux): Adapt to new structure. * doc/guix.texi (Networking Setup): Document it. * gnu/tests/networking.scm (run-static-networking-advanced-test): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-07services: configuration: Add some commonly used predicates.Bruno Victal
* gnu/services/configuration.scm (list-of-packages?, list-of-symbols?): New predicate. * gnu/services/audio.scm (list-of-symbol?): Remove. * gnu/services/telephony.scm (string-list?): Remove. (serialize-string-list): Rename to … (serialize-list-of-strings): … this. (account-fingerprint-list?, jami-account-list?): Use list-of. * doc/guix.texi: Update it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>