summaryrefslogtreecommitdiff
path: root/gnu/services
Commit message (Collapse)AuthorAgeFilesLines
* services: guix-build-coordinator: Don't log with timestamps.Christopher Baines2024-06-061-1/+3
| | | | | | | | | | | 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
* services: oci-container: Fix provided image is string.Zheng Junjie2024-06-061-12/+13
| | | | | | | gnu/services/docker.scm (oci-container-shepherd-service): When image is oci-image, call %oci-image-loader. Change-Id: I26105e82643affe9e7037975e42ec9690089545b
* services: base: Add optional delayed mount of file-systemsRichard Sent2024-06-041-2/+12
| | | | | | | | | | | | | | | | | | | 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>
* services: nscd: Enable ‘passwd’ and ‘group’ caches by default.Ludovic Courtès2024-06-031-1/+16
| | | | | | | | | | | | | 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
* services: darkstat: Depend on ‘user-processes’.Ludovic Courtès2024-06-021-1/+1
| | | | | | | * gnu/services/monitoring.scm (darkstat-shepherd-service): Add ‘user-processes’ to ‘requirement’. Change-Id: I6abaefd88c6075a0379e5867838653765dfaa08e
* services: avahi: Use socket activation and log to stderr.Ludovic Courtès2024-06-021-5/+9
| | | | | | | | * 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
* services: dbus: Log to stderr rather than syslog.Ludovic Courtès2024-06-021-4/+4
| | | | | | | * gnu/services/dbus.scm (dbus-shepherd-service): Remove ‘--syslog-only’ option and pass #:log-file unconditionally. Change-Id: I9e42f241e08b95ff01e9ad69551bc2c7ce869d6d
* services: tor: Log to stderr rather than syslog.Ludovic Courtès2024-06-021-4/+1
| | | | | | | | * gnu/services/networking.scm (tor-configuration->torrc): Change ‘Log’ directive to ‘stderr’. (tor-shepherd-service): Remove /dev/log file system mapping. Change-Id: I2e33ad8033f884ce59d929a4181172325331efe0
* services: nscd: ‘log-file’ defaults to #f.Ludovic Courtès2024-06-021-1/+1
| | | | | | | * gnu/services/base.scm (<nscd-configuration>)[log-file]: Default to #f. * doc/guix.texi (Base Services): Clarify documentation. Change-Id: Ia75914fc2665db13bef688d53659083a615ebef4
* services: nix: Fix activation.Oleg Pykhalov2024-06-021-4/+6
| | | | | | | | | | | | 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
* Revert "services: home: Use pairs instead of lists."Andrew Tropin2024-06-021-4/+2
| | | | | | | | | 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
* services: home: Use pairs instead of lists.Andrew Tropin2024-06-021-2/+4
| | | | | | | | * gnu/services/guix.scm: Use pairs instead of lists. * doc/guix.texi: Update accordingly. * gnu/tests/guix.scm: Update accordingly. Change-Id: I0b8d3fa5b214add89bdb84a11fa20d1b319435f0
* services: xorg: Add startx-command-service-type.Tomas Volf2024-05-301-0/+33
| | | | | | | | | * 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>
* services: xorg: Add xorg-start-command-xinit procedure.Tomas Volf2024-05-301-0/+80
| | | | | | | | | | | | | | | | | | 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>
* services: nix: Mount Nix store read only.Oleg Pykhalov2024-05-291-3/+20
| | | | | | | | * 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
* services: shepherd: Failure to load a service does not prevent booting.Ludovic Courtès2024-05-251-15/+20
| | | | | | | | | | | | | | | | | | 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
* gnu: docker: Allow passing tarballs for images in oci-container-configuration.Giacomo Leidi2024-05-251-25/+219
| | | | | | | | | | | | | | | | | 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>
* gnu: docker: Allow setting Shepherd dependencies in oci-container-configuration.Giacomo Leidi2024-05-251-1/+9
| | | | | | | | | | | * 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>
* gnu: docker: Allow setting host environment variables in ↵Giacomo Leidi2024-05-251-2/+29
| | | | | | | | | | | | | 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>
* gnu: docker: Provide escape hatch in oci-container-configuration.Giacomo Leidi2024-05-251-9/+37
| | | | | | | | | | | | | | * 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>
* services: Add restic-backup service.Giacomo Leidi2024-05-251-0/+236
| | | | | | | | | * 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>
* gnu: services: Add power-profiles-daemon-service-type.Dariqq2024-05-151-1/+59
| | | | | | | | | | | | * 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>
* services: guix: Use Shepherd 0.10 API for actions.Ludovic Courtès2024-05-051-2/+4
| | | | | | | | | | 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
* gnu: guix-configuration: Improve offload build-machines.Ian Eure2024-05-041-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* services: cuirass: Remove use-substitutes? configuration option.Ahmad Draidi2024-05-041-4/+0
| | | | | | | | | | | | | 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>
* services: cuirass: Add new configuration options.Ahmad Draidi2024-05-041-0/+17
| | | | | | | | | | * 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>
* services: cuirass: Use separate extra options for cuirass web process.Ahmad Draidi2024-05-041-2/+5
| | | | | | | | | | | | | | | 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>
* services: build-vm: Provide only one locale.Ludovic Courtès2024-04-291-0/+9
| | | | | | | * gnu/services/virtualization.scm (%virtual-build-machine-operating-system) [locale, locale-definitions]: New fields. Change-Id: Ieb24b3a0c210291d8c04412e4c263b5e377b5704
* services: Add gvfs-service-type.宋文武2024-04-291-0/+28
| | | | | | | | | | * 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
* services: gdm: Use ‘make-forkexec-constructor’.Ludovic Courtès2024-04-281-40/+38
| | | | | | | * gnu/services/xorg.scm (gdm-shepherd-service): Use ‘make-forkexec-constructor’ directly. Change-Id: I4ede4c99996cea4421316411cf8d887d70ce4253
* services: lightdm: Use ‘make-forkexec-constructor’.Ludovic Courtès2024-04-281-18/+17
| | | | | | | * gnu/services/lightdm.scm (lightdm-shepherd-service)[start]: Use ‘make-forkexec-constructor’ directly. Change-Id: Iaaa8dcde123ea80ce63c09033b681e40ccc589a4
* services: Add the Guix Home service.Richard Sent2024-04-171-0/+38
| | | | | | | | | | | | | | | 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>
* services: guix: Gracefully handle dangling symlink for ‘machines.scm’.Ludovic Courtès2024-04-061-7/+8
| | | | | | | | | | | 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
* Merge branch 'gnome-team'Liliana Marie Prikler2024-03-304-54/+230
|\
| * Merge remote-tracking branch 'savannah/master' into gnome-teamChristopher Baines2024-03-203-1/+14
| |\ | | | | | | | | | Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745
| * \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-03-101-1/+4
| |\ \
| * \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-02-253-3/+92
| |\ \ \
| * | | | services: gdm: Enable wayland by default.Vivien Kraus2024-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * | | | services: desktop: Remove unused imports.Liliana Marie Prikler2024-02-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | | | services: Extend polkit capabilities of gnome-desktop-service.Liliana Marie Prikler2024-02-231-17/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | services: Extend udev capabilities of gnome-desktop-service.Vivien Kraus2024-02-231-18/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | services: Modularise gnome-desktop-configuration.Liliana Marie Prikler2024-02-231-14/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * | | | Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-02-132-148/+510
| |\ \ \ \
| * \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-02-034-27/+449
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-01-144-58/+36
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-01-074-22/+30
| |\ \ \ \ \ \ \
| * | | | | | | | gnu: dbus-service: only symlink /run/dbus the first timeVivien Kraus2024-01-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to an error in the nesting of S-Expressions, the re-linking of /var/run/dbus to /run/dbus would occur even if it was already a correct symlink. It should only happen if the symlink is different. * gnu/services/dbus.scm (dbus-activation): Adjust accordingly. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| * | | | | | | | Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-01-018-339/+223
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2023-12-204-10/+214
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ Merge branch 'master' into HEADLiliana Marie Prikler2023-12-036-14/+285
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3f5d121162d98ef2ae61a62c4da3b0fd19d864e8