me
/
guix
Archived
1
0
Fork 0
Commit Graph

2045 Commits (48a82a0d683b2e15174d85e745095d47382c4ad3)

Author SHA1 Message Date
Christopher Baines 1da1b42cac
services: guix-build-coordinator: Don't log with timestamps.
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-06 17:53:49 +01:00
Zheng Junjie 2b2337f275
services: oci-container: Fix provided image is string.
gnu/services/docker.scm (oci-container-shepherd-service): When image is
oci-image, call %oci-image-loader.

Change-Id: I26105e82643affe9e7037975e42ec9690089545b
2024-06-06 13:55:20 +08:00
Richard Sent 579df5bc80
services: base: Add optional delayed mount of file-systems
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-04 12:08:34 +02:00
Ludovic Courtès 85ac164c41
services: nscd: Enable ‘passwd’ and ‘group’ caches by default.
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-03 23:00:10 +02:00
Ludovic Courtès 20e7b89218
services: darkstat: Depend on ‘user-processes’.
* gnu/services/monitoring.scm (darkstat-shepherd-service): Add
‘user-processes’ to ‘requirement’.

Change-Id: I6abaefd88c6075a0379e5867838653765dfaa08e
2024-06-02 20:52:24 +02:00
Ludovic Courtès 3298ec0200
services: avahi: Use socket activation and log to stderr.
* 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-02 20:52:24 +02:00
Ludovic Courtès b9b0f0a995
services: dbus: Log to stderr rather than syslog.
* gnu/services/dbus.scm (dbus-shepherd-service): Remove ‘--syslog-only’
option and pass #:log-file unconditionally.

Change-Id: I9e42f241e08b95ff01e9ad69551bc2c7ce869d6d
2024-06-02 20:52:24 +02:00
Ludovic Courtès 49e9c9ec3e
services: tor: Log to stderr rather than syslog.
* 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-02 20:52:24 +02:00
Ludovic Courtès 8f0878da8d
services: nscd: ‘log-file’ defaults to #f.
* gnu/services/base.scm (<nscd-configuration>)[log-file]: Default to #f.
* doc/guix.texi (Base Services): Clarify documentation.

Change-Id: Ia75914fc2665db13bef688d53659083a615ebef4
2024-06-02 20:52:24 +02:00
Oleg Pykhalov bc06affabc
services: nix: Fix activation.
This commit follows 797be0ea5c.

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-02 18:04:34 +03:00
Andrew Tropin eac5171246
Revert "services: home: Use pairs instead of lists."
This reverts commit dbeef44f3c.

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-02 15:06:16 +04:00
Andrew Tropin dbeef44f3c
services: home: Use pairs instead of lists.
* gnu/services/guix.scm: Use pairs instead of lists.
* doc/guix.texi: Update accordingly.
* gnu/tests/guix.scm: Update accordingly.

Change-Id: I0b8d3fa5b214add89bdb84a11fa20d1b319435f0
2024-06-02 13:38:52 +04:00
Tomas Volf e51a930c5c
services: 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>
2024-05-30 22:40:23 +01:00
Tomas Volf 9948816819
services: 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>
2024-05-30 18:23:34 +01:00
Oleg Pykhalov 797be0ea5c
services: 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
2024-05-29 06:16:24 +03:00
Ludovic Courtès cca25a6769
services: 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
2024-05-25 16:52:29 +02:00
Giacomo Leidi c07731a777
gnu: 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>
2024-05-25 15:34:53 +02:00
Giacomo Leidi 68adfaea25
gnu: 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>
2024-05-25 15:34:47 +02:00
Giacomo Leidi e68c1af4f4
gnu: docker: Allow setting host environment variables in 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-25 15:34:43 +02:00
Giacomo Leidi 003c89a85c
gnu: 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>
2024-05-25 15:34:38 +02:00
Giacomo Leidi a237f0d436
services: 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>
2024-05-25 15:24:14 +02:00
Dariqq d0ad4f557f
gnu: 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>
2024-05-15 20:58:03 +01:00
Ludovic Courtès da9f509b03
services: 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
2024-05-05 12:06:23 +02:00
Ian Eure ef8ab6ab66
gnu: 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>
2024-05-04 19:14:27 +02:00
Ahmad Draidi 7d9ad8f3a6
services: 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>
2024-05-04 19:14:25 +02:00
Ahmad Draidi 70f277d0e4
services: 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>
2024-05-04 19:14:25 +02:00
Ahmad Draidi 2cd6831161
services: 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>
2024-05-04 19:14:25 +02:00
Ludovic Courtès fb61323dba
services: build-vm: Provide only one locale.
* gnu/services/virtualization.scm (%virtual-build-machine-operating-system)
[locale, locale-definitions]: New fields.

Change-Id: Ieb24b3a0c210291d8c04412e4c263b5e377b5704
2024-04-29 22:52:08 +02:00
宋文武 3bd8d238ab
services: 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-29 08:54:36 +08:00
Ludovic Courtès 72432080ad
services: gdm: Use ‘make-forkexec-constructor’.
* gnu/services/xorg.scm (gdm-shepherd-service): Use
‘make-forkexec-constructor’ directly.

Change-Id: I4ede4c99996cea4421316411cf8d887d70ce4253
2024-04-28 23:41:50 +02:00
Ludovic Courtès ae36d514aa
services: lightdm: Use ‘make-forkexec-constructor’.
* gnu/services/lightdm.scm (lightdm-shepherd-service)[start]: Use
‘make-forkexec-constructor’ directly.

Change-Id: Iaaa8dcde123ea80ce63c09033b681e40ccc589a4
2024-04-28 23:37:24 +02:00
Richard Sent 59bb53823e
services: 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>
2024-04-17 12:13:03 +02:00
Ludovic Courtès 91e1a457b5
services: 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
2024-04-06 15:14:58 +02:00
Liliana Marie Prikler a915a57d91
Merge branch 'gnome-team' 2024-03-30 09:47:43 +01:00
Ludovic Courtès 6b138626e4
services: postgresql: Simplify execution of ‘initdb’.
* gnu/services/databases.scm (postgresql-activation): Replace
‘primitive-exit’ + ‘system*’ with ‘execl’.

Change-Id: I491fd3093f67af59f240438d7d6123e769e4ec1e
2024-03-30 01:01:32 +01:00
Robert Vollmert ed03a0aa9b
services: 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
2024-03-30 01:01:32 +01:00
Christopher Baines b538c1d7b9
services: 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
2024-03-25 20:40:22 +00:00
Antero Mejr 883e69cdfd
services: 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
2024-03-22 11:40:32 +01:00
Ludovic Courtès a2077e5bee
services: guix-publish: Use ‘make-systemd-constructor’ unconditionally.
The #:lazy-start? parameter was added in the Shepherd 0.10.0, which is
required since commit 477d4f7d24.

* gnu/services/base.scm (guix-publish-shepherd-service): Use
‘make-systemd-constructor’ unconditionally and pass #:lazy-start?.

Change-Id: I95aa079732cd21e32091c7deea2ed2f1bc50f2f2
2024-03-21 17:43:16 +01:00
Ludovic Courtès 6f9d844d2e
services: 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
2024-03-21 17:43:15 +01:00
Christopher Baines 8fa0761264
Merge remote-tracking branch 'savannah/master' into gnome-team
Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745
2024-03-20 14:54:26 +00:00
Zheng Junjie 3ea55fada0
services: 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>
2024-03-19 18:52:16 +08:00
Carlo Zancanaro d25620be4c
gnu: 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>
2024-03-17 12:53:21 +01:00
Liliana Marie Prikler 2ee5451319
Merge branch 'master' into gnome-team 2024-03-10 00:05:58 +01:00
Ludovic Courtès 9e3061a163
services: 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
2024-03-06 23:25:51 +01:00
Liliana Marie Prikler 7bf4ce4582
Merge branch 'master' into gnome-team 2024-02-25 10:28:03 +01:00
Vivien Kraus 06d01c610e
services: 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>
2024-02-24 06:36:24 +01:00
Liliana Marie Prikler 96634bb878
services: 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).
2024-02-23 21:55:44 +01:00
Liliana Marie Prikler acaa89ae42
services: 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.
2024-02-23 21:55:44 +01:00
Vivien Kraus 07bfe15383
services: 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
2024-02-23 21:55:44 +01:00