summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2024-06-13services: dnsmasq: Add escape hatch.Sergey Trofimov
* gnu/service/dns.scm: (<dnsmasq-configuration>)[extra-options]: Add. * doc/guix.texi: Document (<dnsmasq-configuration>)[extra-options]. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I7d2df7aa5d3b041b69b2f8b3e311a7328c28a3be
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-06services: oci-container: Fix provided image is string.Zheng Junjie
gnu/services/docker.scm (oci-container-shepherd-service): When image is oci-image, call %oci-image-loader. Change-Id: I26105e82643affe9e7037975e42ec9690089545b
2024-06-04services: base: Add optional delayed mount of file-systemsRichard Sent
Add a mechanism to only require mounting a subset of file-system entries during early Shepherd initialization. Any file-system with additional Shepherd service requirements (e.g. networking) is not required to provision 'file-systems. * gnu/services/base.scm (file-system-shepherd-service): Splice file-system-requirements into the Shepherd service requirement list. (file-system-shepherd-services): Provision 'file-system only when file system services without additional Shepherd requirements are started. * gnu/system/file-systems.scm (file-system): Add shepherd-requirements field to the file-system record. This field is used for adding additional Shepherd requirements to a file-system Shepherd service. * doc/guix.texi: Add documentation for file-system shepherd-requirements. Change-Id: If0392db03d48e8820aa53df1df482c12ec72e1a5 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-03services: nscd: Enable ‘passwd’ and ‘group’ caches by default.Ludovic Courtès
This allows users to specify NSS plugins such as LDAP via the ‘name-services’ field of <nscd-configuration>. Failing that, user code will dlopen whatever passwd/group plugins are listed in /etc/nsswitch.conf, which is likely to fail, typically because those are not in $LD_LIBRARY_PATH. * gnu/services/base.scm (%nscd-default-caches): Add ‘passwd’ and ‘group’ caches. Change-Id: I9c03346a1de2710685f7801eccd2e08007427f5d
2024-06-02services: darkstat: Depend on ‘user-processes’.Ludovic Courtès
* gnu/services/monitoring.scm (darkstat-shepherd-service): Add ‘user-processes’ to ‘requirement’. Change-Id: I6abaefd88c6075a0379e5867838653765dfaa08e
2024-06-02services: avahi: Use socket activation and log to stderr.Ludovic Courtès
* gnu/services/avahi.scm (avahi-shepherd-service): Change to systemd style. Remove ‘--daemonize’ option and #:pid-file. Add #:lazy-start? and #:log-file. Change-Id: I1915243f057ff3bbe281f46f17826f24b124f659
2024-06-02services: dbus: Log to stderr rather than syslog.Ludovic Courtès
* gnu/services/dbus.scm (dbus-shepherd-service): Remove ‘--syslog-only’ option and pass #:log-file unconditionally. Change-Id: I9e42f241e08b95ff01e9ad69551bc2c7ce869d6d
2024-06-02services: tor: Log to stderr rather than syslog.Ludovic Courtès
* gnu/services/networking.scm (tor-configuration->torrc): Change ‘Log’ directive to ‘stderr’. (tor-shepherd-service): Remove /dev/log file system mapping. Change-Id: I2e33ad8033f884ce59d929a4181172325331efe0
2024-06-02services: nscd: ‘log-file’ defaults to #f.Ludovic Courtès
* gnu/services/base.scm (<nscd-configuration>)[log-file]: Default to #f. * doc/guix.texi (Base Services): Clarify documentation. Change-Id: Ia75914fc2665db13bef688d53659083a615ebef4
2024-06-02services: nix: Fix activation.Oleg Pykhalov
This commit follows 797be0ea5c3703ad96acd32c98dca5f946cf5c95. Reported by kiasoc5 <kiasoc5@disroot.org> at <https://lists.gnu.org/archive/html/help-guix/2024-05/msg00185.html>. * gnu/services/nix.scm (nix-activation): Avoid provisioning the store if it already exists. Change-Id: I159e8af5d7bd6ce62857b356d6e9ac68fe16acf4
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-05-30services: xorg: Add startx-command-service-type.Tomas Volf
* gnu/services/xorg.scm (startx-command-profile-service, startx-command-service-type): New variables. * doc/guix.texi (X Window): Document startx-command-service-type. Change-Id: Ia2a7c3b2d5ebf6bcfff40cb2640b17d3baf6eba0 Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2024-05-30services: xorg: Add xorg-start-command-xinit procedure.Tomas Volf
When the user does not use any desktop environment, the typical sequence is to log in and then type `startx' into the tty to get a window manager running. Most distributions do provide a startx by default, but Guix has only an xorg-start-command that is not suitable for this. This commit adds a second procedure, xorg-start-command-xinit, that correctly picks a virtual terminal to use, sets up XAUTHORITY and starts xinit with the correct arguments. That should make running Guix without a desktop environment more approachable. * gnu/services/xorg.scm (xorg-start-command-xinit): New public procedure. * doc/guix.texi (X Window): Document it. Change-Id: I17cb16093d16a5c6550b1766754700d4fe014ae9 Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2024-05-29services: nix: Mount Nix store read only.Oleg Pykhalov
* gnu/services/nix.scm (nix-shepherd-service): Add requirements. (%nix-store-directory): New variable. (nix-service-type): Add file-system-service-type extension. Change-Id: I18a5d58c92c1f2b5b6dcecc3d5b439cc15bf4e49
2024-05-25services: shepherd: Failure to load a service does not prevent booting.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/71144>. Fixes a bug whereby, when loading a service file would fail, for instance due to an unbound variable, a REPL would be opened on the console, preventing the system from booting. This fixes that by isolating service load errors and making them non-fatal. * gnu/services/shepherd.scm (shepherd-configuration-file)[config]: Remove call to ‘call-with-error-handling’. Use ‘filter-map’ instead of ‘map’ to iterate over service files, and catch exceptions raised by ‘load-compiled’. Change-Id: Ie6e76ea514837f85386232f797bc77b2882b5c22
2024-05-25gnu: docker: Allow passing tarballs for images in oci-container-configuration.Giacomo Leidi
This commit allows for loading an OCI image tarball before running an OCI backed Shepherd service. It does so by adding a one shot Shepherd service to the dependencies of the OCI backed service that at boot runs docker load on the tarball. * gnu/services/docker.scm (oci-image): New record; (lower-oci-image): new variable, lower it; (string-or-oci-image?): sanitize it; (oci-container-configuration)[image]: allow also for oci-image records; (oci-container-shepherd-service): use it; (%oci-image-loader): new variable. Change-Id: Ie504f479ea0d47f74b0ec5df9085673ffd3f639d Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-25gnu: docker: Allow setting Shepherd dependencies in oci-container-configuration.Giacomo Leidi
* gnu/services/docker.scm (oci-container-configuration) [requirement]: New field; (list-of-symbols): sanitize it; (oci-container-shepherd-service): use it. * doc/guix.texi: Document it. Change-Id: Ic0ba336a2257d6ef7c658cfc6cd630116661f581 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-25gnu: docker: Allow setting host environment variables in ↵Giacomo Leidi
oci-container-configuration. * gnu/services/docker.scm (oci-container-configuration) [host-environment]: New field; (oci-sanitize-host-environment): sanitize it; (oci-container-shepherd-service): use it. * doc/guix.texi: Document it. Change-Id: I4d54d37736cf09f042a71cb0b6e673abc0948d9c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-25gnu: docker: Provide escape hatch in oci-container-configuration.Giacomo Leidi
* gnu/services/docker.scm (exports): Add missing procedures; (oci-container-service-type)[description]: Docker and OCI images should mean the same thing; (oci-container-configuration): clarify field types; [extra-arguments]: new field; (oci-sanitize-extra-arguments): sanitize it; (oci-container-shepherd-service): use it. * doc/guix.texi: Document it. Change-Id: I64e9d82c8ae538d59d1c482f23070a880156ddf7 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-25services: Add restic-backup service.Giacomo Leidi
* gnu/services/backup.scm: New file. * gnu/local.mk: Add this. * doc/guix.texi: Document this. Change-Id: I9efd5559bb445b484107a7c27c2d0a65ccad1e66 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-15gnu: services: Add power-profiles-daemon-service-type.Dariqq
* gnu/services/pm.scm (power-profiles-configuration): New configuration. (power-profiles-daemon-shepherd-service): New procedure. (power-profiles-daemon-activation): New variable. (power-profiles-daemon-service-type): New procedure. * doc/guix.texi (Power Management Services): Document it. Change-Id: Ib035d993ed82eec2a43f3ba2b4c92f77e08a0fd7 Signed-off-by: Christopher Baines <mail@cbaines.net>
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.