summaryrefslogtreecommitdiff
path: root/gnu/services/guix.scm
AgeCommit message (Collapse)Author
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-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-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-07-25services: Add shared-cache-service-type.Edouard Klein
* gnu/services/guix.scm (shared-cache-service-type) (shared-cache-configuration, user-cache): New variables. * doc/guix.texi (Shared Cache Service): New subsubsection under "Guix Services". Change-Id: I73a8db228d9a892c8bb93c6cdfef12d0d06e25a6 Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop> Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-05-25services: guix-data-service: Fix data-service-setup-database script.Christopher Baines
* gnu/services/guix.scm (guix-data-service-shepherd-services): Use begin rather than lambda, add some logging and use guile from the data service package. Change-Id: I915682e513a3cc8e3cbf324e3c650c65d2852a96
2025-05-11services: guix-build-coordinator: Allow passing extra arguments.Christopher Baines
To avoid needing to support all possible configuration options in the Guix service. * gnu/services/guix.scm (guix-build-coordinator-configuration-extra-build-coordinator-arguments): New procedure. * gnu/services/guix.scm (make-guix-build-coordinator-start-script): Support extra-build-coordinator-arguments and include them when calling make-build-coordinator. (guix-build-coordinator-shepherd-services): Pass extra-build-coordinator-arguments through when calling make-guix-build-coordinator-start-script. Change-Id: I6531275bf2922f762b3422746c6207b834656b5c
2025-03-12services: guix-data-service: Use a script for database setup.Christopher Baines
To avoid loading data service code in to the shepherd. * gnu/services/guix.scm (guix-data-service-shepherd-services): Use a script for database setup. Change-Id: Ic67b33a98d63be69c8ee36d6e279d2c5690c179e
2025-02-23services: Add missing Shepherd dependency on ‘user-processes’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/76368>. * gnu/services/auditd.scm (auditd-shepherd-service): * gnu/services/base.scm (rngd-service-type): (gpm-shepherd-service): * gnu/services/ci.scm (laminar-shepherd-service): * gnu/services/containers.scm (rootless-podman-cgroups-fs-owner-service): (rootless-podman-cgroups-limits-service): * gnu/services/cups.scm (cups-shepherd-service): * gnu/services/databases.scm (postgresql-role-shepherd-service): * gnu/services/desktop.scm (upower-shepherd-service): (bluetooth-shepherd-service): (elogind-shepherd-service): (inputattach-shepherd-service): (seatd-shepherd-service): * gnu/services/dns.scm (knot-resolver-shepherd-services): (dnsmasq-shepherd-service): * gnu/services/docker.scm (containerd-shepherd-service): (docker-shepherd-service): * gnu/services/file-sharing.scm (transmission-daemon-shepherd-service): * gnu/services/games.scm (joycond-shepherd-service): (wesnothd-shepherd-service): * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): (guix-data-service-shepherd-services): (nar-herder-shepherd-services): (bffe-shepherd-services): * gnu/services/ldap.scm (directory-server-shepherd-service): * gnu/services/linux.scm (cachefilesd-shepherd-service): (rasdaemon-shepherd-service): * gnu/services/mail.scm (dovecot-shepherd-service): (imap4d-shepherd-service): (radicale-shepherd-service): (rspamd-configuration): * gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service): (vnstat-shepherd-service): * gnu/services/networking.scm (opendht-shepherd-service): (openvswitch-shepherd-service): (pagekite-shepherd-service): (ipfs-shepherd-service): * gnu/services/nfs.scm (rpcbind-service-type): (gss-service-type): (idmap-service-type): * gnu/services/pm.scm (thermald-shepherd-service): * gnu/services/rsync.scm (rsync-shepherd-service): * gnu/services/samba.scm (samba-samba-shepherd-service): (samba-nmbd-shepherd-service): (samba-smbd-shepherd-service): (samba-winbindd-shepherd-service): (wsdd-shepherd-service): * gnu/services/security-token.scm (pcscd-shepherd-service): * gnu/services/sound.scm (speakersafetyd-shepherd-service): * gnu/services/spice.scm (spice-vdagent-shepherd-service): * gnu/services/ssh.scm (lsh-shepherd-service): (openssh-shepherd-service): (dropbear-shepherd-service): (autossh-shepherd-service): * gnu/services/telephony.scm (jami-shepherd-services): (mumble-server-shepherd-service): * gnu/services/version-control.scm (git-daemon-shepherd-service): * gnu/services/virtualization.scm (virtlogd-shepherd-service): * gnu/services/vnc.scm (xvnc-shepherd-service): * gnu/services/vpn.scm (openvpn-shepherd-service): (strongswan-shepherd-service): * gnu/services/web.scm (httpd-shepherd-services): (fcgiwrap-shepherd-service): (php-fpm-shepherd-service): (hpcguix-web-shepherd-service): (tailon-shepherd-service): (varnish-shepherd-service): (whoogle-shepherd-service): (mumi-shepherd-services): (gmnisrv-shepherd-service): (agate-shepherd-service): Add ‘user-processes’ requirement. * doc/guix.texi (Mail Services): Update accordingly. Reported-by: Dariqq <dariqq@posteo.net> Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
2025-02-16gnu: guix-build-coordinator: Add the listen-repl configuration.Christopher Baines
* gnu/services/guix.scm (<guix-build-coordinator-configuration>): Add listen-repl. (guix-build-coordinator-configuration-listen-repl): New procedure. (make-guix-build-coordinator-start-script, guix-build-coordinator-shepherd-services): Use listen-repl. * doc/guix.texi (Guix Services): Document listen-repl. Change-Id: I49cac7cd3c4675f6ffed71320bb61dc7b008179a
2025-02-13services: guix-build-coordinator: Extend pid file timeout.Christopher Baines
As truncating the WAL can take time. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Extend pid file timeout. Change-Id: I054fbf5631ee5060a4ea5b3c7940809193e1003b
2024-12-16services: guix-data-service: Support specifying configuration.Christopher Baines
The database contains some tables that are effectively used for configuration. This commit starts to expose these to the guix service, enabling the configuration to be handled by the service. * gnu/services/guix.scm (<guix-data-service-configuration>): Add git-repositories and build-servers. (guix-data-service-configuration-git-repositories, guix-data-service-configuration-build-servers): New procedures. (guix-data-service-shepherd-services): Add new shepherd service to setup the database. Change-Id: I519efd9157b60f18c7e80e3bdc92c0e3c5729334
2024-09-18services: guix-build-coordinator-agent: Add extra-options.Andreas Enge
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Add field extra-options. (guix-build-coordinator-agent-shepherd-services): Add and use EXTRA-OPTIONS argument. * doc/guix.texi (Guix Services): Adapt the documentation. Change-Id: I9e7e258e03e2b6553aa1570f5fcfaf3b0ada3e15 Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
2024-09-18services: guix-build-coordinator-agent: Remove defaults.Andreas Enge
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>) [max-parallel-builds, max-parallel-uploads]: Set default to #f. (guix-build-coordinator-agent-shepherd-services): Check for max-parallel-builds. * doc/guix.texi (Guix Services): Adapt the documentation. If set to #f, the default values are now taken as the defaults of the guix-build-coordinator-agent command. Change-Id: Ide6dde0e88aa0dc851b6295095f414ca2ddc72ac Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
2024-06-06services: guix-build-coordinator: Don't log with timestamps.Christopher Baines
As the shepherd adds these to the logs. * gnu/services/guix.scm (make-guix-build-coordinator-start-script): Pass #:timestamp-log-output? #f to make-build-coordinator. (guix-build-coordinator-agent-shepherd-services): Add --timestamp-log-output=false to the arguments. Change-Id: I9073ee7b1cefa894d38fdf3831c59de693e087f6
2024-06-02Revert "services: home: Use pairs instead of lists."Andrew Tropin
This reverts commit dbeef44f3c520816251bde74c1005915a637e1ef. Despite the more semantically correct data type, it doesn't follow the style of the most services and also breaks user-facing API. Change-Id: Ib4ef4e9cd2f53ac853a5b7c7c90e57c35c99a5ea
2024-06-02services: home: Use pairs instead of lists.Andrew Tropin
* gnu/services/guix.scm: Use pairs instead of lists. * doc/guix.texi: Update accordingly. * gnu/tests/guix.scm: Update accordingly. Change-Id: I0b8d3fa5b214add89bdb84a11fa20d1b319435f0
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-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-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
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-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-09-15services: bffe: Use guile from the package.Christopher Baines
Rather than hardcoding a particular guile in the service definition. * gnu/services/guix.scm (bffe-shepherd-services): Use guile from the package. * gnu/packages/package-management.scm (bffe)[inputs]: Remove unnecessary guile-next input.
2023-09-15services: guix: Add bffe-service-type.Christopher Baines
This is intended to replace the functionality of the Guix Build Coordinator queue builds script, and also provide a web interface for build farms. * gnu/services/guix.scm (<bffe-configuration>): New record type. (bffe-configuration, bffe-configuration?, bffe-configuration-package, bffe-configuration-user, bffe-configuration-group, bffe-configuration-arguments bffe-configuration-extra-environment-variables): New procedures. (bffe-service-type): New variable. * gnu/tests/guix.scm (%test-bffe): New variable. * doc/guix.texi (Guix Services): Document the new service.
2023-08-26services: nar-herder: Specify a working directory.Christopher Baines
Mostly so that core dumps end up here. * gnu/services/guix.scm (nar-herder-shepherd-services): Specify a working directory.
2023-08-26services: guix-data-service: Specify a working directory.Christopher Baines
Mostly so that core dumps end up here. * gnu/services/guix.scm (guix-data-service-shepherd-services): Specify a working directory.
2023-08-26services: guix-build-coordinator: Specify a working directory.Christopher Baines
Mostly so that core dumps end up here. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Specify a working directory.
2023-08-21services: Add missing 'user-processes' requirements.Ludovic Courtès
* gnu/services/guix.scm (guix-build-coordinator-agent-shepherd-services): Add 'user-processes' requirement. * gnu/services/linux.scm (earlyoom-shepherd-service): Likewise.
2023-07-26services: guix-data-service: Unlink the two shepherd services.Christopher Baines
So that they can be restarted in dependently. * gnu/services/guix.scm (guix-data-service-shepherd-services): Don't require the main service from the jobs service.
2023-05-13services: nar-herder: Support extra environment vars.Christopher Baines
* gnu/services/guix.scm (nar-herder-configuration-extra-environment-variables): New procedure. (nar-herder-shepherd-services): Pass the environment variables to the shepherd. * doc/guix.texi (Guix Services): Document it.
2023-05-10services: guix-build-coordinator-agent: Support max-parallel-uploads.Christopher Baines
This should be usable with the new guile-gnutls. * gnu/services/guix.scm (guix-build-coordinator-agent-configuration-max-parallel-uploads): New procedure. * gnu/services/guix.scm (guix-build-coordinator-agent-shepherd-services): Use the new argument. * doc/guix.texi (Guix Services): Document it.
2023-05-09services: guix-build-coordinator: Support extra environment vars.Christopher Baines
I'm looking at this because I need to do some debugging of Guile's GC, and there are some useful environment variables for that, but it should be generally useful. * gnu/services/guix.scm (guix-build-coordinator-configuration-extra-environment-variables): New procedure. (guix-build-coordinator-shepherd-services): Pass the environment variables to the shepherd. * doc/guix.texi (Guix Services): Document it.
2023-05-06services: guix-build-coordinator: Simpify service startup.Christopher Baines
Take advantage of changes in the build coordinator to reduce the complexity of the service startup script. * gnu/services/guix.scm (make-guix-build-coordinator-start-script): Remove the metrics registry and datastore.
2023-02-03services: nar-herder: Add cached compression support.Christopher Baines
* gnu/services/guix.scm (<nar-herder-cached-compression-configuration>): New record type. (nar-herder-configuration-cached-compressions, nar-herder-configuration-cached-compression-min-uses, nar-herder-configuration-cached-compression-workers, nar-herder-configuration-cached-compression-nar-source, nar-herder-cached-compression-configuration, nar-herder-cached-compression-configuration?, nar-herder-cached-compression-configuration-type, nar-herder-cached-compression-configuration-level, nar-herder-cached-compression-configuration-directory, nar-herder-cached-compression-configuration-directory-max-size): New procedures. * doc/guix.texi (Guix Services): Document this.
2022-12-12services: guix-build-coordinator: Fix service startup.Christopher Baines
Previously the service would keep starting more and more processes. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Fix how make-forkexec-constructor is called.
2022-11-20services: guix-build-coordinator: Remove duplicate log timestamp.Christopher Baines
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services, guix-build-coordinator-agent-shepherd-services, guix-build-coordinator-queue-builds-shepherd-services): Set %current-logfile-date-format to "". Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-10-11services: guix: Include max-allocated-builds gbc agent option.Christopher Baines
* gnu/services/guix.scm (guix-build-coordinator-agent-configuration-max-allocated-builds): New procedure. (guix-build-coordinator-agent-shepherd-services): Use max-allocated-builds. * doc/guix.texi (Guix Build Coordinator): Document this new field.
2022-07-15gnu: tests: Fix guix-data-service test.Timotej Lazar
Since revision 32, guix-data-service starts immediately but returns an HTTP error code until initialization is complete. Adjust the test accordingly, and remove the increased startup time limit. * gnu/services/guix.scm (guix-data-service): Use default #:pid-file-timeout. * gnu/tests/guix.scm (guix-data-service): Retry the http-get test several times to give the service time to initialize. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-07-03services: guix-build-coordinator: Fix passing parallel-hooks.Christopher Baines
The previous approach didn't support a simple alist. * gnu/services/guix.scm (make-guix-build-coordinator-start-script): Fix passing parallel-hooks in to the start gexp.
2022-07-01services: guix: Support guix-build-coordinator parallel hooks.Christopher Baines
* gnu/services/guix.scm (guix-build-coordinator-configuration-parallel-hooks): New procedure. (make-guix-build-coordinator-start-script): Accept and use #:parallel-hooks. (guix-build-coordinator-shepherd-services): Pass parallel-hooks to make-guix-build-coordinator-start-script. * doc/guix.texi (Guix Build Coordinator): Document this new field.
2022-06-05services: guix-data-service: Increase timeout for service start.Timotej Lazar
The guix-data-service system test fails on a slower machine with a one-minute time limit. * gnu/services/guix.scm (guix-data-service): Double the #:pid-file-timeout. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-25gnu: guix-build-coordinator: Update to 0-53.3de63f1.Christopher Baines
* gnu/packages/package-management.scm (guix-build-coordinator): Update to 0-53.3de63f1. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id): New procedure. (guix-build-coordinator-queue-builds-shepherd-services): Use the guix-data-service-build-server-id. * doc/guix.texi (Guix Build Coordinator): Document the new queue builds configuration field.
2022-04-22services: nar-herder: Allow specifying the log level.Christopher Baines
* gnu/services/guix.scm (nar-herder-configuration-log-level): New procedure. (nar-herder-shepherd-services): Pass the log-level to the nar-herder process. * doc/guix.texi (Nar Herder): Document configuring the log-level.
2022-02-04services: nar-herder: Support ttl and negative-ttl options.Christopher Baines
* gnu/services/guix.scm (<nar-herder-configuration>): Add ttl and negative-ttl fields. (nar-herder-shepherd-services): Pass the ttl and negative-ttl values to the service. * doc/guix.texi (Guix Services): Document this.
2022-01-31services: guix: Add nar-herder-service-type.Christopher Baines
* gnu/services/guix.scm (<nar-herder-configuration>): New record type. (nar-herder-configuration, nar-herder-configuration?, nar-herder-configuration-package, nar-herder-configuration-user, nar-herder-configuration-group, nar-herder-configuration-mirror nar-herder-configuration-database nar-herder-configuration-database-dump nar-herder-configuration-host nar-herder-configuration-port nar-herder-configuration-storage nar-herder-configuration-storage-limit nar-herder-configuration-storage-nar-removal-criteria nar-herder-shepherd-services, nar-herder-activation, nar-herder-account): New procedures. (nar-herder-service-type): New variable. * gnu/tests/guix.scm (%test-nar-herder): New variable. * doc/guix.texi (Guix Services): Document the new service.
2022-01-02services: guix-build-coordinator: Fix variable name in agent config.Christopher Baines
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Fix variable name. * doc/guix.texi (Guix Services): Update accordingly.
2022-01-02gnu: Add guix-build-coordinator/agent-only.Christopher Baines
This avoids issues where the coordinator component dependencies (like sqitch and guile-fibers) make it harder to use the agent. * gnu/packages/package-management.scm (guix-build-coordinator/agent-only): New variable. * gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Use the guix-build-coordinator/agent-only package by default. * doc/guix.texi (Guix Services): Update accordingly.
2021-05-02services: guix-build-coordinator: Fix queue builds state directory.Christopher Baines
This service doesn't create a PID file, but it does write a file with the processed commits in it, so create a directory to contain that. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-activation): Ensure /var/cache/guix-build-coordinator-queue-builds exists.