3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00
Commit graph

1660 commits

Author SHA1 Message Date
David Thompson
9b5b1dde32
services: gitolite: Relax permissions on service user home directory.
Fixes https://issues.guix.gnu.org/56444

* gnu/services/version-control.scm (gitolite-activation): Modify permissions
  on home directory so that git group has read access.

Reported-by: Evgeny Pisemsky <evgeny@pisemsky.com>

Experienced by David Thompson for years, wondering what was wrong. Thanks for
finding the root cause, Evgeny! :)
2022-08-30 12:37:19 -04:00
Maxim Cournoyer
0ea62e84a7
services: Add lightdm-service-type.
* gnu/services/lightdm.scm: New service.
* tests/services/lightdm.scm: Test it.
* doc/guix.texi (X Window): Document it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.

Co-authored-by: L p R n d n <guix@lprndn.info>
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2022-08-28 22:28:47 -04:00
muradm
3c2d2b4538
gnu: security: Add fail2ban-service-type.
* gnu/services/security.scm: New module.
* gnu/tests/security.scm: New module.
* gnu/local.mk: Add new security module and tests.
* doc/guix.text: Add fail2ban-service-type documentation.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-28 21:46:30 -04:00
muradm
cac3914dfc
gnu: greetd-service-type: Add supplementary groups to greeter.
* gnu/services/base.scm (<greetd-configuration>)
[greeter-supplementary-groups]: New field.
(%greetd-accounts): Rename to...
(greetd-accounts): ... this.  Convert to a function that takes a config
argument.  Use greeter-supplementary-groups.
(greetd-service-type): Adjust accordingly.
* gnu/tests/desktop.scm (%minimal-services): Add test for
greeter-supplementary-groups.
* doc/guix.texi ("Base Services")[greetd-service-type]: Document
greeter-supplementary-groups.
2022-08-26 18:50:33 +02:00
muradm
d1815a68ea
gnu: seatd-service-type: Use seat group.
* gnu/services/desktop.scm (seatd-group-sanitizer): New variable.
(<seatd-configuration>)[user]: Removed field.
[group]: Changed to "seat".  Sanitize via seatd-group-sanitizer.
(seatd-accounts): New variable.
(seatd-environment): Adjust to <seatd-configuration> ABI.
(seatd-service-type)[extensions]: Add account-service-type with seatd-accounts.
* gnu/tests/desktop.scm (run-minimal-desktop-test): Check for correct
ownership of $SEATD_SOCK.
* doc/guix.texi ("Desktop Services")[seatd-service-type]: Mention that users
may need to become members of the "seat" group.
Update default value for group field.
Add explanation on seatd.sock file.
Remove dropped user field.
2022-08-26 18:48:37 +02:00
Attila Lendvai
6fb9759ef3
services: configuration: Change the value of the unset marker.
The new value of %unset-value sticks out more when something goes wrong, and
is also more unique; i.e. easier to search for.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-25 00:10:42 -04:00
Attila Lendvai
ee08277a70
services: Use the new maybe/unset API.
* gnu/home/services/ssh.scm (serialize-address-family): Use the public API of
the maybe infrastructure.
* gnu/services/file-sharing.scm (serialize-maybe-string): Use maybe-value.
(serialize-maybe-file-object): Use maybe-value-set?.
* gnu/services/getmail.scm (getmail-retriever-configuration): Don't use
internals in unset field declarations.
(getmail-destination-configuration): Ditto.
* gnu/services/messaging.scm (raw-content?): Use maybe-value-set?.
(prosody-configuration): Use %unset-value.
* gnu/services/telephony.scm (jami-shepherd-services): Use maybe-value-set?.
(archive-name->username): Use maybe-value-set?.
* tests/services/configuration.scm ("maybe type, no default"): Use
%unset-value.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-25 00:10:32 -04:00
Attila Lendvai
cc32cd41f7
services: configuration: Add maybe-value exported procedure.
* gnu/services/configuration.scm (maybe-value): New procedure.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-24 23:27:54 -04:00
Attila Lendvai
147f8f19f8
services: configuration: Add %unset-value exported variable.
* gnu/services/configuration.scm (%unset-value): New variable.
(normalize-field-type+def): Use it.
(maybe-value-unset?): Use it.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-24 23:27:53 -04:00
Maxim Cournoyer
1c803e63f9
services: configuration: Add a 'maybe-value-set?' procedure.
* gnu/services/configuration.scm (maybe-value-set?): New procedure.
* doc/guix.texi (Complex Configurations): Document it.  Remove comment showing
usage of 'maybe-string' with a default value, which doesn't make sense.

Co-authored-by: Attila Lendvai <attila@lendvai.name>
2022-08-24 22:34:45 -04:00
Maxim Cournoyer
59ee837d8b
services: elogind: Fix default behavior for lid close.
Fixes <https://issues.guix.gnu.org/57052>, which was a behavior change
introduced inadvertently in 4c698cd512.

* gnu/services/desktop.scm (<elogind-configuration>)
[handle-lid-switch-external-power]: Default to *unspecified*, which serializes
to nothing.  This matches upstream behavior, meaning that even when plugged to
a power cord, a laptop will suspend when the lid is closed.
* doc/guix.texi (Desktop Services): Update doc.

Reported-by: Cairn <cairn@pm.me>
2022-08-10 00:33:30 -04:00
Timotej Lazar
ee199cd3ba
services: qemu-guest-agent: Fix arguments to qemu-ga.
Fix the check for empty device path. Do not use --daemonize, since that is
handled by make-forkexec-constructor. Drop the --pidfile option which is
unused without --daemonize.

* gnu/services/virtualization.scm (qemu-guest-agent-shepherd-service): Modify
command arguments.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-08-09 17:15:40 +02:00
Maxim Cournoyer
a2b89a3319
services: configuration: Step back from *unspecified*.
Fixes <https://issues.guix.gnu.org/56799>.

This partially reverts 8cb1a49a39.

Rationale: *unspecified* cannot be serialized thus used as a G-Expression
input, which is problematic/inconvenient when using deeply nested records.  As
an example, jami-service-type was broken when using partially defined
<jami-account> records.

* gnu/services/configuration.scm (define-maybe-helper): Check against the
'unset symbol.
(normalize-field-type+def): Adjust value to 'unset.
(define-configuration-helper): Use 'unset as the default value thunk.
* gnu/services/file-sharing.scm (serialize-maybe-string): Check against the
'unset symbol.
(serialize-maybe-file-object): Likewise.
* gnu/services/messaging.scm (define-all-configurations): Use 'unset as
value.
(raw-content?): Check against 'unset symbol.
(prosody-configuration)[http-max-content-size]: Default to 'unset.
[http-external-url]: Likewise.
[mod-muc]: Likewise.
[raw-content]: Likewise.
* gnu/services/networking.scm (opendht-configuration): Adjust documentation.
* gnu/services/telephony.scm (jami-shepherd-services): Replace *undefined*
with the 'unset symbol.
* tests/services/configuration.scm ("maybe type, no default"): Check against
the 'unset symbol.
* doc/guix.texi: Regenerate the opendht-configuration,
openvpn-client-configuration and openvpn-server-configuration documentation.
2022-08-01 12:49:35 -04:00
Maya
dd3cf14402
services: opensmtpd: Make commands setgid to "smtpq" by default.
This is a patch that fixes "<executable name>: this program must be setgid smtpq".

* gnu/services/mail.scm (<opensmtpd-configuration>)[setgid-commands?]: New field.
(opensmtpd-set-gids): New procedure.
(opensmtpd-service-type)[extensions]: Add SETUID-PROGRAM-SERVICE-TYPE extension.
* doc/guix.texi (Mail Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-08-01 14:08:08 +02:00
Ludovic Courtès
7d0ebc467f
services: rottlog: More convenient default options for <log-rotation>.
* gnu/services/admin.scm (%default-log-rotation-options): New variable.
(%default-rotations): Use it.
* gnu/services/cuirass.scm (cuirass-log-rotations): Likewise.
* doc/guix.texi (Log Rotation): Adjust accordingly.
2022-08-01 00:02:04 +02:00
Ludovic Courtès
e5a6900baf
services: rottlog: Keep important /var/log files for 16 weeks.
The default "rotate" value is 1 as of rottlog 0.72.2, meaning that only
one rotated file would be kept in addition to the active file.

* gnu/services/admin.scm (%default-rotations): Add "rotate" option for
%ROTATED-FILES.
2022-08-01 00:02:04 +02:00
Ludovic Courtès
bfe3fdbc75
services: tor: Do not write to /var/log/tor.log.
The service uses syslog and additionally shepherd 0.9 captures its
stdout/stderr, so there's no point in passing #:log-file.

* gnu/services/networking.scm (tor-shepherd-service): Remove #:log-file
argument to 'make-forkexec-constructor'.
(%tor-log-rotation): Remove.
(tor-service-type): Remove ROTTLOG-SERVICE-TYPE extension.
2022-08-01 00:02:03 +02:00
Ludovic Courtès
fb868cd779
services: tor: Switch to 'least-authority-wrapper'.
* gnu/services/networking.scm (tor-configuration->torrc): Remove "User"
and "PidFile".
(tor-shepherd-service): Use 'least-authority-wrapper' and
'make-forkexec-constructor' instead of
'make-forkexec-constructor/container'.
2022-07-19 18:54:42 +02:00
Timotej Lazar
6a2a8ca1f5
gnu: tests: Fix guix-data-service test.
Since revision 32, guix-data-service starts immediately but returns an HTTP
error code until initialization is complete. Adjust the test accordingly, and
remove the increased startup time limit.

* gnu/services/guix.scm (guix-data-service): Use default #:pid-file-timeout.
* gnu/tests/guix.scm (guix-data-service): Retry the http-get test several
times to give the service time to initialize.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-07-15 09:38:42 +01:00
Oleg Pykhalov
b33e1a183f
services: docker: Fix race condition.
Fixes <https://issues.guix.gnu.org/38432>.

* gnu/packages/patches/containerd-create-pid-file.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add this.
* gnu/packages/docker.scm (containerd)[source]: Add this patch.
* gnu/services/docker.scm
(containerd-shepherd-service): Add #:pid-file and #:pid-file-timeout.
* gnu/services/docker.scm (docker-shepherd-service): Add --containerd flag.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-07-13 21:36:41 -04:00
Christopher Baines
e069de452a
services: guix-build-coordinator: Fix passing parallel-hooks.
The previous approach didn't support a simple alist.

* gnu/services/guix.scm (make-guix-build-coordinator-start-script): Fix
passing parallel-hooks in to the start gexp.
2022-07-03 20:38:09 +01:00
Ricardo Wurmus
cba98b58bf
services: Add anonip-service-type.
* gnu/services/web.scm (anonip-configuration): New record type.
(anonip-configuration?, anonip-configuration-anonip,
anonip-configuration-input, anonip-configuration-output,
anonip-configuration-skip-private?, anonip-configuration-column,
anonip-configuration-replacement, anonip-configuration-ipv4mask,
anonip-configuration-ipv6mask, anonip-configuration-increment,
anonip-configuration-delimiter, anonip-configuration-regex): New procedures.
(anonip-service-type): New service type.
* doc/guix.texi (Log Rotation): Add subheading for Anonip Service.
2022-07-03 14:12:32 +02:00
Ludovic Courtès
bf7e07d299
services: openssh: Listen on IPv6 only when IPv6 is supported.
Fixes <https://issues.guix.gnu.org/56327>.
Reported by André Batista <nandre@riseup.net>.

* gnu/services/ssh.scm (openssh-shepherd-service)[ipv6-support?]: New
variable.
Use it in 'start' method.
2022-07-01 23:29:16 +02:00
Ludovic Courtès
0483c71cc5
services: root-file-system: Cleanly unmount upon shutdown.
Fixes <https://issues.guix.gnu.org/56209>.
Reported by angry rectangle <angryrectangle@cock.li>.

* gnu/packages/admin.scm (shepherd-0.9)[modules, snippet]: New fields.
* gnu/services/base.scm (%root-file-system-shepherd-service): In 'stop'
method, remove 'call-with-blocked-asyncs'.  When 'mount' throws to
'system-error, call (@ (fibers) sleep) and try again.
* gnu/tests/base.scm (run-root-unmount-test): New procedure.
(%test-root-unmount): New variable.
2022-07-01 12:10:28 +02:00
Christopher Baines
b5c6062bce
services: nginx: Add support for extra content in upstream blocks.
I'm looking at this as I'd like to use the keepalive functionality.

* gnu/services/web.scm (nginx-upstream-configuration-extra-content): New
procedure.
(emit-nginx-upstream-config): Include the extra-content if applicable.
* doc/guix.texi (NGINX): Document this.
2022-07-01 09:45:28 +01:00
Christopher Baines
09aeabb9d3
services: guix: Support guix-build-coordinator parallel hooks.
* gnu/services/guix.scm (guix-build-coordinator-configuration-parallel-hooks):
New procedure.
(make-guix-build-coordinator-start-script): Accept and use #:parallel-hooks.
(guix-build-coordinator-shepherd-services): Pass parallel-hooks to
make-guix-build-coordinator-start-script.
* doc/guix.texi (Guix Build Coordinator): Document this new field.
2022-07-01 09:45:28 +01:00
Lars-Dominik Braun
d921516f50
services: greetd: Remove unnecessary user groups.
* gnu/services/base.scm (%greetd-accounts): Remove supplementary groups
users, tty, input, audio. Create special user group “greeter”.
2022-06-30 09:20:37 +02:00
Ludovic Courtès
6505f727e1
services: configuration: Remove 'validate-configuration'.
Now that configuration records use the 'sanitize' property for each
field, 'validate-configuration' has become useless because it's
impossible to construct an invalid configuration record.

* gnu/services/configuration.scm (validate-configuration): Remove.
* gnu/services/mail.scm (dovecot-service): Remove call.
* gnu/services/vpn.scm (openvpn-client-service)
(openvpn-server-service): Likewise.
* doc/guix.texi (Complex Configurations): Remove documentation.
2022-06-24 23:18:21 +02:00
Ludovic Courtès
fb7e6ccba7
services: configuration: Report the location of field type errors.
Previously field type errors would be reported in a non-standard way,
and without any source location information.  This fixes it.

* gnu/services/configuration.scm (configuration-field-error): Add a
'loc' parameter and honor it.  Use 'formatted-message' instead of plain
'format'.
(define-configuration-helper)[field-sanitizer]: New procedure.
Use it.  Use STEM as the identifier of the syntactic constructor of the
record type.  Add a 'sanitize' property to each field.  Remove now
useless STEM macro that would call 'validate-configuration'.
* gnu/services/mail.scm (serialize-listener-configuration): Adjust to
new 'configuration-field-error' prototype.
* tests/services/configuration.scm ("wrong type for a field"): New test.
* po/guix/POTFILES.in: Add gnu/services/configuration.scm.
2022-06-24 23:18:20 +02:00
Ludovic Courtès
3c0c6ee573
services: wireguard: Shepherd 'stop' method really stops.
Until now the 'stop' method would return #t, which shepherd would
interpret as "services could not be stopped".

* gnu/services/vpn.scm (wireguard-shepherd-service): Have 'stop' return #f.
2022-06-22 22:29:48 +02:00
muradm
d6dda325c1
gnu: desktop: Add seatd-service-type.
* gnu/services/desktop.scm (seatd-service-type): New variable
* gnu/services/desktop.scm (seatd-configuration): New data type

Signed-off-by: Lars-Dominik Braun <ldb@leibniz-psychology.org>
2022-06-17 10:30:43 +02:00
muradm
530e0f0260
gnu: base: Add greetd-service-type.
* gnu/services/base.scm (greetd-service-type): New variable
* gnu/services/base.scm (greetd-configuration): New data type
* gnu/services/base.scm (greetd-terminal-configuration): New data type
* gnu/services/base.scm (greetd-agreety-session): New data type
* gnu/services/base.scm (pam-limits-service-type): Should be aware of
greetd PAM service
* gnu/services/pam-mount.scm (pam-mount-pam-service): Should be aware
of greetd PAM service

Signed-off-by: Lars-Dominik Braun <ldb@leibniz-psychology.org>
2022-06-17 10:30:41 +02:00
Attila Lendvai
8cb1a49a39
services: configuration: Use *unspecified* instead of 'disabled.
Use *unspecified* as a marker for field values that have not been set.

Rationale: 'disabled may easily clash with user values for boolean fields, is
confusing (i.e. its meaning is *not* boolean false, but unspecified) and it
also passes silently through the symbol? predicate of a field of type symbol.

* gnu/services/configuration.scm (configuration-missing-default-value):
Renamed from configuration-no-default-value.
(define-maybe-helper): Use *unspecified* instead of 'disabled, and make
the default value optional.
* gnu/home/services/desktop.scm (home-redshift-configuration):
Change (maybe-xyz 'disabled) to maybe-xyz.
* gnu/services/authentication.scm (nslcd-configuration): Likewise.
* gnu/services/cgit.scm (repository-cgit-configuration): Likewise.
* gnu/services/file-sharing.scm (serialize-maybe-string)
(serialize-maybe-file-object): Use 'unspecified?' instead of (eq? val
'disabled).
* gnu/services/messaging.scm (raw-content?): Likewise.
(ssl-configuration): Change (maybe-xyz 'disabled) to maybe-xyz.
(prosody-configuration): Likewise.
* gnu/services/file-sharing.scm (transmission-daemon-configuration):
Likewise.
* gnu/services/messaging.scm (define-all-configurations):
Use *unspecified* instead of 'disabled'.
* gnu/services/networking.scm (opendht-configuration): Likewise.
* gnu/services/pm.scm (tlp-configuration): Likewise.
* gnu/services/telephony.scm (jami-account): Likewise.
(jami-configuration): Likewise.
* gnu/services/vpn.scm (openvpn-client-configuration): Likewise.
* tests/services/configuration.scm ("maybe type, no default")
("maybe type, with default"): New tests.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-15 00:25:21 +02:00
Attila Lendvai
e11517052b
services: configuration: Support (field1 maybe-number "") format.
As opposed to explicitly using 'disabled as value, or using the
(field1 (maybe-number) "") format.

It's mostly the work of Maxime Devos shared under #54674, with some
modifications by Attila Lendvai.

* gnu/services/configuration.scm (normalize-field-type+def): New function.
(define-configuration-helper) (define-configuration): Support new field
format.
* tests/services/configuration.scm (config-with-maybe-number->string): New
function.
("maybe value serialization of the instance"): New test.
("maybe value serialization of the instance, unspecified"): New test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-15 00:25:21 +02:00
Maxim Cournoyer
a860a5fa95
services: dbus: Add a VERBOSE? configuration option.
* gnu/services/dbus.scm (<dbus-configuration>)[verbose?]: New field.
(dbus-shepherd-service): Use it.
(dbus-service)[verbose?]: Add argument and update doc.
* doc/guix.texi (Desktop Services): Document it.
2022-06-14 14:23:21 -04:00
terramorpha
fcad622648
services: guix: Generalize extensions.
* gnu/services/base.scm (<guix-extension>): New record type.
(guix-extension-merge): New procedure.
(guix-service-type): Honor extensions.
* doc/guix.texi (Base Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-13 12:27:35 +02:00
Josselin Poiret
a99015c878
system: Align zram priority with swap-space spec to clarify.
Fixes <https://issues.guix.gnu.org/54783>.

* gnu/services/linux.scm (zram-device-configuration)
[priority]: Adapt to use #f or an integer from 0 to 32767.  Add sanitizer to
warn for the change and delay the field.
(zram-device-configuration->udev-string): Adapt as above.
* doc/guix.texi (Zram Device Service): Remove double copyright line.
Change priority description to refer to the Swap Space one, and suggest not
leaving the default #f on to properly use zram.

Reported-by: Stefan Baums <baums@stefanbaums.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-06-11 00:57:13 -04:00
Maxim Cournoyer
8649ac5eaa
services: jami-configuration: Rename 'jamid' field to 'libjami'.
* gnu/services/telephony.scm (gnu):
(jami-configuration)[jamid]: Rename field to...
[libjami]: ... this.
(jami-configuration->command-line-arguments): Adjust accordingly.
(jami-shepherd-services): Likewise.
2022-06-10 23:52:34 -04:00
Maxim Cournoyer
85b4dabd94
services: jami: Modernize to adjust to Shepherd 0.9+ changes.
This partially fixes <https://issues.guix.gnu.org/54786>, allowing the 'jami'
and 'jami-provisioning' system tests to pass again.

In version 0.9.0, Shepherd constructors are now run concurrently, via
cooperative scheduling (Guile Fibers).  The Jami service previously relied on
blocking sleeps while polling for D-Bus services to become ready after forking
a process; this wouldn't work anymore since while blocking the service process
wouldn't be given the chance to finish starting.  The new reliance on Fibers
in Shepherd's fork+exec-command in the helper 'send-dbus' procedure also meant
that it wouldn't work outside of Shepherd anymore.  Finally, the
'start-service' Shepherd procedure used in the test suite would cause the Jami
daemon to be spawned multiple times (a bug introduced in Shepherd 0.9.0).

To fix/simplify these problems, this change does the following:

1. Use the Guile AC/D-Bus library for D-Bus communication, which simplify
things, such as avoiding the need to fork 'dbus-send' processes.

2. The non-blocking 'sleep' version of Fiber is used for the 'with-retries'
waiting syntax.

3. A 'dbus' package variant is used to adjust the session bus configuration,
tailoring it for the use case at hand.

4. Avoid start-service in the tests, preferring 'jami-service-available?' for
now.

* gnu/build/jami-service.scm (parse-dbus-reply, strip-quotes)
(deserialize-item, serialize-boolean, dbus-dict->alist)
(dbus-array->list, parse-account-ids, parse-account-details)
(parse-contacts): Delete procedures.
(%send-dbus-binary, %send-dbus-bus, %send-dbus-user, %send-dbus-group)
(%send-dbus-debug): Delete parameters.
(jami-service-running?): New procedure.
(send-dbus/configuration-manager): Rename to...
(call-configuration-manager-method): ... this.  Turn METHOD into a positional
argument.  Turn ARGUMENTS into an optional argument.  Invoke
`call-dbus-method' instead of `send-dbus', adjusting callers accordingly.
(get-account-ids, id->account-details, id->account-details)
(id->volatile-account-details, username->id, add-account remove-account)
(username->contacts, remove-contact, add-contact, set-account-details)
(set-all-moderators, username->all-moderators?, username->moderators)
(set-moderator): Adjust accordingly.
(with-retries, send-dbus, dbus-available-services)
(dbus-service-available?): Move to ...
* gnu/build/dbus-service.scm: ... this new module.
(send-dbus): Rewrite to use the Guile AC/D-Bus library.
(%dbus-query-timeout, sleep*): New variables.
(%current-dbus-connection): New parameter.
(initialize-dbus-connection!, argument->signature-type)
(call-dbus-method): New procedures.
(dbus-available-services): Adjust accordingly.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register new module.
* gnu/packages/glib.scm (dbus-for-jami): New variable.
* gnu/services/telephony.scm: (jami-configuration)[dbus]: Default to
dbus-for-jami.
(jami-dbus-session-activation): Write a D-Bus daemon configuration file at
'/var/run/jami/session-local.conf'.
(jami-shepherd-services): Add the closure of guile-ac-d-bus and guile-fibers
as extensions.  Adjust imported modules.  Remove no longer used parameters.
<jami-dbus-session>: Use a PID file, avoiding the need for the manual
synchronization.
<jami>:  Set DBUS_SESSION_BUS_ADDRESS environment variable.  Poll using
'jami-service-available?' instead of 'dbus-service-available?'.
* gnu/tests/telephony.scm (run-jami-test): Add needed Guile extensions.  Set
DBUS_SESSION_BUS_ADDRESS environment variable.  Adjust all tests to use
'jami-service-available?' to determine if the service is started rather than
the now problematic Shepherd's 'start-service'.
2022-06-10 23:52:33 -04:00
Ludovic Courtès
264ca9452f
services: syslogd: Do not fsync at each line.
Fixes <https://issues.guix.gnu.org/55707>.

Previously Inetutils' syslogd would call 'fsync' after each line written
to a file.  This would significantly increase boot times on machines
with slow-ish spinning HDDs, where each 'fsync' call would take between
0.1s and 0.4s (and we'd do two of them for each line, one for
/var/log/messages and one for /var/log/debug).

* gnu/services/base.scm (%default-syslog.conf): Add a '-' before each
file name, except /var/log/secure.  Change what goes to /var/log/debug.
2022-06-06 22:43:31 +02:00
Timotej Lazar
1c537569ed
services: guix-data-service: Increase timeout for service start.
The guix-data-service system test fails on a slower machine with a one-minute
time limit.

* gnu/services/guix.scm (guix-data-service): Double the #:pid-file-timeout.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-05 23:35:31 +02:00
Kiran Shila
29f62a7f5a
services: pam-limits: Add sudo and sshd.
* gnu/services/base.scm (pam-limits-service-type): Add "sudo" and "sshd"
to the list.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-05 23:35:31 +02:00
Ludovic Courtès
47d73ac41d
services: bitlbee: Run under a UTF-8 locale.
* gnu/services/messaging.scm (bitlbee-shepherd-service): In the
'make-inetd-constructor' case, set GUIX_LOCPATH and LC_ALL.  In the
'least-authority-wrapper' call, preserve GUIX_LOCPATH and LC_ALL, and
map /run/current-system/locale.
2022-06-04 00:11:45 +02:00
Attila Lendvai
7901639d24
services: ddclient: No need to import (ice-9 rdelim) from the host.
* gnu/services/dns.scm (ddclient-activation): Remove (ice-9 rdelim) from the
with-imported-modules form.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-04 00:11:44 +02:00
Maxim Cournoyer
edac21bfc7
gnu: Remove wicd.
The last release is from 2017, stuck on Python 2.

* gnu/packages/wicd.scm: Delete file.
* gnu/packages/patches/wicd-bitrate-none-fix.patch: Delete file.
* gnu/packages/patches/wicd-get-selected-profile-fix.patch: Likewise.
* gnu/packages/patches/wicd-urwid-1.3.patch: Likewise.
* gnu/packages/patches/wicd-wpa2-ttls.patch: Likewise.
* gnu/local.mk: De-register them.
* gnu/services/networking.scm: Remove wicd service...
* doc/guix.texi: ... and its documentation.
* gnu/system/linux-container.scm (containerized-operating-system)
<services-to-drop>: Remove wicd-service-type.
2022-05-31 14:53:42 -04:00
Ludovic Courtès
f383838a09
services: elogind: When started by dbus-daemon, wait for the Shepherd service.
Fixes <https://issues.guix.gnu.org/55444>.

Previously shepherd and dbus-daemon would race to start elogind.  In
some cases (for instance if one logs in quickly enough on the tty),
dbus-daemon would "win" and start elogind before shepherd has had a
chance to do it.  Consequently, shepherd would fail to start elogind and
mark it as stopped and disabled, in turn preventing services that depend
on it such as 'xorg-server' from starting.

* gnu/services/desktop.scm (elogind-dbus-service): Rewrite to refer to a
wrapper that waits for the 'elogind' Shepherd service.
2022-05-28 23:23:36 +02:00
Ludovic Courtès
b04ae71def
services: herd: Add 'wait-for-service'.
* gnu/services/herd.scm (wait-for-service): New procedure.
2022-05-28 23:23:36 +02:00
Ludovic Courtès
4577f3c6b6
services: openssh: Remove authorized_keys.d before copying the new one.
Fixes <https://issues.guix.gnu.org/55661>.

* gnu/services/ssh.scm (openssh-activation): Fix typo in
'delete-file-recursively' call.
2022-05-26 17:00:33 +02:00
Ludovic Courtès
0dc63ce519
services: openssh: Fix computation of the authorized-key directory.
Fixes a bug introduced in 1f29ed4a81,
whereby 'authorized-key-directory' would end up creating empty files for
authorized keys passed as an extension.

See <https://issues.guix.gnu.org/55359>.

* gnu/services/ssh.scm (extend-openssh-authorized-keys): Call
'alist->vhash' on the alist resulting from the 'append' call.
2022-05-26 16:42:06 +02:00
Oleg Pykhalov
1f29ed4a81
services: ssh: Fix extend-openssh-authorized-keys.
Fixes #55359.

* gnu/services/ssh.scm (extend-openssh-authorized-keys): Use KEYS argument.
2022-05-26 08:22:03 +03:00
Christopher Baines
c4ad275709
gnu: guix-build-coordinator: Update to 0-53.3de63f1.
* gnu/packages/package-management.scm (guix-build-coordinator): Update to
0-53.3de63f1.
* gnu/services/guix.scm (guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id):
New procedure.
(guix-build-coordinator-queue-builds-shepherd-services): Use the guix-data-service-build-server-id.
* doc/guix.texi (Guix Build Coordinator): Document the new queue builds
configuration field.
2022-05-25 09:20:03 +01:00
ykonai
29c9317808
services: Add log rotation to most networking services.
This adds a simple log rotation extension to every networking service that
specifies a #:log-file in its Shepherd service, which should prevent some logs
from accumulating indefinitely.

* gnu/services/networking.scm (%ntp-log-rotation): New variable.
(ntp-service-type): Extend 'rottlog-service-type'.
(openntpd-shepherd-service): Change #:log-file argument to "/var/log/ntpd.log".
(openntpd-service-type): Extend 'rottlog-service-type'.
(%tor-log-rotation): New variable.
(tor-service-type): Extend 'rottlog-service-type'.
(%connman-log-rotation): New variable.
(connman-service-type): Extend 'rottlog-service-type'.
(%hostapd-log-rotation): New variable.
(hostapd-service-type): Extend 'rottlog-service-type'.
(%pagekite-log-rotation): New variable.
(pagekite-service-type): Extend 'rottlog-service-type'.
(%yggdrasil-log-rotation): New variable.
(yggdrasil-service-type): Extend 'rottlog-service-type'.
(%ipfs-log-rotation): New variable.
(ipfs-service-type): Extend 'rottlog-service-type'.
(%keepalived-log-rotation): New variable.
(keepalived-service-type): Extend 'rottlog-service-type'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-24 17:19:03 +02:00
Ludovic Courtès
d2b3400f79
services: openssh: Listen on both IPv4 and IPv6.
Fixes <https://issues.guix.gnu.org/55335>.
Reported by Christopher Baines <mail@cbaines.net>.

* gnu/services/ssh.scm (openssh-shepherd-service)[inetd-style?]: New variable.
<start>: Use it.  When using 'make-inetd-constructor', pass a list of
endpoints as is possible with the Shepherd 0.9.1.
<stop>: Adjust accordingly.
* gnu/tests/ssh.scm (run-ssh-test)["wait for port 22"]: Rename to...
["wait for port 22, IPv4"]: ... this.
["wait for port 22, IPv6"]: New test.
2022-05-22 21:56:40 +02:00
Ludovic Courtès
9a5d686923
services: Add more description fields.
* gnu/services.scm (simple-service): Add 'description' field.
* gnu/services/base.scm (udev-rules-service): Likewise.
* gnu/system/install.scm (configuration-template-service-type): Likewise.
* gnu/tests.scm (marionette-service-type): Likewise.
2022-05-18 22:29:54 +02:00
Ludovic Courtès
ecfcdff23a
services: bitlbee: Run as user "bitlbee".
Fixes <https://issues.guix.gnu.org/55450>.

Fixes a bug introduced in 211fe3f66e
whereby the inetd-spawned process would run as root (it would still run
in a separate user namespace, with UID 1000 inside of it, but had the
authority of root).

* gnu/services/messaging.scm (bitlbee-shepherd-service): Pass #:user
and #:group to 'make-inetd-constructor'.  Remove "-u bitlbee" argument
to BITLBEE*.
2022-05-16 15:48:08 +02:00
Ludovic Courtès
7855a9366b
services: pipefs: Correctly handle lack of extensions.
Previously, in the absence of extensions of 'pipefs-service-type', we'd
get a wrong-type-arg exception while folding services:

  In gnu/services/nfs.scm:
     134:37  1 (_ #<<pipefs-configuration> mount-point: "/var/lib/nfs…> …)
  In ice-9/boot-9.scm:
    1685:16  0 (raise-exception _ #:continuable? _)
  In procedure car: Wrong type argument in position 1 (expecting pair): ()

* gnu/services/nfs.scm (pipefs-service-type)[extend]: Gracefully handle
the case where VALUES is the empty list, as done in 'gss-service-type'.
2022-05-03 18:02:27 +02:00
Ludovic Courtès
2a37f174be
services: Make sure Shepherd destructors match constructors.
This is a followup to b06ecc5751,
211fe3f66e, and
fd57ce267c.

* gnu/services/base.scm (guix-publish-shepherd-service): Change 'stop'
method to use 'make-systemd-destructor' when 'make-systemd-constructor'
is used.
* gnu/services/dict.scm (dicod-shepherd-service): Change 'stop' method
to use 'make-inetd-destructor' when 'make-inetd-constructor' is used.
* gnu/services/messaging.scm (bitlbee-shepherd-service): Likewise.
2022-05-02 17:57:30 +02:00
Ludovic Courtès
6075d25143
services: bitlbee: Preserve 'PURPLE_PLUGIN_PATH'.
Fixes a regression introduced in
211fe3f66e whereby, in inetd mode, and
when using 'bitlbee-purple', libpurple plugins would not be found.

* gnu/services/messaging.scm (bitlbee-shepherd-service): Pass
 #:preserved-environment-variables to 'least-authority-wrapper'.
2022-05-02 15:14:41 +02:00
Ludovic Courtès
fee06d5aaa
services: opendht: Use 'least-authority-wrapper'.
* gnu/services/networking.scm (opendht-configuration->command-line-arguments):
Use 'least-authority-wrapper'.
(opendht-shepherd-service): Use 'make-forkexec-constructor'.
2022-05-01 21:30:36 +02:00
Ludovic Courtès
dac4efc466
services: quassel: Use 'least-authority-wrapper'.
* gnu/services/messaging.scm (quassel-shepherd-service): Use
'least-authority-wrapper' instead of
'make-forkexec-constructor/container'.
2022-05-01 21:30:36 +02:00
Ludovic Courtès
53dbc6fd9a
services: wesnothd: Use 'least-authority-wrapper'.
* gnu/services/games.scm (wesnothd-shepherd-service): Use
'least-authority-wrapper' instead of
'make-forkexec-constructor/container'.
2022-05-01 21:30:36 +02:00
Ludovic Courtès
19df5f2423
services: wesnothd: Grant write access to /var/run/wesnothd.
* gnu/services/games.scm (wesnothd-shepherd-service): Augment 'modules'
field.  Pass #:mappings argument to 'make-forkexec-constructor/container'.
(wesnothd-activation): New variable.
(wesnothd-service-type): Extend ACTIVATION-SERVICE-TYPE.
2022-05-01 21:30:36 +02:00
Ludovic Courtès
f5ef68ba98
services: ipfs: Use 'least-authority-wrapper'.
* gnu/services/networking.scm (ipfs-binary): Call
'least-authority-wrapper'.
(%ipfs-home-mapping): Remove surrounding gexp.
(ipfs-shepherd-service)[exec-command]: New procedure.
[ipfs-config-command, set-config!-gexp, shepherd&co]
[container-gexp, container-script]: Remove.
[inner-gexp]: Use 'exec-command'.
2022-05-01 21:30:35 +02:00
Ludovic Courtès
211fe3f66e
services: bitlbee: Use 'make-inetd-constructor'.
* gnu/services/messaging.scm (bitlbee-shepherd-service): Add call to
'least-authority-wrapper'.  In 'start' method, use
'make-inetd-constructor' when available.
* gnu/tests/messaging.scm (run-bitlbee-test)["valid PID"]: Remove test.
2022-05-01 21:30:35 +02:00
Ludovic Courtès
fd57ce267c
services: dicod: Use 'make-inetd-constructor'.
* gnu/services/dict.scm (dicod-shepherd-service): Use
'make-inetd-constructor' in the 'start' method when available.
2022-05-01 21:30:35 +02:00
Ludovic Courtès
002bcb7eb0
services: dicod: Rewrite using 'least-authority-wrapper'.
* gnu/services/dict.scm (dicod-shepherd-service): Rewrite using
'least-authority-wrapper' plus 'make-forkexec-constructor' instead of
'make-forkexec-constructor/container'.
2022-05-01 21:30:35 +02:00
Ludovic Courtès
774f8804ba
gexp: Add 'references-file'.
* gnu/services/base.scm (references-file): Remove.
* guix/gexp.scm (references-file): New procedure.
* tests/gexp.scm ("references-file"): New test.
2022-05-01 21:30:34 +02:00
Ludovic Courtès
b06ecc5751
services: guix-publish: Use socket activation when possible.
* gnu/services/base.scm (guix-publish-shepherd-service): Use
'make-systemd-constructor' when it's available and ADVERTISE? is false.
2022-04-29 22:59:08 +02:00
Ludovic Courtès
9d7248cd87
services: Add missing 'description' fields.
* gnu/services/databases.scm (postgresql-service-type)[description]: New field.
(memcached-service-type)[description]: New field.
(mysql-service-type)[description]: New field.
(redis-service-type)[description]: New field.
* gnu/services/desktop.scm (geoclue-service-type)[description]: New
field.
(udisks-service-type)[description]: New field.
(elogind-service-type)[description]: New field.
(account-service-type)[description]: New field.
* gnu/services/kerberos.scm (krb5-service-type)[description]: New field.
(pam-krb5-service-type)[description]: New field.
* gnu/services/lirc.scm (lirc-service-type)[description]: New field.
* gnu/services/mail.scm (dovecot-service-type)[description]: New field.
(opensmtpd-service-type)[description]: New field.
(mail-aliases-service-type)[description]: New field.
(exim-service-type)[description]: New field.
* gnu/services/monitoring.scm (zabbix-server-service-type)[description]:
New field.
(zabbix-agent-service-type)[description]: New field.
* gnu/services/nfs.scm (rpcbind-service-type)[description]: New field.
(pipefs-service-type)[description]: New field.
(gss-service-type)[description]: New field.
(idmap-service-type)[description]: New field.
* gnu/services/spice.scm (spice-vdagent-service-type)[description]: New field.
* gnu/services/sysctl.scm (sysctl-service-type)[description]: New field.
* gnu/services/virtualization.scm (libvirt-service-type)[description]:
New field.
(virtlog-service-type)[description]: New field.
* gnu/services/vpn.scm (openvpn-server-service-type)[description]: New field.
(openvpn-client-service-type)[description]: New field.
(wireguard-service-type)[description]: New field.
* gnu/services/web.scm (httpd-service-type)[description]: New field.
(fcgiwrap-service-type)[description]: New field.
(agate-service-type)[description]: New field.
[name]: Fix.
2022-04-29 18:07:16 +02:00
Christopher Baines
e32cc011bb
services: nar-herder: Allow specifying the log level.
* gnu/services/guix.scm (nar-herder-configuration-log-level): New procedure.
(nar-herder-shepherd-services): Pass the log-level to the nar-herder process.
* doc/guix.texi (Nar Herder): Document configuring the log-level.
2022-04-22 15:31:42 +01:00
Ludovic Courtès
f95c037b79
services: yggdrasil: Tweak description.
* gnu/services/networking.scm (yggdrasil-service-type)[description]: Add
@command markup.
2022-04-19 12:29:43 +02:00
Ludovic Courtès
6b677f4299
services: ipfs: Adjust for Shepherd 0.9.
This is a followup to e1f0c88ea2.

* gnu/services/networking.scm (%ipfs-activation)[shepherd&co]: New
variable.
[container-gexp]: Use it.
2022-04-18 23:26:23 +02:00
Liliana Marie Prikler
42679e3f81
services: Replace murmur-service-type with mumble-server-service-type.
* gnu/services/telephony.scm (murmur-configuration, make-murmur-configuration)
(murmur-configuration?, murmur-configuration-package)
(murmur-configuration-user, murmur-configuration-group)
(murmur-configuration-port, murmur-configuration-welcome-text)
(murmur-configuration-server-password)
(murmur-configuration-max-users)
(murmur-configuration-max-user-bandwidth)
(murmur-configuration-database-file)
(murmur-configuration-log-file, murmur-configuration-pid-file)
(murmur-configuration-autoban-attempts)
(murmur-configuration-autoban-timeframe)
(murmur-configuration-autoban-time)
(murmur-configuration-opus-threshold)
(murmur-configuration-channel-nesting-limit)
(murmur-configuration-channelname-regex)
(murmur-configuration-username-regex)
(murmur-configuration-test-message-length)
(murmur-configuration-image-message-length)
(murmur-configuration-cert-required?)
(murmur-configuration-remember-channel?)
(murmur-configuration-allow-html?)
(murmur-configuration-allow-ping?)
(murmur-configuration-bonjour?)
(murmur-configuration-send-version?)
(murmur-configuration-log-days)
(murmur-configuration-obfuscate-ips?)
(murmur-configuration-ssl-cert murmur-configuration-ssl-key)
(murmur-configuration-ssl-dh-params murmur-configuration-ssl-ciphers)
(murmur-configuration-public-registration)
(murmur-configuration-file)
(murmur-public-registration-configuration)
(make-murmur-public-registration-configuration)
(murmur-public-registration-configuration?)
(murmur-public-registration-configuration-name)
(murmur-public-registration-configuration-url)
(murmur-public-registration-configuration-password)
(murmur-public-registration-configuration-hostname)
(murmur-service-type): Add deprecation alias and rename to ...
(mumble-server-configuration, make-mumble-server-configuration)
(mumble-server-configuration?, mumble-server-configuration-package)
(mumble-server-configuration-user, mumble-server-configuration-group)
(mumble-server-configuration-port, mumble-server-configuration-welcome-text)
(mumble-server-configuration-server-password)
(mumble-server-configuration-max-users)
(mumble-server-configuration-max-user-bandwidth)
(mumble-server-configuration-database-file)
(mumble-server-configuration-log-file, mumble-server-configuration-pid-file)
(mumble-server-configuration-autoban-attempts)
(mumble-server-configuration-autoban-timeframe)
(mumble-server-configuration-autoban-time)
(mumble-server-configuration-opus-threshold)
(mumble-server-configuration-channel-nesting-limit)
(mumble-server-configuration-channelname-regex)
(mumble-server-configuration-username-regex)
(mumble-server-configuration-test-message-length)
(mumble-server-configuration-image-message-length)
(mumble-server-configuration-cert-required?)
(mumble-server-configuration-remember-channel?)
(mumble-server-configuration-allow-html?)
(mumble-server-configuration-allow-ping?)
(mumble-server-configuration-bonjour?)
(mumble-server-configuration-send-version?)
(mumble-server-configuration-log-days)
(mumble-server-configuration-obfuscate-ips?)
(mumble-server-configuration-ssl-cert mumble-server-configuration-ssl-key)
(mumble-server-configuration-ssl-dh-params) (mumble-server-configuration-ssl-ciphers)
(mumble-server-configuration-public-registration)
(mumble-server-configuration-file)
(mumble-server-public-registration-configuration)
(make-mumble-server-public-registration-configuration)
(mumble-server-public-registration-configuration?)
(mumble-server-public-registration-configuration-name)
(mumble-server-public-registration-configuration-url)
(mumble-server-public-registration-configuration-password)
(mumble-server-public-registration-configuration-hostname)
(mumble-server-service-type): ... these.
* doc/guix.texi ("Murmur (VoIP server)"): Rename to ...
("Mumble server"): ... this.  Adjust documentation accordingly.
2022-04-12 20:32:32 +02:00
Ludovic Courtès
eeb8ac43c8
services: shepherd: Do not unload transient services.
Fixes <https://issues.guix.gnu.org/54812>.

Starting with Shepherd 0.9.0 and the use of 'make-inetd-constructor' in
commit 808b9e8504, systems might be
running transient Shepherd services such as those corresponding to SSH
connections.  Before this change, 'shepherd-service-upgrade' would have
those transient services in the list of services to unload; concretely,
that would lead all SSH connections to be closed upon 'guix system
reconfigure'.

* gnu/services/shepherd.scm (shepherd-service-upgrade): Remove transient
services to TO-UNLOAD.
2022-04-10 00:17:40 +02:00
Ludovic Courtès
a2c759c830
services: herd: Report whether a service is transient.
* gnu/services/herd.scm (<live-service>)[transient?]: New field.
(current-services): Check the value of 'transient?'.  Call
'resolve-transients'.
(resolve-transients): New procedure.
2022-04-10 00:17:40 +02:00
Ludovic Courtès
0996d48d0e
services: rottlog: Keep fewer "guix-daemon.log" files.
* gnu/services/admin.scm (%default-rotations): For "guix-daemon.log",
add 'options' field.
2022-04-09 00:30:40 +02:00
Ludovic Courtès
808b9e8504
services: openssh: Start as an inetd service.
* gnu/services/ssh.scm (openssh-shepherd-service): Use
'make-inetd-constructor' when it is defined.
(<openssh-configuration>)[max-connections]: New field.
* gnu/tests/ssh.scm (run-ssh-test)["sshd PID"]: Adjust to cope with
PID-FILE being #f.
* gnu/tests/ssh.scm (%test-openssh): Pass #f as the 'pid-file'
argument.
* doc/guix.texi (Networking Services): Document 'max-connections'.
2022-04-07 00:08:56 +02:00
Ludovic Courtès
400c9ed3d7
services: shepherd: Default to version 0.9.
* gnu/services/shepherd.scm (scm->go): Define 'shepherd&co' and pass it
to 'with-extensions'.
(shepherd-configuration-file): Call 'start-in-the-background' when it is
defined.
(<shepherd-configuration>)[shepherd]: Default to SHEPHERD-0.9.
* gnu/system.scm (hurd-default-essential-services): Use SHEPHERD-0.8.
2022-04-07 00:08:56 +02:00
Attila Lendvai
9ef6d80ef4
services: messaging: Fix two copy-paste mistakes; avoid warnings.
* gnu/services/messaging.scm (file-name-list, file-object-list): Fix
name in 'define-maybe' instances.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-05 20:41:41 +02:00
Ludovic Courtès
e692dc632c
services: Add 'log-cleanup' service to '%base-services' for build logs.
* gnu/services/base.scm (%base-services): Add 'log-cleanup-service-type'
instance.
* doc/guix.texi (Log Rotation): Add example and mention '%base-services'.
2022-04-04 22:58:03 +02:00
Ludovic Courtès
3b9b3b4931
services: Add 'log-cleanup-service-type'.
* gnu/services/admin.scm (<log-cleanup-configuration>): New record
type.
(log-cleanup-program, log-cleanup-mcron-jobs): New procedures.
(log-cleanup-service-type): New variable.
* doc/guix.texi (Log Rotation): Document it.
2022-04-04 22:58:03 +02:00
SeerLite
2e55a4c6b9
services: xorg: Remove xf86-input-synaptics from %default-xorg-modules.
Fixes <https://issues.guix.gnu.org/35450>.

This driver isn't intended to be installed by default as it takes
precedence over the recommended xf86-input-libinput.

* gnu/services/xorg.scm (%default-xorg-modules): Remove
  xf86-input-synaptics.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-03-25 18:42:14 +01:00
fesoj000
8044a1fec9
services: murmur: Fix server program name.
* gnu/services/telephony.scm (murmur-activation):
(murmur-shepherd-service): Change file name of mumble server, which is
now called mumble-server instead of murmurd since version 1.4.x.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-03-24 12:45:48 +01:00
Remco van 't Veer
e91c9edb20
services: dnsmasq: Add more options.
* gnu/services/dns.scm (<dnsmasq-configuration>): Add
forward-private-reverse-lookup?, strict-order? and cpe-id options.
(dnsmasq-shepherd-service): Pass added options to dnsmasq and use
match-record instead of match-lambda.
* doc/guix.texi (Guix Services): Document options added to dnsmasq.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-24 12:45:48 +01:00
Jelle Licht
10d865aa92
services: thermald: Add 'adaptive?' field.
* gnu/services/pm.scm (<thermald-configuration>): Add 'adaptive?' field.
(thermald-shepherd-service): Use it to pass --adaptive to thermald.
* doc/guix.texi (Power Management Services): Document the 'adaptive?' field of
'thermald-configuration'.
2022-03-20 16:40:22 +01:00
Maxim Cournoyer
2c4284d952
Revert "services: nfs: Define rpcbind-shepherd-service at the top level."
This reverts commit 0a9e82b430, which didn't end
up fixing anything.  The problem was elsewhere; namely, using
'operating-system-services' instead of 'operating-system-user-services'.
2022-03-17 16:48:21 -04:00
Maxim Cournoyer
0a9e82b430
services: nfs: Define rpcbind-shepherd-service at the top level.
Attempting to use the 'nfs-service-type' as part of a computed
operating-system definition, the following exception would be thrown:

  ice-9/boot-9.scm:1685:16: In procedure raise-exception:
  ERROR:
    1. &ambiguous-target-service-error:
        service: #<<service> type: #<service-type rpcbind 7f7529853780> value: #<<rpcbind-configuration> rpcbind: #<package rpcbind@1.2.6 gnu/packages/onc-rpc.scm:87 7f75389e78f0> warm-start?: #t>>
        target-type: #<service-type shepherd-root 7f7529396080>
    2. &message: "more than one target service of type 'shepherd-root'"

The problem was that the rpcbind shepherd-service object was dynamically
instantiated every time the rpcbind-service-type would be called, causing
multiple objects in some situations, resulting in the above condition.

* gnu/services/nfs.scm (rpcbind-service-type): Refactor and adjust in a way to
extract...
(rpcbind-shepherd-service): ... this new procedure.
2022-03-17 16:10:41 -04:00
Ludovic Courtès
5397c18157
services: openssh: Change 'authorized-keys' accessor name.
* gnu/services/ssh.scm (<openssh-configuration>)[authorized-keys]:
Rename accessor to 'openssh-configuration-authorized-keys'.
(openssh-activation, extend-openssh-authorized-keys): Adjust
accordingly.
2022-03-10 23:46:51 +01:00
Ludovic Courtès
2bac6ea177
services: secret-service: Do not generate SSH and Guix key pairs.
The justification about the order of activation snippets given in the
comment had been obsolete since
39e3b4b7ce.

Lately, running the activation snippets for "ssh-keygen -A" and "guix
archive --generate-key" would take a little bit too long, thereby
preventing the childhurd from starting on time.

* gnu/services/virtualization.scm (secret-service-operating-system):
Clear 'generate-host-keys?' and 'generate-substitute-key?'.
2022-03-10 23:46:51 +01:00
Ludovic Courtès
0691ab6779
services: openssh: Add 'generate-host-keys?' field.
* gnu/services/ssh.scm (<openssh-configuration>)[generate-host-keys?]:
New field.
(openssh-activation): Honor it.
* doc/guix.texi (Networking Services): Document it.
2022-03-10 23:46:50 +01:00
Ludovic Courtès
5e34e873af
services: guix: Add 'generate-substitute-key?' field.
* gnu/services/base.scm (<guix-configuration>)[generate-substitute-key?]:
New field.
(guix-activation): Honor it.
* doc/guix.texi (Base Services): Document it.
2022-03-10 23:46:50 +01:00
Demis Balbach
878578c0fa
services: bluetooth: Add missing config parameters.
* doc/guix.texi (Desktop Services): Document 'bluetooth-service-type'
and 'bluetooth-configuration'.
* gnu/services/desktop.scm (<bluetooth-configuration>): Add many fields.
(bluetooth-configuration-file): Handle them.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-09 23:38:18 +01:00
Cameron Chaparro
48bd8b408e
services: openvpn: Actually save log file.
* gnu/services/vpn.scm (openvpn-shepherd-service): Pass #:log-file to
'make-forkexec-constructor'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-03 23:57:01 +01:00
Maxim Cournoyer
e680c40861
services: pulseaudio: Deploy the configuration files to /etc/pulse.
* gnu/services/sound.scm (pulseaudio-environment)
[PULSE_CONFIG, PULSE_CLIENTCONFIG]: Use fixed locations, and move logic to...
(pulseaudio-etc): ... this service extension.  Guard against producing empty
files.
2022-02-26 09:03:01 -05:00
Maxim Cournoyer
60cb647a28
services: pulseaudio: Add an extra-script-files configuration field.
* gnu/services/sound.scm (<pulseaudio-configuration>)
[extra-script-files]: Add field.
(extra-script-files->file-union): New procedure.
(append-include-directive): Likewise.
(pulseaudio-etc): Use them.
* doc/guix.texi: Document the new 'extra-script-files- configuration field.
2022-02-26 09:03:01 -05:00
Maxim Cournoyer
1cc9060ca3
services/sound: Normalize pulseaudio-configuration accessor names.
* gnu/services/sound.scm (<pulseaudio-configuration>): Adjust getter names to
match convention.
2022-02-26 09:03:01 -05:00
Danny Milosavljevic
07c3a43955
agetty-shepherd-service: Rename console agetty to "term-console" for clarity.
* gnu/services/base.scm (agetty-shepherd-service)[provision]: Rename console
agetty to "term-console".
2022-02-25 17:13:55 +01:00
Danny Milosavljevic
fcb6cab621
services: %base-services: Adapt agetty-service-type to depend on syslogd
Fixes <https://issues.guix.gnu.org/30464>.

* gnu/services/base.scm (%base-services): Reorder syslog-service for clarity.
[shepherd-requirement]: New field.
2022-02-25 17:13:36 +01:00
Danny Milosavljevic
ed17082d94
services: agetty: Add shepherd-requirement.
* gnu/services/base.scm (<agetty-configuration>): Add shepherd-requirement.
* doc/guix.texi (agetty-configuration): Document it.
2022-02-25 17:13:18 +01:00
Maxim Cournoyer
e9fa17eb98
services: udev: Use a fixed location for the rules directory and config.
Fixes <https://issues.guix.gnu.org/47681>.

This change adjusts the location of the udev configuration file and rules
directory to a fixed location.  Since udev relies on inotify to discover
change to its rules directory (/etc/udev/rules.d), by using a fixed directory
layout, new udev rules can be automatically picked up without restarting the
service.

* gnu/services/base.scm (udev-rules-union): Build rules output directly
in #$output.
(udev-shepherd-service)[start]: Adjust the UDEV_CONFIG_FILE and
EUDEV_RULES_DIRECTORY environment variables.
[actions]: Remove field.  The 'rules' action is no longer useful.
(udev.conf): New variable.
(udev-etc): New procedure.
(udev-service-type): Extend the etc-service-type with it.
2022-02-20 19:58:14 -05:00
Maxim Cournoyer
6e5d219425
services: dbus: Increase auth_timeout value to 5 minutes.
This is a follow-up to 488f1c589df; the problem had re-appeared on my machine.

* gnu/services/dbus.scm (dbus-configuration-directory): Increase
'auth_timeout' value from 60000 to 300000 ms (5 minutes).
2022-02-19 01:37:42 -05:00
Ludovic Courtès
01821914e2
services: qemu-guest-agent: Fix implementation.
Previously, by accessing the raw <qemu-guest-agent-configuration>
fields, 'qemu' would match the first field, which is the '%location'
field, not the 'qemu' field.

It would seem this bug has always been present since the addition of the
'location' field in d132d9f96b predates
the addition of 'qemu-guest-agent-service-type' in
f634a0baab.

Fixes <https://issues.guix.gnu.org/54041>.
Reported by Ricardo Wurmus <rekado@elephly.net>.

* gnu/services/virtualization.scm (qemu-guest-agent-shepherd-service):
Use accessors for <qemu-guest-agent-configuration>.
2022-02-18 14:14:39 +01:00
Maxim Cournoyer
12566aabe7
services: cuirass: Also rotate the web log.
* gnu/services/cuirass.scm (cuirass-log-rotations): Add the web log to the
list of rotated files.
2022-02-17 13:39:02 -05:00
Maxim Cournoyer
9c15252060
services: web: Rotate mumi logs.
* gnu/services/web.scm (%mumi-log, %mumi-mailer-log, %mumi-worker-log): New
variables.
(mumi-shepherd-services): Use them.
(%mumi-log-rotations): New variable.
(mumi-service-type): Extend rottlog.
2022-02-17 13:39:02 -05:00
Marius Bakke
1059c2bb66
services: zabbix: Add requirement on 'user-processes'.
This ensures the services does not start before mounts are up.
Reported by rekado on #guix.

* gnu/services/monitoring.scm (zabbix-server-shepherd-service,
zabbix-agent-shepherd-service)[requirement]: New field.
2022-02-17 18:13:16 +01:00
Marius Bakke
b38ce8489f
doc: Zabbix: Improvide description.
* doc/guix.texi (Monitoring Services): Document the various 'zabbix-*' service
types, and expand description of all Zabbix services.  Use less marketing terms.
(Web Services): Add subsubheading for PHP-FPM, and anchors for
cross-referencing.
* gnu/services/monitoring.scm (zabbix-front-end-configuration): Use @ref
instead of @pxref for cross-referencing.
2022-02-13 13:33:56 +01:00
Josselin Poiret
11b586db59
services: gdm-service-type: Require elogind.
* gnu/services/xorg.scm (gdm-shepherd-service): Make it require
elogind.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-02-10 23:17:48 +01:00
Marius Bakke
7c75fff68b
services: zabbix-frontend: Restore correct variable name.
This is a follow-up to 326e08bf0f, et.al.

* gnu/services/monitoring.scm (%zabbix-front-end-nginx-configuration): Rename
to ...
(%zabbix-front-end-configuration-nginx): ... this.
(zabbix-front-end-nginx-extension): Adjust accordingly.
2022-02-07 18:37:14 +01:00
Marius Bakke
eb2e0e3225
services: monitoring: Remove unused procedure.
This is a follow-up to commit 326e08bf0f.

* gnu/services/monitoring.scm (zabbix-front-end-nginx-configuration): Remove
variable.
2022-02-07 18:22:41 +01:00
Marius Bakke
326e08bf0f
services: zabbix-front-end: Restore backwards compatibility.
Commit e301f1a8ed removed the NGINX argument
entirely, but users may rely on and override it.  Reported by rekado on #guix.

* gnu/services/monitoring.scm (%zabbix-front-end-nginx-configuration): Restore
exported variable.
(zabbix-front-end-nginx-extension): New procedure.
(zabbix-front-end-configuration): Remove FASTCGI-PARAMS field.  Restore NGINX
field, but default to the empty list.
(zabbix-front-end-service-type): Extend NGINX-SERVICE-TYPE by
ZABBIX-FRONT-END-NGINX-EXTENSION.
* doc/guix.texi (Monitoring Services): Regenerate documentation.
2022-02-07 18:19:46 +01:00
Christopher Baines
71d2bdfa9f
services: nar-herder: Support ttl and negative-ttl options.
* gnu/services/guix.scm (<nar-herder-configuration>): Add ttl and negative-ttl
fields.
(nar-herder-shepherd-services): Pass the ttl and negative-ttl values to the
service.
* doc/guix.texi (Guix Services): Document this.
2022-02-04 10:09:01 +00:00
Christopher Baines
108e7576c0
services: patchwork: Set DEFAULT_AUTO_FIELD in settings.
This resolves some warnings with Django 3.2.

This was added by upstream to the base settings
43e5c4a0ac

* gnu/services/web.scm (patchwork-settings-module-compiler): Specify
DEFAULT_AUTO_FIELD in the settings module.
2022-02-02 18:27:10 +00:00
Attila Lendvai
67f28faf42
services: tlp: Add config variables for battery charging.
* gnu/services/pm.scm (tlp-configuration): Add start-charge-thresh-bat0,
stop-charge-thresh-bat0, start-charge-thresh-bat1, stop-charge-thresh-bat1.
* doc/guix.texi (Power Management Services): Document them.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2022-02-02 10:43:04 +01:00
Maxim Cournoyer
fff4daa5c2
services/sound: Add a udev extension for the pulseaudio service type.
PulseAudio provides udev rules used to adjust the configuration of certain
hardware (e.g., sound cards); ensure they get used.

* gnu/services/sound.scm (pulseaudio-service-type): Extend the
udev-service-type with the pulseaudio package.
2022-02-01 21:48:01 -05:00
Marius Bakke
e301f1a8ed
services: zabbix-frontend: Support custom server package.
* gnu/services/monitoring.scm (%zabbix-front-end-configuration-nginx): Rename
to ...
(zabbix-front-end-nginx-configuration): ... this.  Take server package and
FastCGI parameters from ...
(zabbix-front-end-configuration): ... here.  Add PACKAGE and FASTCGI-PARAMS
fields, remove NGINX.
(zabbix-front-end-service-type): Adjust for renamed procedure.
* doc/guix.texi (Monitoring Services)[Zabbix front-end]: Regenerate documentation.
2022-02-01 23:46:05 +01:00
Christopher Baines
087cdafc9f
services: guix: Add nar-herder-service-type.
* gnu/services/guix.scm (<nar-herder-configuration>): New record type.
(nar-herder-configuration, nar-herder-configuration?,
nar-herder-configuration-package,
nar-herder-configuration-user,
nar-herder-configuration-group,
nar-herder-configuration-mirror
nar-herder-configuration-database
nar-herder-configuration-database-dump
nar-herder-configuration-host
nar-herder-configuration-port
nar-herder-configuration-storage
nar-herder-configuration-storage-limit
nar-herder-configuration-storage-nar-removal-criteria
nar-herder-shepherd-services, nar-herder-activation,
nar-herder-account): New procedures.
(nar-herder-service-type): New variable.
* gnu/tests/guix.scm (%test-nar-herder): New variable.
* doc/guix.texi (Guix Services): Document the new service.
2022-01-31 18:28:16 +00:00
Marius Bakke
ab8b76b735
services: zabbix: Support gexps in configuration serializer.
This makes it possible to do e.g. (include-files (list (local-file "foo.conf"))).

* gnu/services/monitoring.scm (serialize-field, serialize-list,
serialize-include-files, serialize-extra-options): Rewrite as gexps.
(zabbix-server-config-file, zabbix-agent-config-file): Simplify builders by
using FORMAT.
2022-01-30 14:47:43 +01:00
Marius Bakke
59847afda7
services: postgresql: Export missing <postgresql-configuration> accessor.
* gnu/services/databases.scm: Export POSTGRESQL-CONFIGURATION-EXTENSION-PACKAGES.
2022-01-29 16:09:03 +01:00
Marius Bakke
756f16aa01
services: zabbix-agent: Set the PATH variable.
* gnu/services/monitoring.scm (zabbix-agent-shepherd-service)[start]: Set the
PATH variable to the common values.
2022-01-29 12:52:38 +01:00
Marius Bakke
8fa6f975d4
services: zabbix-frontend: Adjust indentation.
* gnu/services/monitoring.scm (zabbix-front-end-activation): Reindent.
2022-01-29 12:52:37 +01:00
Marius Bakke
7f12a40e9a
services: zabbix-frontend: Enable IEEE754-compatible history values.
* gnu/services/monitoring.scm (zabbix-front-end-config): Specify
$DB['DOUBLE_IEEE754'] in the configuration file, as per current example.
2022-01-29 12:52:37 +01:00
Marius Bakke
5122805c48
services: zabbix-server: Add shepherd actions for runtime control commands.
* gnu/services/monitoring.scm (zabbix-server-runtime-control-procedure,
zabbix-server-actions): New variables.
(zabbix-server-shepherd-service)[actions]: New field.  Let-bind variables
common between actions and the start procedure.
2022-01-29 12:52:37 +01:00
Marius Bakke
4657a39270
services: zabbix-frontend: Fix configuration file for hard coded passwords.
This is a follow-up to commit 078f5bfae7.

* gnu/services/monitoring.scm (zabbix-front-end-config): When DB-PASSWORD is
set, enclose the password with quotes in the configuration file.
2022-01-29 12:52:37 +01:00
Marius Bakke
078f5bfae7
services: zabbix-server: Do not write database password to the store.
* gnu/services/monitoring.scm (zabbix-front-end-config): Read the secret file
from zabbix.conf.php at runtime instead of embedding the contents.
2022-01-26 09:31:46 +01:00
Marius Bakke
88e4c8740a
services: zabbix-agent: Respect user and group configuration.
* gnu/services/monitoring.scm (zabbix-agent-account): Look up user and group
from CONFIG instead of hard-coded values.
2022-01-26 09:31:45 +01:00
Guillaume Le Vaillant
1aa269d1d7
services: guix-publish: Add negative-ttl parameter.
* gnu/services/base.scm (guix-publish-configuration): Add 'negative-ttl'
  field.
  (guix-publish-sheperd-service): Process it.
* doc/guix.texi (Base Services)[guix-publish-service-type]: Add item for
  negative-ttl.
2022-01-20 14:55:19 +01:00
Ludovic Courtès
575e52ac2b
daemon: Always default to gzip for log compression.
* nix/libstore/globals.cc (Settings::Settings): Have 'logCompression'
default to COMPRESSION_GZIP unconditionally.
* gnu/services/base.scm (<guix-configuration>)[log-compression]: Default
to 'gzip.
* doc/guix.texi (Invoking guix-daemon, Base Services): Adjust accordingly.
2022-01-18 18:46:51 +01:00
Timothy Sample
3b6755defe
services: guix: Add tar and gzip to PATH.
* gnu/services/base.scm (guix-shepherd-service): Add the PATH
environment-variable and populate it with tar and gzip.
2022-01-16 18:57:55 -05:00
Nick Zalutskiy
757be0e8af
services: pam-mount: Add support for sddm login manager.
I noticed that pam_mount mounts work fine when loging into a textual
session, but not when using sddm. This patch fixes this problem by
ensuring that pam_mount.so is included in /etc/pam.d/sddm config file.

* gnu/services/pam-mount.scm (pam-mount-pam-service): Add sddm to the list of
  pam services.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2022-01-17 00:13:46 +01:00
Maxim Cournoyer
374fea0f3b
services: Adjust the jami service for the upgraded jami.
* gnu/services/telephony.scm (jami-configuration)[jamid]: Rename libring to
libjami.
* gnu/services/telephony.scm
(jami-configuration->command-line-arguments): Adjust daemon file name.
* gnu/services/telephony.scm (jami-service-type): Adjust doc.
* gnu/tests/telephony.scm (run-jami-test): Check for 'jamid' process, not
'dring'.
* doc/guix.texi (Telephony Services): Adjust doc for the jami-qt to jami and
libring to libjami packages renaming.
2022-01-13 00:57:52 -05:00
Arun Isaac
c1f8dffa54
services: laminar: Set LAMINAR_BIND_RPC environment variable.
Earlier, the bind-rpc field of <laminar-configuration> was not used at
all. This was a bug.

* gnu/services/ci.scm (laminar-shepherd-service): Use bind-rpc to set
LAMINAR_BIND_RPC environment variable.
2022-01-11 11:47:42 +05:30
Chris Marusich
dc2b90109b
services: set-xorg-configuration: Use target-x86-64?.
* gnu/services/xorg.scm (set-xorg-configuration)[login-manager-service-type]:
Use target-x86-64? from (guix utils) to decide if the system is an x86_64
system instead of comparing the strings ourselves.
2022-01-08 15:51:37 -08:00
Ludovic Courtès
5c354c204d
services: networking: Add netmask to loopback address.
Previously, we would get a fishy 127.0.0.1/0 interface:

  $ ip a show dev lo
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
	 valid_lft forever preferred_lft forever
      inet 127.0.0.1/0 scope global lo
	 valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
	 valid_lft forever preferred_lft forever

With this change, we get nothing but the "/8" version:

  $ ip a show dev lo
  1: lo: <LOOPBACK,MULTICAST,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope global lo
	 valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
	 valid_lft forever preferred_lft forever

Reported by Yann Dupont <Yann.Dupont@univ-nantes.fr>.

* gnu/services/base.scm (assert-valid-address): Remove special cases for
127.0.0.1 and ::1.
(%loopback-static-networking): Add "/8".
2022-01-08 23:27:42 +01:00
Chris Marusich
79260c8695
services: Consistently use SDDM rather than GDM on non-x86_64.
This is a follow-up to 49599fab56.

Fixes: <https://issues.guix.gnu.org/52908>.

* gnu/services/xorg.scm (set-xorg-configuration)[login-manager-service-type]:
When the current system or target system begins with the string "x86_64", use
gdm-service-type as before; otherwise, use sddm-service-type.
* gnu/system/examples/vm-image.tmpl (services): Add sddm-service-type to the
list of service types to remove.
2022-01-06 18:54:59 -08:00
Mathieu Othacehe
cd4092b7a3
services: gnome: Add udev rules.
Fixes: <https://issues.guix.gnu.org/32166>.

* gnu/services/desktop.scm (gnome-packages, gnome-udev-rules): New procedures.
(gnome-polkit-settings): Use the gnome-packages procedure.
(gnome-desktop-service-type): Add an udev service extension.
2022-01-06 09:26:39 +01:00
Leo Famulari
85f006c8e8
services: Document the full list of available NTP URLs.
* gnu/services/networking.scm (%ntp-servers): List the URLs granted to us.
2022-01-06 01:30:27 -05:00
Christopher Baines
dfc5d5247f
services: guix-build-coordinator: Fix variable name in agent config.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Fix
variable name.
* doc/guix.texi (Guix Services): Update accordingly.
2022-01-02 17:47:36 +00:00
Christopher Baines
1dca8a19ef
gnu: Add guix-build-coordinator/agent-only.
This avoids issues where the coordinator component dependencies (like sqitch
and guile-fibers) make it harder to use the agent.

* gnu/packages/package-management.scm (guix-build-coordinator/agent-only): New
variable.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Use
the guix-build-coordinator/agent-only package by default.
* doc/guix.texi (Guix Services): Update accordingly.
2022-01-02 17:00:09 +00:00
Mathieu Othacehe
207ee9d9cd
services: nfs: Fix statd and mountd ports.
* gnu/services/nfs.scm (nfs-shepherd-services): Fix rpcstatd-port and
rpcmountd-port arguments.
2021-12-23 10:54:01 +01:00
Timothy Sample
488f1c589d
services: dbus: Wait 1 minute for elogind to get ready.
Fixes <https://issues.guix.gnu.org/issue/52051>.

* gnu/services/dbus.scm (dbus-configuration-directory): Set a 60 second
authentication timeout in the D-Bus configuration.
2021-12-22 18:33:07 -05:00
Nathan Dehnel
6fb5459e8b
services: wireguard: Add DNS config field.
* gnu/services/vpn.scm (wireguard-configuration)[dns]: New field.
(wireguard-configuration-file): Honor it.
* doc/guix.texi: Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-22 09:07:39 +01:00
Mathieu Othacehe
d2f9578a9f
services: static-networking: Enable multicast by default.
Fixes: <https://issues.guix.gnu.org/52520>.

* gnu/services/base.scm (network-set-up/linux): Enable it.
2021-12-21 20:37:39 +01:00
Ludovic Courtès
c9d92409d4
services: rsync: Allow configuring several rsync "modules".
Until now the rsync service would export a single module, named
"files".  This allows users to specify as many modules as they want, in
line with rsyncd.conf(5).

* gnu/services/rsync.scm (warn-share-field-deprecation): New procedure.
(<rsync-configuration>)[modules]: New field.
[share-path, share-comment, read-only?, timeout]: Mark as deprecated.
(<rsync-module>): New record type.
(%default-modules): New variable.
(rsync-configuration-modules): New procedure.
(rsync-activation): Create the directory of each module.
(rsync-config-file): Generate configuration for each module.
(rsync-service-type)[description]: New field.
* doc/guix.texi (Networking Services): Adjust documentation.  Augment
example.
2021-12-21 15:47:03 +01:00
Ludovic Courtès
4df584aeac
services: static-networking: Sanitize <network-address> values.
This makes sure users do not mistakenly configuring a network with "/0"
as its netmask.

* gnu/services/base.scm (assert-valid-address): New procedure.
(<network-address>)[value]: Add it as 'sanitize'.
2021-12-20 16:21:40 +01:00
Mathieu Othacehe
99b2f51dc2
services: cuirass: Remove the default database host.
* gnu/services/cuirass.scm (%cuirass-default-database): Remove the default
host.
2021-12-15 14:41:42 +01:00
Ludovic Courtès
1052ae5f03
Merge branch 'master' into core-updates-frozen 2021-12-13 11:49:15 +01:00
Ludovic Courtès
5967aee398
services: Define '%loopback-static-networking'.
* gnu/services/base.scm (%loopback-static-networking): New variable.
(%base-services): Use it.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* gnu/system/install.scm (%installation-services): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:50 +01:00
Ludovic Courtès
1644f4f1f8
services: Define '%qemu-static-networking'.
* gnu/services/base.scm (%qemu-static-networking): New variable.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:49 +01:00
Ludovic Courtès
223f1b1eb3
services: static-networking: Change interface to mimic netlink.
* gnu/services/base.scm (<static-networking>)[interface, ip, netmask]
[gateway]: Remove.
[addresses, links, routes]: New fields.
[requirement]: Default to '(udev).
(<network-address>, <network-link>, <network-route>): New record types.
(ensure-no-separate-netmask, %ensure-no-separate-netmask): Remove.
(ipv6-address?, cidr->netmask, ip+netmask->cidr)
(network-set-up/hurd, network-tear-down/hurd)
(network-set-up/linux, network-tear-down/linux)
(static-networking->hurd-pfinet-options): New procedures.
(static-networking-shepherd-service): New procedure.
(static-networking-shepherd-services): Rewrite in terms of the above.
(static-networking-service): Deprecate.  Adjust to new
'static-networking' API.
(%base-services): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* gnu/system/hurd.scm (%base-services/hurd): Likewise, and separate
'loopback' from 'networking'.
* gnu/build/hurd-boot.scm (set-hurd-device-translators): Remove
"servers/socket/2".
* gnu/tests/networking.scm (run-openvswitch-test)["networking has
started on ovs0"]: Check for 'networking instead of 'networking-ovs0,
which is no longer provided.
* doc/guix.texi (Networking Setup): Document the new interface.  Remove
documentation of 'static-networking-service'.
(Virtualization Services): Change Ganeti example to use the new
interface.
2021-12-12 23:20:49 +01:00
Ludovic Courtès
39e3b4b7ce
services: secret-service: Turn into a Shepherd service.
* gnu/services/virtualization.scm (secret-service-activation): Remove.
(secret-service-shepherd-services): New procedure.
(secret-service-type)[extensions]: Remove ACTIVATION-SERVICE-TYPE
extension.  Add SHEPHERD-ROOT-SERVICE-TYPE and
USER-PROCESSES-SERVICE-TYPE extensions.
* gnu/build/secret-service.scm (delete-file*): New procedure.
(secret-service-receive-secrets): Use it.
2021-12-12 23:20:49 +01:00