aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Expand)Author
2024-05-30services: xorg: Add startx-command-service-type....* 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> Tomas Volf
2024-05-30services: xorg: Add xorg-start-command-xinit procedure....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> Tomas Volf
2024-05-29services: nix: Mount Nix store read only....* 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 Oleg Pykhalov
2024-05-25services: shepherd: Failure to load a service does not prevent booting....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 Ludovic Courtès
2024-05-25gnu: docker: Allow passing tarballs for images in oci-container-configuration....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> Giacomo Leidi
2024-05-25gnu: docker: Allow setting Shepherd dependencies in oci-container-configuration....* 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> Giacomo Leidi
2024-05-25gnu: docker: Allow setting host environment variables in oci-container-config......* 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> Giacomo Leidi
2024-05-25gnu: docker: Provide escape hatch in oci-container-configuration....* 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> Giacomo Leidi
2024-05-25services: Add restic-backup service....* 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> Giacomo Leidi
2024-05-15gnu: services: Add power-profiles-daemon-service-type....* 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> Dariqq
2024-05-05services: guix: Use Shepherd 0.10 API for actions....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 Ludovic Courtès
2024-05-04gnu: guix-configuration: Improve offload build-machines....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> Ian Eure
2024-05-04services: cuirass: Remove use-substitutes? configuration option....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> Ahmad Draidi
2024-05-04services: cuirass: Add new configuration options....* 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> Ahmad Draidi
2024-05-04services: cuirass: Use separate extra options for cuirass web process....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> Ahmad Draidi
2024-04-29services: build-vm: Provide only one locale....* gnu/services/virtualization.scm (%virtual-build-machine-operating-system) [locale, locale-definitions]: New fields. Change-Id: Ieb24b3a0c210291d8c04412e4c263b5e377b5704 Ludovic Courtès
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’....* gnu/services/xorg.scm (gdm-shepherd-service): Use ‘make-forkexec-constructor’ directly. Change-Id: I4ede4c99996cea4421316411cf8d887d70ce4253 Ludovic Courtès
2024-04-28services: lightdm: Use ‘make-forkexec-constructor’....* gnu/services/lightdm.scm (lightdm-shepherd-service)[start]: Use ‘make-forkexec-constructor’ directly. Change-Id: Iaaa8dcde123ea80ce63c09033b681e40ccc589a4 Ludovic Courtès
2024-04-17services: Add the Guix Home service....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> Richard Sent
2024-04-06services: guix: Gracefully handle dangling symlink for ‘machines.scm’....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 Ludovic Courtès
2024-03-30Merge branch 'gnome-team'Liliana Marie Prikler
2024-03-30services: postgresql: Simplify execution of ‘initdb’....* gnu/services/databases.scm (postgresql-activation): Replace ‘primitive-exit’ + ‘system*’ with ‘execl’. Change-Id: I491fd3093f67af59f240438d7d6123e769e4ec1e Ludovic Courtès
2024-03-30services: postgresql: Don't initdb when directory exists....* 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 Robert Vollmert
2024-03-25services: nar-herder: Add new configuration options....* 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 Christopher Baines
2024-03-22services: guix: Add ‘channels’ field....* 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 Antero Mejr
2024-03-21services: guix-publish: Use ‘make-systemd-constructor’ unconditionally....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 Ludovic Courtès
2024-03-21services: shepherd: Load each service file in a fresh module....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 Ludovic Courtès
2024-03-20Merge remote-tracking branch 'savannah/master' into gnome-team...Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745 Christopher Baines
2024-03-19services: sddm: Add extension for localed-service-type....* 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> Zheng Junjie
2024-03-17gnu: services: Add insecure-sasl-mechanisms to prosody configuration....* 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> Carlo Zancanaro
2024-03-10Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-03-06services: virtual-build-machine: Disable substitutes by default....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 Ludovic Courtès
2024-02-25Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-02-24services: gdm: Enable wayland by default....* 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> Vivien Kraus
2024-02-23services: desktop: Remove unused imports....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). Liliana Marie Prikler
2024-02-23services: Extend polkit capabilities of gnome-desktop-service....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. Liliana Marie Prikler
2024-02-23services: Extend udev capabilities of gnome-desktop-service....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 Vivien Kraus
2024-02-23services: Modularise gnome-desktop-configuration....* 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. Liliana Marie Prikler
2024-02-20services: Add whoogle-service-type....* 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> Miguel Ángel Moreno
2024-02-18services: virtual-build-machine: Add ‘configuration’ action....* gnu/services/virtualization.scm (build-vm-shepherd-services): Add ‘configuration’ action. * doc/guix.texi (Virtualization Services): Document it. Change-Id: I4734e096d744b3cda0d523692498a73c0029e188 Ludovic Courtès
2024-02-18services: virtual-build-machine: Add periodic GC job....* gnu/services/virtualization.scm (%virtual-build-machine-operating-system): Add ‘periodic-gc’ service. Change-Id: Id5bde1ee3f8e1e549e231375e776d3201ec9e0b5 Ludovic Courtès
2024-02-18services: virtual-build-machine: Use a non-volatile root file system....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 Ludovic Courtès
2024-02-18services: virtual-build-machine: Do not offload when service is stopped....* gnu/services/virtualization.scm (check-vm-availability): Check the value of ‘live-service-running’. Change-Id: Iba858ea0fa417d9276e026b72b4b78791932482e Ludovic Courtès
2024-02-18services: block-facebook-hosts: Use proper unroutable addresses....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 Ludovic Courtès
2024-02-13Merge branch 'master' into gnome-teamLiliana Marie Prikler
2024-02-12services: virtual-build-machine: Use a larger partition by default....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 Ludovic Courtès
2024-02-12services: virtual-build-machine: Add base file systems to default OS....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 Ludovic Courtès
2024-02-10services: Add ‘virtual-build-machine’ service....* 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 Ludovic Courtès
2024-02-10services: secret-service: Make the endpoint configurable....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 Ludovic Courtès