me
/
guix
Archived
1
0
Fork 0
Commit Graph

2023 Commits (3db1a8341c815af3673c367518fbb193f5592864)

Author SHA1 Message Date
Liliana Marie Prikler 1682264fda
Merge branch 'master' into gnome-team 2024-01-14 17:23:44 +01:00
Christopher Baines 75a63e2a2e
gnu: guix-build-coordinator: Update to 0-94.c4c4f5a.
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
2024-01-12 12:06:56 +00:00
Ludovic Courtès 3eac1c82f7
services: bitlbee: Use ‘make-inetd-constructor’ unconditionally.
This construct was introduced in Shepherd 0.9.0.

* gnu/services/messaging.scm (bitlbee-shepherd-service): Use
‘make-inetd-constructor’ unconditionally.

Change-Id: Id1b79077d60609c7f95439ee0d097dfe6e66dd2e
2024-01-08 23:14:46 +01:00
Ludovic Courtès 477d4f7d24
services: shepherd: Use the 0.10.x GOOPS-less interface.
* gnu/services/shepherd.scm (%default-modules): Remove (oop goops).
(shepherd-service-file): Use (service …) instead of (make <service> …).
Use ‘actions’ instead of ‘make-actions’.
(scm->go): Remove use of (oop goops).
(shepherd-configuration-file): Pass ‘register-services’ a list.
Use ‘start-in-the-background’ unconditionally.

Change-Id: I0ad1ba32e339c56ee31e59f160b53d3581277d97
2024-01-08 23:14:46 +01:00
Ludovic Courtès 6c561e7593
services: openssh: Add dependency on ‘networking’.
* gnu/services/ssh.scm (openssh-shepherd-service): Add ‘networking’ to
‘requirement’.

Change-Id: I14c48fe40cce86810a544de6bb7f925bc360653a
2024-01-08 23:14:45 +01:00
Liliana Marie Prikler 2cbb1a6e1e
Merge branch 'master' into gnome-team 2024-01-07 18:31:32 +01:00
Vivien Kraus 0831c72df6
gnu: dbus-service: only symlink /run/dbus the first time
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>
2024-01-07 17:11:02 +01:00
Feng Shu 65af293c37
services: xorg: ‘dbus-daemon-wrapper’ handles Home profile.
* gnu/services/xorg.scm (dbus-daemon-wrapper): Handle Home profile.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ib2f2330b7ea017ddf33d636de71aaa1c316808cb
2024-01-05 17:28:54 +01:00
Ludovic Courtès d5724111ea
daemon: Change default ‘timeout’ and ‘max-silent-time’ values.
Having a timeout seems generally preferable as it makes sure build slots
are not kept busy for no good reason (few package builds, if any, are
expected to exceed these values).

* nix/libstore/globals.cc (Settings::Settings): Change ‘maxSilentTime’
and ‘buildTimeout’.
* gnu/services/base.scm (<guix-configuration>)[max-silent-time]
[timeout]: Change default values.
* doc/guix.texi (Invoking guix-daemon, Base Services): Adjust
accordingly.

Change-Id: I25c50893f3f7fcca451b8f093d9d4d1a15fa58d8
2024-01-05 17:27:21 +01:00
Ludovic Courtès 4e431fda5f
services: shepherd: Remove ‘dynamic-wind’ in ‘call-with-*-file’.
Fixes <https://issues.guix.gnu.org/64653>.

The ‘dynamic-wind’ was causing files to be closed prematurely when
leaving the dynamic extent of PROC for instance via a delimited
continuation, using Fibers (that ‘dynamic-wind’ call was also
semantically incorrect in the first place).

* gnu/services/shepherd.scm (shepherd-configuration-file)
[config](call-with-file): Remove.
(call-with-input-file, call-with-output-file): Rewrite in terms of
‘call-with-port’.

Change-Id: Ica8af71a04f525a15be99985552063cb98cd6ee8
2024-01-05 17:27:20 +01:00
Connor Clark 2f642b6023
services: docker: Add config-file option.
* gnu/services/docker.scm (docker-configuration)[config-file] Add file-like
field.
* doc/guix.texi (Docker Service): Add information about config-file.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-01-03 15:32:01 +01:00
Liliana Marie Prikler 1cd97066c2
Merge branch 'master' into gnome-team 2024-01-01 21:56:00 +01:00
David Thompson 7722da6fa5
services: laminar: Add configuration option for supplementary groups.
* gnu/services/ci (<laminar-configuration>)[supplemental-groups]: New field.
(laminar-shepherd-service): Exec laminard with supplementary groups.
(laminar-account): Add supplementary groups to laminar user.
* doc/guix.texi (Laminar): Document new configuration field.

Change-Id: Iebfdbb58ea8c6dfa22bb8f64f6463e3ad133d2f9
2023-12-28 11:02:56 -05:00
Liliana Marie Prikler 24d4d6fdd6
Merge branch 'master' into gnome-team 2023-12-20 00:05:21 +01:00
Christopher Baines e3faf52c92
services: guix: Move GUIX_LOCPATH handling to packages.
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-22 16:41:44 +00:00
Christopher Baines cbe64c316d
services: guix: Remove guix-build-coordinator-queue-builds service.
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-22 16:41:42 +00:00
Ludovic Courtès 3d6583727e
services: Remove unnecessary references to (gnu build shepherd).
* gnu/services/databases.scm (memcached-shepherd-service): Remove
‘with-imported-modules’ form and ‘modules’ field.
* gnu/services/security-token.scm (pcscd-shepherd-service): Remove
‘with-imported-modules’ form.
* gnu/services/web.scm (hpcguix-web-shepherd-service): Likewise.

Change-Id: Ieb817508f1751e0c1ff551a0e078789a4a813c1c
2023-12-22 00:31:41 +01:00
Ludovic Courtès 62a08abea7
services: jami: Use ‘least-authority-wrapper’.
* gnu/services/telephony.scm (jami-configuration->command-line-arguments)
[wrapper]: New procedure.
Use it.
(jami-shepherd-services): In ‘start’ method of ‘jami’ service, use
‘fork+exec-command’ instead of ‘make-forkexec-constructor/container’.
Remove use of (gnu build shepherd).

Change-Id: Ic71c0c88477d92bf137d9d0a5832bae8721cc210
2023-12-22 00:31:41 +01:00
Ludovic Courtès 8bd1c14997
services: jami-dbus-session: Use ‘least-authority-wrapper’.
* gnu/services/telephony.scm (jami-shepherd-services): Use
‘least-authority-wrapper’ for ‘dbus-daemon’.  Use ‘fork+exec-command’
instead of ‘make-forkexec-constructor/container’ in the ‘start’ method’.
Remove reference to (gnu build shepherd).

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I9d9f8de6ecea77950000ff64aa8c8d097dc028a0
2023-12-22 00:31:41 +01:00
Ludovic Courtès d3ffa06a4d
services: bitlbee: Remove use of ‘make-forkexec-constructor/container’.
This will only affect systems running Shepherd < 0.9.0, which was
released in August 2022.

* gnu/services/messaging.scm (bitlbee-shepherd-service): Remove
‘with-imported-modules’ and ‘modules’ field.  Use
‘make-forkexec-constructor’ instead of
‘make-forkexec-constructor/container’ when ‘make-inetd-constructor’ is
missing.

Change-Id: I35a0487bccaee4799ad0d81388d540e5c7891f7e
2023-12-22 00:31:41 +01:00
Ludovic Courtès bcad46cde6
services: pagekite: Add ‘configuration’ action.
* gnu/services/networking.scm (pagekite-shepherd-service): Add ‘actions’
field.

Change-Id: I04daa846d505b0700b574a82472ecd99b492d7c4
2023-12-22 00:31:41 +01:00
Ludovic Courtès 43acd98e41
services: pagekite: Use ‘least-authority-wrapper’.
* gnu/services/networking.scm (pagekite-shepherd-service): Define
‘config-file’ and ‘mappings’; define ‘pagekite’ in terms of
‘least-authority-wrapper’.  Remove now-unneeded ‘with-imported-modules’
form and ‘modules’ field.  Use ‘make-forkexec-constructor’ instead of
‘make-forkexec-constructor/container’.

Change-Id: I7c6c6266785f6a0f81a69d85f070779a0d6edd91
2023-12-22 00:31:40 +01:00
Thomas Ieong b681e339fa
services: Add rspamd-service-type.
* gnu/services/mail.scm (rspamd-service-type): New variable.
* gnu/tests/mail.scm (%test-rspamd): New variable.
* doc/guix.texi: Document it.

Co-authored-by: Saku Laesvuori <saku@laesvuori.fi>
Change-Id: I7196643f087ffe9fc91aab231b69d5ed8dc9d198
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-14 23:12:24 +01:00
Ludovic Courtès 4017555367
services: hpcguix-web: Add ‘configuration’ action.
* gnu/services/web.scm (hpcguix-web-shepherd-service): Define
‘config-file’ and use it.  Add ‘actions’ field.

Change-Id: I085df403270039ede3c13f21a5d60682c7510e2e
2023-12-14 23:12:24 +01:00
Saku Laesvuori 59d65f66c5
services: guix: Allow gexps evaluating to a list of build-machines.
* gnu/services/base.scm (guix-machines-files-installation): Handle
machines being a mixed list of build-machines and lists of
build-machines.
* doc/guix.texi (Base Services): Document it.

Change-Id: Ie404562ca0b564413233c3a624046da831893dc3
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-12-14 23:12:24 +01:00
Liliana Marie Prikler 4c323c2f83
Merge branch 'master' into HEAD
Change-Id: I3f5d121162d98ef2ae61a62c4da3b0fd19d864e8
2023-12-03 07:20:53 +01:00
Janneke Nieuwenhuizen b0715d7cd2
gnu: Use ‘libc-utf8-locales-for-target’.
* 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-12-02 12:25:45 +01:00
Liliana Marie Prikler 72e886328c
Merge branch 'master' into gnome-team
Change-Id: I88d3789460d1a89917451d80405d89a2824006ac
2023-11-04 07:43:44 +01:00
Liliana Marie Prikler e38d6a9c2f
Merge branch 'master' into gnome-team
Change-Id: Ib6f55bebef2fb235fa59fd5442102a3e0ace3191
2023-10-23 21:09:49 +02:00
Vivien Kraus 498db4de1f
gnu: udev-service-type: accept hardware description file extensions.
The udev-configuration record now has a hardware field.

The contents of the /etc/udev directory now includes hwdb.bin, which is
computed when the system is instanciated (prior to system activation).  The
hardware description files used to generate hwdb.bin are not installed in
/etc, because they are not required at run-time.

The documentation has been reworked so as to explain why creating udev rules
or hardware needs helper functions for configuration or extension.

* gnu/services/base.scm (udev-hardware): New function.
(file->udev-hardware): New function.
(udev-hardware-service): New function.
(udev-etc): Add hwdb.d and hwdb.bin.
(module): Export udev-hardware, file->udev-hardware, and udev-hardware-service.
(<udev-configuration>): Add the native-udev field.
(udev-service-type) [extend]: Populate the hardware field.
* doc/guix.texi (Base Services)[udev-service-type]: Explain configuration and
extension values.
* doc/guix.texi (Base Services)[udev-hardware]: Document it.
[udev-hardware-service]: Same.
* doc/guix.texi (Base Services)[udev-configuration]: Document the native-udev
field.
2023-10-10 21:59:25 +02:00
Vivien Kraus 95400e5c15
services: udev: Make udev-rule helper functions generic.
* gnu/services/base.scm (udev-configurations-union): New function.
(udev-configuration-file): New function, use file->udev-configuration-file.
(file->udev-configuration-file): New function.
(udev-rules-union): Use udev-configurations-union.
(udev-rule): Use udev-configuration-file.
(file->udev-rule): Use file->udev-configuration-file.
2023-10-10 21:59:25 +02:00
Vivien Kraus c2c29eb1b4
services: udev: Rewrite udev-rule to use file->udev-rule.
* gnu/services/base.scm (udev-rule): Use file->udev-rule.
2023-10-10 21:59:24 +02:00
Vivien Kraus 6c2a6033b4
gnu: dbus-service: Make the session bus available under /run/dbus.
According to https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3101, glib
now searches for the session bus socket in runstatedir. The dbus service must
thus have its socket in /run/dbus.

For interoperability with the dbus standard, /run/dbus is also symlinked to
/var/run/dbus.

* gnu/services/dbus.scm (dbus-activation): Symlink /run/dbus to /var/run/dbus.
(%dbus-accounts): Run dbus in /run/dbus.
(dbus-root-service-type): Save the pid file in /run/dbus.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-10-09 21:51:29 +02:00
Bruno Victal 00a28bc435
services: configuration: Add some commonly used predicates.
* gnu/services/configuration.scm (list-of-packages?, list-of-symbols?): New
predicate.
* gnu/services/audio.scm (list-of-symbol?): Remove.
* gnu/services/telephony.scm (string-list?): Remove.
(serialize-string-list): Rename to …
(serialize-list-of-strings): … this.
(account-fingerprint-list?, jami-account-list?): Use list-of.
* doc/guix.texi: Update it.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:06 -04:00
Bruno Victal dd65564db0
services: fstrim-service-type: Serialize with SRFI-171 transducers.
* gnu/services/linux.scm (serialize-fstrim-configuration): Refactor to use
base-transducer.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:05 -04:00
Bruno Victal a7994ed58d
services: configuration: Use transducers within serialize-configuration.
Introduces 'base-transducer', a SRFI-171 based transducer that can be used as a
starting point for writing custom configuration record serializing procedures.

This also fixes the symbol maybe-value serialization test case.

* gnu/services/configuration.scm (empty-serializer?): New predicate.
(base-transducer, tfilter-maybe-value): New procedure.
(serialize-configuration): Adapt to use base-transducer.

* gnu/services/telephony.scm (jami-account->alist): Use transducers to skip
fields that are unserializable or whose field maybe-value is unset.

* tests/services/configuration.scm: Remove test-expect-fail.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:05 -04:00
Bruno Victal 1b29e5db8f
services: configuration: Simplify normalize-extra-args.
* gnu/services/configuration.scm
(define-configuration-helper, normalize-extra-args): Use #f instead of %unset-value.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:04 -04:00
Ludovic Courtès e863274e67
services: hurd-vm: Leave root password uninitialized when offloading.
Starting with 953c65ffdd, offloading to
the Hurd VM would be enabled by default.  However, ‘root’ had an empty
password so any user on the host could connect to the VM over VNC, log
in as root, and potentially populate the host’s store from there.  This
change fixes that.

* gnu/services/virtualization.scm (operating-system-with-locked-root-account):
New procedure.
(hurd-vm-disk-image)[transform]: Add
‘operating-system-with-locked-root-account’ when offloading.
2023-10-05 23:14:55 +02:00
Ludovic Courtès a0818d0236
services: mcron: Hide ‘mkdir-p’ from (shepherd support).
This a avoids a Guile warning about the name collision with (guix build
utils).  The warning was introduced by commit
e0e85f2b23.

* gnu/services/mcron.scm (mcron-shepherd-services): Hide ‘mkdir-p’.
2023-10-05 23:14:55 +02:00
David Thompson dce3672f5a
services: xvnc: Do not specify display number when using inetd.
* gnu/services/vnc.scm (xvnc-configuration->command-line-arguments): Omit X
display number when inetd? is #t.

Change-Id: I0fc8e3068f3ae22421e60e96bd40e3b6e477ca99
2023-11-27 10:55:51 -05:00
Ludovic Courtès da2dc98185
services: rsync: Provide a prettier Shepherd inetd service name.
Previously, a default name would be used for transient inetd services,
leading to names such as #{5rjnskb6011jgmfmpgp63jp9mh9nkl20-rsync-3274}#.

* gnu/services/rsync.scm (rsync-shepherd-service): Pass #:service-name-stem.

Change-Id: I4d0a4a01e122c6eeaa85f104b083cf7e8709eac3
2023-11-26 23:34:48 +01:00
Giacomo Leidi 267786721b
services: Add oci-container-service-type.
* gnu/services/docker.scm (oci-container-configuration): New variable;
(oci-container-shepherd-service): new variable;
(oci-container-service-type): new variable.
* doc/guix.texi (Miscellaneous Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I17cede1975051a9fdd0e0a13b2191d8055266f80
2023-11-23 12:56:42 +01:00
Tomas Volf 82f9e5ac97
services: nftables: Tighten the default rules.
Packets for local host IP ranges should be coming only over lo.  If that is
not the case, we should drop them.  Use iif for the check instead of iifname,
lo is guaranteed to exists, and iif is faster.

* gnu/services/networking.scm (%default-nftables-ruleset): Tighten the rules.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-20 00:33:26 +02:00
Ludovic Courtès e0e85f2b23
services: mcron: Do not #:select ‘%user-log-dir’.
* gnu/services/mcron.scm (mcron-shepherd-services): Do not #:select
‘%user-log-dir’ from (shepherd support) since it’s missing in the
Shepherd 0.8, which is still used on GNU/Hurd.
2023-10-02 17:17:07 +02:00
Ludovic Courtès 3b71b2dca7
gnu: cuirass: Update to 797b26a.
* gnu/packages/ci.scm (cuirass): Update to 797b26a.
* gnu/services/cuirass.scm (cuirass-activation): Create /var/run/cuirass.
2023-10-02 11:07:14 +02:00
Ludovic Courtès 953c65ffdd
services: hurd-vm: Implement zero-configuration offloading.
This allows for zero-configuration offloading to a childhurd.

* gnu/services/virtualization.scm (operating-system-with-offloading-account):
New procedure.
(<hurd-vm-configuration>)[offloading?]: New field.
(hurd-vm-disk-image): Define ‘transform’ and use it.
(hurd-vm-activation): Generate SSH key for user ‘offloading’ and add
authorize it via /etc/childhurd/etc/ssh/authorized_keys.d.
(hurd-vm-configuration-offloading-ssh-key)
(hurd-vm-guix-extension): New procedures.
(hurd-vm-service-type): Add GUIX-SERVICE-TYPE extension.
* gnu/tests/virtualization.scm (run-childhurd-test)[import-module?]: New
procedure.
[os]: Add (gnu build install) and its closure to #:import-modules.
[test]: Add “copy-on-write store” and “offloading” tests.
* doc/guix.texi (Virtualization Services): Document it.
2023-10-01 22:58:20 +02:00
Ludovic Courtès c3a19cc2ac
services: hurd-vm: Disable password-based authentication for root.
With offloading to a childhurd is enabled, allowing password-less root
login in the childhurd to anyone amounts to providing write access to
the host’s store to anyone.  Thus, disable password-based root logins in
the childhurd.

* gnu/services/virtualization.scm (%hurd-vm-operating-system): Change
‘permit-root-login’ to 'prohibit-password.
* gnu/tests/virtualization.scm (%childhurd-os): Provide a custom ‘os’
field for ‘hurd-vm-configuration’.
* doc/guix.texi (Virtualization Services): Remove mention of
password-less root login.
2023-10-01 22:58:20 +02:00
Ludovic Courtès bab6434f58
services: hurd-vm: ‘image’ field has to be an <image> record.
* gnu/services/virtualization.scm (<hurd-vm-configuration>)[image]:
Document as being an <image> record.
(hurd-vm-disk-image): Remove call to ‘system-image’.
(hurd-vm-shepherd-service): Add call to ‘system-image’.
* gnu/tests/virtualization.scm (hurd-vm-disk-image-raw): Remove call to
‘system-image’.
* doc/guix.texi (Virtualization Services): Adjust accordingly.
2023-10-01 22:58:19 +02:00
Ludovic Courtès 416933cde5
services: childhurd: Authorize the childhurd’s key on the host.
This partly automates setting up a childhurd for offloading purposes.

* gnu/services/virtualization.scm (authorize-guest-substitutes-on-host):
New procedure.
(hurd-vm-activation): Use it.
2023-10-01 22:58:19 +02:00
Ludovic Courtès aa40b085dc
services: guix: Support declarative offloading setup.
* gnu/services/base.scm (guix-machines-files-installation): New
procedure.
(<guix-configuration>)[build-machines]: New field.
(guix-activation): Call ‘ guix-machines-files-installation’.
(<guix-extension>)[build-machines]: New field.
(guix-extension-merge): Handle it.
(guix-service-type)[extend]: Likewise.
* doc/guix.texi (Daemon Offload Setup): Add note linking to
‘guix-configuration’.
(Base Services): Document ‘build-machines’ field of <guix-configuration>
and of <guix-extension>.
(Virtualization Services): Add ‘hurd-vm’ anchor.
2023-10-01 22:58:19 +02:00
Ludovic Courtès 21deb89e28
services: guix: Use the right locale package on GNU/Hurd.
Fixes a bug introduced in 0dd293b4d9
whereby guix-daemon on GNU/Hurd would have ‘GUIX_LOCPATH’ set to the
“wrong” locale data (2.35 instead of 2.37).

Consequently, it would fail to setlocale(3) and calls to
‘std::stoi’ (when reading the output of ‘guix authenticate’) would
throw, leading to this error message of guix-daemon:

  unexpected build daemon error: stoi

This would manifest when sending store items to a childhurd:

  $ guix copy --to=localhost:10022 sed
  guix copy: sending 1 store item (1 MiB) to 'localhost'...
  guix copy: error: unknown error while sending files over SSH

The “unknown error” is the ‘stoi’ exception.

This commit fixes that, but for the ‘guix-daemon’ service only.

* gnu/services/base.scm (guix-shepherd-service)[locales]: New variable.
Use it instead of ‘glibc-utf8-locales’.
2023-10-01 22:58:19 +02:00
Ludovic Courtès 81d46ef989
services: hurd-vm: Use the default SSH port number.
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Remove
‘port-number’ from ‘openssh-configuration’.
(hurd-vm-net-options): Change 2222 to 22 in port forwarding.
2023-10-01 22:58:19 +02:00
Marius Bakke 4163c617b8
services: nftables: Add 'configuration' action.
* gnu/services/networking.scm (nftables-shepherd-service)[actions]: New field.
2023-09-22 01:29:18 +08:00
Ludovic Courtès 5e0ae26846
services: hurd-vm: Use ‘qemu-system-x86_64’.
Fixes <https://issues.guix.gnu.org/66053>.

* gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]:
Use ‘qemu-system-x86_64’.
2023-09-18 23:14:00 +02:00
Ludovic Courtès fc3a53525a
services: dhcp-client: Fix name of the provision accessor.
This is a followup to 04f71edb73.

* gnu/services/networking.scm (<dhcp-client-configuration>)[shepherd-provision]:
Fix accessor name.
2023-09-17 16:29:19 +02:00
Alexey Abramov 04f71edb73
services: dhcp-client-configuration: Allow provision override.
* gnu/services/networking.scm (<dhcp-client-configuration>)[shepherd-provision]:
New field.
(dhcp-client-shepherd-service): Honor it.
* doc/guix.texi (Networking Setup): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-09-17 15:31:03 +02:00
Adam Maleszka 944c1b62a1
services: syncthing: Ensure that service runs after mounting home directories.
Sometimes `syncthing-service-type' fails during startup because it tries
to read configuration files from the user's home directory:

Failure on home directory: mkdir /home/xyz/.config: permission denied

This patch adds `user-processes' to the shepherd service requirements to
ensure that `user-homes' is fired before `syncthing' tries to read data
from the home directory.

* gnu/services/syncthing.scm (syncthing-shepherd-service): add
`user-processes' to requirements

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-17 15:31:03 +02:00
Lilah Tascheter 489abccd5f
services: dhcp-client-service-type: Support DDNS.
* gnu/services/networking.scm (dhcp-client-shepherd-service): Enable -I
  flag on dhclient.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-10-14 22:41:43 +02:00
Ludovic Courtès 5a3fb30653
services: cuirass: Add ‘log-expiry’ option for ‘remote-server’.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)[log-expiry]:
New field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.
2023-10-12 22:14:34 +02:00
Christopher Baines 9c9d6c3dab
services: bffe: Use guile from the package.
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-15 11:10:43 +01:00
Christopher Baines 82abf6ddad
services: guix: Add bffe-service-type.
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-09-15 09:57:32 +01:00
Thomas Albers 4cf4bd1ebe
services: cgit: Allow file-like objects for ‘root-readme’.
* gnu/services/cgit.scm (cgit-configuration)[root-readme]: Accept
'file-object' instead of only 'string'

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-09 15:54:37 +02:00
Reily Siegel 5e72bb5c67
services: vpn: Fix broken format string for wireguard dns.
* gnu/services/vpn.scm (wireguard-configuration-file): Fix broken format
string.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-09-09 12:24:12 +02:00
Marius Bakke 0fbeeee7e9
services: Open vSwitch: Depend on 'user-processes' target.
* gnu/services/networking.scm (openvswitch-shepherd-service)[ovsdb](requirement):
Add user-processes.
2023-09-08 18:53:47 +08:00
Simon Tournier 7e4324575c
services: admin: Export rottlog-configuration accessors.
* gnu/services/admin.scm (<rottlog-configuration>): Rename accessors
rottlog-rottlog to rottlog-configuration-rottlog, rottlog-rc-file to
rottlog-configuration-rc-file, rottlog-rotations to
rottlog-configuration-rotations, rottlog-jobs to rottlog-configuration-jobs.
(rottlog-etc, rottlog-jobs-or-default, rottlog-service-type): Adjust
accordingly.
2023-10-24 18:51:39 +02:00
Alexey Abramov 670d985cab
services: static-networking: Add support for bonding.
* gnu/services/base.scm (<network-link>): Add mac-address field. Set
type field to #f by default, so it won't be mandatory. network-link
without a type will be used for existing interfaces.
(assert-network-link-mac-address, mac-address?): Add sanitizer. Allow
valid mac-address or #f.
(assert-network-link-type): Add sanitizer. Allow symbol or #f.
* gnu/services/base.scm (network-set-up/linux,
network-tear-down/linux): Adapt to new structure.
* doc/guix.texi (Networking Setup): Document it.
* gnu/tests/networking.scm (run-static-networking-advanced-test): New
variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-11 18:51:07 +02:00
Giacomo Leidi be3b7f4467
services: Fix oci-container-service-type container user.
The oci-container-configuration supports two user fields: one is the
user, from the host system, under whose authority the OCI-backed
Shepherd service is run; the other is an optional user/UID that can be
passed to the docker run invokation to override the user defined in the
OCI image.

The user from the host system is incorrectly passed to docker run
command, this patches reverts the incorrect behavior and passes the
correct container-user field value.

* gnu/services/docker.scm (oci-container-configuration): Fix the user
passed to the docker run invokation.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-10 22:23:29 +01:00
Michal Atlas 4d934786c0
gnu: gmnisrv: Fix typo.
* gnu/services/web.scm (gmnisrv-service-type): Change the service name to gmnisrv

Change-Id: I1ca46c312db851486313c431fe0454786f0a673e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-03 23:55:09 +01:00
Christopher Baines d823ed25d5
services: nar-herder: Specify a working directory.
Mostly so that core dumps end up here.

* gnu/services/guix.scm (nar-herder-shepherd-services): Specify a working
directory.
2023-08-26 12:19:14 +01:00
Christopher Baines 82b5e89d78
services: guix-data-service: Specify a working directory.
Mostly so that core dumps end up here.

* gnu/services/guix.scm (guix-data-service-shepherd-services): Specify a
working directory.
2023-08-26 12:18:52 +01:00
Christopher Baines aba7c73d04
services: guix-build-coordinator: Specify a working directory.
Mostly so that core dumps end up here.

* gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Specify a
working directory.
2023-08-26 12:18:08 +01:00
Hilton Chain 0c4fb8f43f
services: mcron: Use (shepherd support) module unconditionally.
This fixes a issue introduced in the previous commit 552d070377 (services:
mcron: Add module for %user-log-dir.)  which made the expression invalid when
using a '() module for the system service.

* gnu/services/mcron.scm (mcron-shepherd-services)[modules]: Use
(shepherd support) unconditionally.
2023-08-22 21:37:41 +08:00
Hilton Chain 552d070377
services: mcron: Add module for %user-log-dir.
* gnu/services/mcron.scm (mcron-shepherd-services)[modules]: Add
(shepherd support) for home service.
2023-08-22 20:18:34 +08:00
Ludovic Courtès 2274d71f94
services: file-database: Clarify 'excluded-directories' description.
* gnu/services/admin.scm (file-database-configuration)[excluded-directories]:
Mention that these are regexps.
(%default-file-database-excluded-directories): Likewise.
* doc/guix.texi (File Search Services): Adjust accordingly.
2023-08-22 11:17:53 +02:00
Ludovic Courtès 6fc754c2d6
services: file-database: Set 'PATH' for 'updatedb'.
Previously 'updatedb' would fail to find 'sed', 'rm', etc.

* gnu/services/admin.scm (file-database-mcron-jobs): Set PATH before
invoking 'updatedb'.
2023-08-22 11:17:53 +02:00
Ludovic Courtès 0e6215ac72
gnu: earlyoom: Improve description.
* gnu/services/linux.scm (earlyoom-service-type)[description]: Tweak.
2023-08-21 17:29:51 +02:00
Ludovic Courtès 69d8d0a719
services: earlyoom: Move 'user-processes' to 'requirements'.
Fixes a regression introduced in
9c34b793c1.

* gnu/services/linux.scm (earlyoom-shepherd-service): Move
'user-processes' to 'requirements'.

Reported-by: Attila Lendvai <attila@lendvai.name>
2023-08-21 17:29:50 +02:00
Ludovic Courtès 9c34b793c1
services: Add missing 'user-processes' requirements.
* gnu/services/guix.scm (guix-build-coordinator-agent-shepherd-services):
Add 'user-processes' requirement.
* gnu/services/linux.scm (earlyoom-shepherd-service): Likewise.
2023-08-21 16:16:47 +02:00
Ludovic Courtès 7605c01fcc
home: services: Add Syncthing.
* gnu/home/services/syncthing.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/services/syncthing.scm (<syncthing-configuration>)[home-service?]:
New field.
Adjust 'provision' and 'requirement' depending on 'home-service?', and
likewise for #:user and #:group.
Use 'filter' + 'negate' instead of 'remove'.
* doc/guix.texi (Networking Services): Add note and cross-reference to
"Networking Home Services".
(Networking Home Services): New node.
2023-08-20 22:48:48 +02:00
Ludovic Courtès 1ce3424e22
home: services: Add dicod.
* gnu/home/services/dict.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/services/dict.scm (<dicod-configuration>)[home-service?]: New
field.
(dicod-shepherd-service): Do not map /dev/log when 'home-service?' is
true.  Remove 'user-processes' requirement when 'home-service?' is
true.
(dicod-shepherd-service): Set #:user and #:group to #f when
'home-service?' is true.
* doc/guix.texi (Miscellaneous Home Services): New node.
(Miscellaneous Services): Add cross-reference.
2023-08-20 22:48:47 +02:00
Ludovic Courtès 1c30d5a6bf
home: services: mcron: Define as a mapping of the system service.
* gnu/services/mcron.scm (list-of-gexps?): Remove.
(<mcron-configuration>): Rewrite using 'define-record-type*'.
[home-service?]: New field.
[log-file]: Make thunked and changed default value.
(mcron-shepherd-services): Honor 'home-service?' and remove use of
'maybe-value-set?'.
(mcron-service-type): Inherit 'home-service?' from CONFIG.
(generate-doc): Remove.
* gnu/home/services/mcron.scm (list-of-gexp?)
(<home-mcron-configuration>, job-files, shepherd-schedule-action)
(home-mcron-shepherd-services, home-mcron-profile)
(home-mcron-extend, generate-doc): Remove.
(home-mcron-configuration): Turn into a macro.
(home-mcron-service-type): Define in terms of
'system->home-service-type'.
<top level>: Add service type mapping.
2023-08-20 22:48:47 +02:00
Ludovic Courtès c6c8106c65
services: syncthing: Use 'match-record'.
* gnu/services/syncthing.scm (syncthing-shepherd-service): Use
'match-record-lambda' instead of 'match-lambda'.
2023-08-20 22:48:39 +02:00
Ludovic Courtès 9bfe7fbdbe
services: dicod: Pre-build the GCIDE index.
* gnu/services/dict.scm (%dicod-gcide-index): New variable.
(%dicod-database:gcide): Use it.
(%dicod-activation): Remove.
(dicod-shepherd-service): Remove reference to /var/run/dicod.
(dicod-service-type): Remove ACTIVATION-SERVICE-TYPE extension.
2023-08-20 22:47:26 +02:00
Ludovic Courtès 171ab374f9
services: dicod: Remove Shepherd < 0.9.0 compatibility layer.
* gnu/services/dict.scm (dicod-shepherd-service): Use
'make-inetd-constructor' and 'make-inetd-destructor' unconditionally.
2023-08-20 22:47:25 +02:00
宋文武 0ffbdf3456
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-17 18:38:23 +08:00
Bruno Victal 2b031ca4b2
Revert "services: Add ddclient service."
ddclient is unmaintained as of 2023-07-04 [1] and this service has been broken
for a while [2]. Remove it rather than shipping a broken service for an
unmaintained program that's unlikely to be fixed.

[1]: <https://github.com/ddclient/ddclient>
[2]: <https://issues.guix.gnu.org/52770>

This reverts commit 8490a8346b.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-16 23:13:55 +02:00
Martin Baulig 9dda747975
services: posgresql: Add option to specify UID/GID for postgres user.
Add 'createAccount?', 'uid' and 'gid' to <postgresql-configuation>.

Unlike other system daemons, the PostgreSQL data directory is typically
meant to persist across 'guix system reconfigure' and once created, you
don't want it's UID or GID to change anymore.

Furthermore, if you want to place the data directory on a network share
and use NFSv4 with idmap, then the 'postgres' user must exist when the
'rpc.idmapd' daemon is launched; prior to mounting the share.  And it
needs to be possible to mount the share without configuring PostgreSQL.

With NFSv3, the UID and GID typically needs to match those on the
server.

The added options allow for both of these scenarios:

You can either create the user in (operating-system (users)) completely
independently of the 'postgresql-service-type' (for instance to get your
NFS setup working first prior to configuring your databases) - or "pin"
it's UID / GID values.

* gnu/services/databases.scm (<postgresql-configuration>)[create-account?]
[uid, gid]: New fields.
(%postgresql-accounts): Remove.
(create-postgresql-account): New procedure.
(postgresql-service-type)[extensions]: Use it.
* doc/guix.texi (Database Services): Update accordingly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-16 22:37:52 +02:00
Maxim Cournoyer 132ddca5a4
gnu: elogind: Update to 252.9.
* gnu/packages/freedesktop.scm (elogind): Update to 252.9.
[source]: Replace elogind-revert-polkit-detection.patch with
elogind-fix-rpath.patch in patches.
[configure-flags]: Add the dbussystemservicedir, dbussessionservicedir,
dbussystemservicedir and dbus-interfaces-dir flags.
[phases] <use-global-hook-directory> Update list of patched files.
<adjust-tests> Update substitutions, and skip the copy_holes test.
[native-inputs]: Add python-jinja2.
[inputs]: Add util-linux:lib.
* gnu/services/desktop.scm (elogind-dbus-service)
<elogind-dbus-service-wrapper>: Add a symlink to elogind's
share/dbus-1/system.d to expose D-Bus policy configurations.
* gnu/tests/desktop.scm (run-elogind-test): Adjust expected result for the new
"linger" value.
* gnu/packages/patches/elogind-revert-polkit-detection.patch: Delete file.
* gnu/packages/patches/elogind-fix-rpath.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update.

Series-to: 64938@debbugs.gnu.org
Series-prefix: elogind-updates
Series-version: 2
Series-changes: 2
- Fix elogind system test
- Install D-Bus policy files in elogind-dbus-service-wrapper
- Remove duplicate 'dbussystemservicedir' configure flag
2023-08-16 11:24:10 -04:00
Felix Lechner b8ee6b8a59
services: Add cachefilesd service.
Thanks to Bruno Victal "mirai" for cooperating on this patch and for
generously sharing a wealth of insights about Guix services.

Thanks to Jean-Baptiste Note for an early version of this service!

* doc/guix.texi (Linux Services)[Cachefilesd Service]: New heading.
* gnu/services/linux.scm (serialize-string, non-negative-integer?)
(serialize-non-negative-integer, string, non-negative-integer)
(make-option-serializer, make-percentage-threshold-serializer): New
procedures.
(cachefilesd-configuration): New record type.
(cachefilesd-service-type): New variable.
* gnu/tests/cachefilesd.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Co-authored-by: Bruno Victal <mirai@makinata.eu>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-15 23:30:44 +02:00
Felix Lechner 48d06aee7b
services: Use more 'file-append'.
* gnu/services/authentication.scm (pam-ldap-pam-service): Use
'file-append' instead of #~(string-append ...).
* gnu/services/base.scm (greetd-pam-service): Likewise.
* gnu/services/kerberos.scm (pam-krb5-pam-service): Likewise.
* gnu/services/pam-mount.scm (pam-mount-pam-service): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-15 23:30:44 +02:00
Felix Lechner 20c51c1d2c
services: pam-limits: Keep 'limits.conf' in the store.
* gnu/services/base.scm (pam-limits-service-type)[pam-extension]: Wrap
into a 'lambda' that takes 'limits-file'.  Pass that in the <pam-entry>
'arguments' field.  Define 'make-limits-file' and use it.
Remove ETC-SERVICE-TYPE extension.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-15 23:30:43 +02:00
宋文武 770f3f587d
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-11 20:19:52 +08:00
terramorpha 56fddefc6d
services: syncthing: Use the new command line syntax.
* gnu/services/syncthing.scm (syncthing-shepherd-service): Use the new command line syntax.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-11 00:50:48 +02:00
Miguel Moreno 71aba798d3
services: postgresql: Add more role fields.
* gnu/services/databases.scm (postgresql-role): Add more role fields.
(postgresql-create-roles): Honor it.
* doc/guix.texi (Database Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-11 00:50:48 +02:00
Hartmut Goebel 8055649428
services: Add Plasma desktop service.
* gnu/services/desktop.scm (kde-desktop-service-type): New variable.
(<kde-desktop-configuration>): New record type.
(kde-desktop-configuration): New procedure.
* doc/guix.texi (Desktop Services): Document it.

Co-authored-by: Zheng Junjie <873216071@qq.com>
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-08-03 17:38:03 +08:00
Zheng Junjie 7e056197d7
services: sddm: Set some environment variables for the breeze theme.
* gnu/services/sddm.scm (sddm-service-type): Pass #:environment-variables to
make-forkexec-constructor.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-08-02 22:27:43 +08:00
Brian Cully 8a88b8b0b5
services: Add pam-mount-volume-service-type.
The `pam-mount-volumes-service-type' adds additional volumes to the
pam-mount-service-type in addition to any that are already specified in
`pam-mount-rules'.

* doc/guix.texi (PAM Mount Volume Service): add documentation for
`pam-mount-service-type'.
* gnu/services/pam-mount.scm: new file.
* Makefile.am: add pam-mount tests
* tests/services/pam-mount.scm: new tests

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-10 09:26:08 +02:00
Sam Lockart 969cea6836
file-systems: Use cgroups v2.
cgroup v2 is the next generation of the control groups API.  This patch
replaces the cgroup v1 file systems with the unified cgroup v2 file
system.

cgroup v2 allows for things like containerd/podman to run rootless
containers and opens guix system up to running things like Kubernetes.

Thanks to Hilton Chain <hako@ultrarare.space> for suggesting the Docker
service change.

* gnu/system/file-systems.scm (%control-groups): Change to a single
"cgroup2" mount point.
* gnu/services/docker.scm (docker-shepherd-service): Trim 'requirement'
field accordingly.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-08 18:01:55 +02:00
Ludovic Courtès b3a2b3e723
services: Add 'package-database' service.
* gnu/services/admin.scm (%default-package-database-update-schedule):
New variable.
(<package-database-configuration>): New record type.
(package-database-mcron-jobs): New procedure.
(package-database-service-type): New variable.
* doc/guix.texi (File Search Services): Document it.
2023-08-07 15:11:45 +02:00
Ludovic Courtès e63c87020d
services: Add 'file-database' service.
* gnu/services/admin.scm (%default-file-database-update-schedule)
(%default-file-database-excluded-directories): New variables.
(<file-database-configuration>): New record type.
(file-database-mcron-jobs): New procedure.
(file-database-service-type): New variable.
* doc/guix.texi (File Search Services): New node.
2023-08-07 15:11:44 +02:00