Commit graph

1433 commits

Author SHA1 Message Date
Jack Hill
2e30e84b64
services: guix: Authorize 'bordeaux.guix.gnu.org.pub' by default.
This follows on from the changes in 4985a42724.

* gnu/services/base.scm (%default-authorized-guix-keys): Add
bordeaux.guix.gnu.org.pub.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2021-06-19 09:32:54 +01:00
Ludovic Courtès
f70c3429ed
services: Remove deprecated service procedures.
These service procedures were deprecated in January 2019, for instance
in commit 65a67bf711.

* gnu/services/avahi.scm (avahi-service): Remove.
* gnu/services/base.scm (console-keymap, guix-service)
(guix-publish-service, gpm-service, urandom-seed-service): Remove.
* gnu/services/desktop.scm (upower-service, colord-service): Remove.
* gnu/services/mcron.scm (mcron-service): Remove.
* gnu/services/messaging.scm (bitlbee-service): Remove.
* gnu/services/networking.scm (dhcp-client-service, ntp-service)
(tor-service): Remove.
* gnu/services/xorg.scm (slim-service, gdm-service): Remove.
2021-06-14 18:35:17 +02:00
Arun Isaac
0d2cbd6632
services: laminar: Create parent directory for unix socket.
* gnu/services/ci.scm (laminar-activation): New function.
(laminar-service-type): Extend activation-service-type with
laminar-activation.
2021-06-10 09:58:20 +05:30
Ludovic Courtès
0db906c52c
services: cuirass: Do not export record type descriptors.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)
(<cuirass-configuration>, <cuirass-remote-worker-configuration>): Do not
export.
2021-06-01 23:26:07 +02:00
Ludovic Courtès
ec9307ea07
services: cuirass: Create the profile and GC root directory.
* gnu/services/cuirass.scm (cuirass-activation): Create
/var/guix/profiles/per-user/cuirass/cuirass or similar.
2021-06-01 23:26:07 +02:00
Brice Waegeneire
ea55e1355b
services: dnsmasq: Extend 'activation-service'.
* gnu/services/dns.scm (dnsmasq-activation): New procedure …
(dnsmasq-service-type): … use it.
2021-05-31 22:06:54 +02:00
Brice Waegeneire
62a8d487d6
services: hostapd: Use package from configuration.
* gnu/services/networking.scm (hostapd-shepherd-services): Replace
'hostapd' by the package specified in the configuration.
2021-05-31 22:04:57 +02:00
Solene Rapenne
ac95609208
gnu: services: Add missing wireguard related exports.
* gnu/services/vpn.scm: Export 'wireguard-peer-public-key' and
  'wireguard-peer-keep-alive'.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-05-24 10:00:54 +02:00
Maxim Cournoyer
a09cdf1f9d
services: opendht: Fix hang at boot.
Fixes <https://issues.guix.gnu.org/48521>.

The problem was caused by the 'file-system-mapping' record not being in scope.

* gnu/services/networking.scm (opendht-shepherd-service): Import the (gnu
system file-systems) module.
[requirement]: Depend on networking, to avoid spurious output.
[modules]: New field.
[start] <group>: New argument.
2021-05-19 22:46:52 -04:00
Maxim Cournoyer
fd449608eb
services: Add a service for opendht.
* gnu/services/networking.scm (maybe-number?, maybe-string?): New procedures.
(<opendht-configuration>): New configuration record.
(%opendht-accounts): New variable.
(opendht-configuration->command-line-arguments): New procedure.
(opendht-shepherd-service, opendht-service-type): New variables.
* doc/guix.texi (Networking Services): Document the new service.
2021-05-17 23:27:40 -04:00
Maxim Cournoyer
cdd1e15a25
services: configuration: Add a define-configuration/no-serialization syntax.
This is added for convenience and for uniformity with the
define-maybe/no-serialization syntax introduced in the previous commit.

* gnu/services/configuration.scm
(define-configuration/no-serialization): New syntax.
2021-05-17 23:27:40 -04:00
Maxim Cournoyer
b7297d66c5
services: configuration: Add a define-maybe/no-serialization syntax.
Before this change, using define-maybe along define-configuration with the
no-serialization syntactic keyword would result in the following warning:

  warning: possibly unbound variable `VARIABLE-NAME'

This change introduces the define-maybe/no-serialization variant that does
away with defining a serialization helper procedure, which makes it possible
to avoid the above warning.

* gnu/services/configuration.scm (define-maybe/no-serialization): New syntax.
(define-maybe-helper): New procedure.
(define-maybe): Define syntax using the above procedure.
* tests/services/configuration.scm (tests): Fix module name.
(custom-number-serializer): Do not print to standard output.
(maybe-number?, serialize-maybe-number): New procedures defined via the
define-maybe macro.
(config-with-maybe-number): New configuration.
(serialize-number): New procedure.
("maybe value serialization"): New test.
(maybe-string?): New procedure defined via the define-maybe/no-serialization
macro.
(config-with-maybe-string/no-serialization): New configuration.
("maybe value without serialization no procedure bound"): New test.
2021-05-17 23:27:39 -04:00
Maxim Cournoyer
b7cbca221f
Merge branch 'version-1.3.0' 2021-05-11 22:42:59 -04:00
Ludovic Courtès
f903bb7741
services: configuration: Export 'no-serialization' syntactic keyword.
This is a followup to 3f9a12dc08.

* gnu/services/configuration.scm (no-serialization): New variable.
2021-05-08 15:06:31 +02:00
Maxim Cournoyer
a9a67da573
services: docker: Disable configuration serialization.
* gnu/services/docker.scm (serialize-boolean): Delete procedure.
(docker-configuration) <no-serialization>: New syntactic keyword.
2021-05-08 01:04:31 -04:00
Maxim Cournoyer
dd0826fbf3
services: configuration: Fix %location accessor name.
The non-hygienic binding of the source location accessor was set to
'-location'; in modules where multiple configurations were defined, it would
cause compilation warnings such as:

    gnu/services/mail.scm:175:0: warning: shadows previous definition of
    `%-location-procedure' at gnu/services/mail.scm:165:0

* gnu/services/configuration.scm (define-configuration-helper) <id>: Add a
missing #'stem argument to use the configuration name as a prefix to the
location accessor identifier.
2021-05-08 01:04:01 -04:00
Xinglu Chen
b3e99d3399
services: configuration: Allow specifying a custom serializer.
In some cases, rather than globally disabling serialization, it may be more
appropriate to disable or otherwise alter the serialization procedure of a
specific field.  In large module, multiple configurations may also exist that
would need to alter the default serialization procedure, which is named after
the field type.  Being able to specify a per-field serialization procedure
provides more flexibility.

* gnu/services/configuration.scm (define-configuration): Add an optional
pattern variable to allow specifying a custom serialization procedure.
(define-configuration-helper) <field-serializer>: Use it to transform the
syntax.
(empty-serializer): New procedure.
(serialize-package): Alias to ‘empty-serializer’.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-05-08 00:50:39 -04:00
Maxim Cournoyer
3f9a12dc08
services: configuration: Allow disabling serialization.
Serialization is not always useful, for example when deriving command line
arguments from a configuration.  This change provides a way to turn it off,
which removes the need to define a bunch of dummy serialization procedures.

Credit goes to Andrew Gierth (RhodiumToad) from #guile for providing the
solution.  Thank you!

* gnu/services/configuration.scm (define-configuration-helper): New procedure.
(define-configuration) <no-serialization>: New syntactic keyword.  Use it in a
new pattern.  Refactor the macro so that it makes use of the above helper
procedure.
2021-05-08 00:50:39 -04:00
Maxim Cournoyer
1a2704add3
services: configuration: Avoid a compilation warning.
This resolves a compilation warning introduced with commit bb716e8d9d.

* gnu/services/configuration.scm (configuration->documentation): Use display
to print the string instead of format.
2021-05-08 00:50:38 -04:00
Maxim Cournoyer
bb716e8d9d
services: configuration: Add a new helper to ease generating documentation.
The original (undocumented) procedure to generate the doc has a difficult to
grasp interface; add a simpler one on top of it.

* gnu/services/configuration.scm (configuration->documentation): New procedure.
2021-05-07 08:59:31 -04:00
Xinglu Chen
d1caabbce7
services: configuration: Support fields without default values.
Not all fields in a configuration have a sensible default value.  This changes
makes it possible to omit a default value for a configuration field, requiring
the user to provide a value.

* gnu/services/configuration.scm (configuration-missing-field): New procedure.
(define-configuration): Make default value optional.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-05-07 08:57:45 -04:00
Maxim Cournoyer
b39c4e18f2
services: spice-vdagent: Clear the socket file prior to starting.
This fixes the following issue where spice-vdagent would fail to start if the
spice-vdagent-sock socket file already existed:

  spice-vdagentd: Fatal could not create the server socket
  /run/spice-vdagentd/spice-vdagent-sock: Error binding to address: Address
  already in use

The requirement is also modified to depend on dbus-system, a cue taken from
upstream's own systemd service file (see 'data/spice-vdagentd.service' in the
sources).

* gnu/services/spice.scm (spice-vdagent-activation): Delete procedure.
(spice-vdagent-shepherd-service): Fix indentation.
[requirement]: Replace udev by dbus-system.
[start]: Ensure the spice-vdagentd run-time directory exists and that the
spice-vdagent-sock socket file does *not* exist before forking the daemon.
2021-05-06 16:51:49 -04:00
Alexey Abramov
0d6eb69266
services: dovecot: Add ‘managesieve-sieve-capability’ option.
* gnu/services/mail.scm (protocol-configuration): Add a
‘managesieve-sieve-capability’ field.
* doc/guix.texi (Mail Services): Document it.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-05-06 11:31:48 +02:00
Alexey Abramov
6e05920cef
services: dovecot: Add ‘managesieve-notify-capability’ option.
* gnu/services/mail.scm (protocol-configuration): Add a
‘managesieve-notify-capability’ field.
* doc/guix.texi (Mail Services): Document it.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-05-06 11:27:00 +02:00
Alexey Abramov
0fd5bdcaf6
services: dovecot: Add ‘imap-metadata?’ protocol configuration option.
* gnu/services/mail.scm (protocol-configuration): Add an ‘imap-metadata?’
setting to enable IMAP METADATA support in the ‘imap’ protocol.
* doc/guix.texi (Mail Services): Document it.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-05-06 11:08:52 +02:00
Alexey Abramov
5b5c50961f
services: dovecot: Add ‘mail-attribute-dict’ configuration option.
* gnu/services/mail.scm (dovecot-configuration): Define a
‘mail-attribute-dict’ directive for IMAP METADATA storage.
* doc/guix.texi (Mail Services): Document it.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-05-06 11:08:52 +02:00
Maxim Cournoyer
6b0704339d
services: Fix the spice-vdagent service.
* gnu/services/spice.scm (spice-vdagent-activation): Update runtime directory
from /var/run/spice-vdagentd to /run/spice-vdagentd.
(spice-vdagent-service-type): Specify a default value and fix indentation.
2021-05-05 16:31:06 -04:00
Christopher Baines
c1131911a7
services: guix-build-coordinator: Fix queue builds state directory.
This service doesn't create a PID file, but it does write a file with the
processed commits in it, so create a directory to contain that.

* gnu/services/guix.scm (guix-build-coordinator-queue-builds-activation):
Ensure /var/cache/guix-build-coordinator-queue-builds exists.
2021-05-02 09:56:42 +01:00
methuselah-0
3802bb0ba0
services: mysql: Add extra-environment as configuration option.
* gnu/services/databases.scm (mysql-configuration): Add extra-environment
(mysql-service): Use #:log-file and #:environment-variables
* doc/guix.texi: Document it.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-04-27 20:45:35 +02:00
Oleg Pykhalov
43a7724040
services: nix: Add /bin/sh to build-sandbox-paths.
Fixes <https://bugs.gnu.org/46297>.

* gnu/services/nix.scm (nix-service-etc): Add /bin/sh to build-sandbox-paths.
2021-04-26 20:03:55 +03:00
B. Wilson
2c93df3d11
services: Add a service for rasdaemon.
* gnu/services/linux.scm (rasdaemon-configuration, rasdaemon-configuration?,
rasdaemon-configuration-record?, rasdaemon-service-type): New variables.
* doc/guix.texi (Linux Services): Document it.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-04-24 12:30:01 -04:00
Christopher Baines
311e4b005b
services: guix-build-coordinator: Fix queue builds default config.
Use the default client port rather than the default agent communication port
for the queue builds script.

* gnu/services/guix.scm (<guix-build-coordinator-queue-builds-configuration>):
Change coordinator default.
2021-04-23 15:05:38 +01:00
Christopher Baines
c15d31ac10
services: guix-build-coordinator: Remove incorrect pid file.
The queue builds script doesn't create a pid file, so don't have the shepherd
expect to find one.

* gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services):
Remove #:pid-file.
2021-04-23 13:40:25 +01:00
Christopher Baines
51201d636a
services: guix-build-coordinator: Fix service activation parts.
Don't hardcode usernames, as these are in the config. Also fix the %user being
missing from the queue-builds service activation.

* gnu/services/guix.scm (guix-build-coordinator-activation,
guix-build-coordinator-agent-activation): Use config for the user name.
(guix-build-coordinator-queue-builds-activation): Define %user.
2021-04-23 13:38:49 +01:00
Christopher Baines
e2ab6fb0dd
services: guix-build-coordinator: Add max-1min-load-average option.
To the agent configuration.

* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): New
field, max-1min-load-average.
(guix-build-coordinator-agent-configuration-max-1min-load-average): New
procedure.
(guix-build-coordinator-agent-shepherd-services): If set, include the
max-1min-load-average in the agent arguments.
2021-04-23 11:03:23 +01:00
Guillaume Le Vaillant
3313f61e18
services: wireguard: Add keep-alive support.
* gnu/services/vpn.scm (<wireguard-peer>): Add 'keep-alive' field.
  (wireguard-configuration-file): Use it.
* doc/guix.texi (VPN Services): Document it.
2021-04-20 14:32:53 +02:00
Mathieu Othacehe
3f3d66377c
services: cuirass: Use "/tmp" database host.
This is a follow-up of c311147bd1.

* gnu/services/cuirass.scm (%cuirass-default-database): Use "/tmp" database
host.
2021-04-14 16:09:35 +02:00
Leo Prikler
4dff6ecde8
Revert "services: mysql: Add extra-environment as configuration option."
This reverts commit f3626119d7.
This commit inadvertently broke a string freeze.  Let's be nice to our
translators and not do that.
2021-04-14 00:59:52 +02:00
Mathieu Othacehe
ea89fcb0da
services: postgresql: Use "/tmp" host directory.
This is a follow-up of c311147bd1.

* gnu/services/databases.scm (<postgresql-role-configuration>)[host]: Set to
"/tmp" which the default Postgresql socket directory.
2021-04-13 19:31:20 +02:00
methuselah-0
f3626119d7
services: mysql: Add extra-environment as configuration option.
* gnu/services/databases.scm (mysql-configuration): Add extra-environment
(mysql-service): Use #:log-file and #:environment-variables
* doc/guix.texi: Document it.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-04-13 18:47:32 +02:00
Christopher Baines
c311147bd1
services: postgresql: Change service default socket directory.
Fixes <https://bugs.gnu.org/46737>.

PostgreSQL running with a different socket directory to the default one in the
package itself breaks some services, this commit restores the previous
behaviour where PostgreSQL by default will run with a socket directory that
matches the default used by PostgreSQL packaged for Guix.

Switching to a different default value can happen, but only alongside changing
the PostgreSQL package.

* gnu/services/databases.scm (<postgresql-config-file>)[socket-directory]:
Change default to #false.
* doc/guix.texi (Database Services): Update documentation, and specify a
different value for disabling connections via sockets.
* gnu/tests/guix.scm (%guix-data-service-os): Use default PostgreSQL
behaviour.
* gnu/tests/monitoring.scm (%zabbix-os): Likewise.
* gnu/tests/web.scm (patchwork-os): Likewise.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-04-12 19:12:46 -04:00
Ludovic Courtès
4d0d6d8626
services: ipfs: Tweak description.
* gnu/services/networking.scm (ipfs-service-type)[description]: Avoid
abbreviation.
2021-04-12 18:44:09 +02:00
Maxime Devos
2978832b92
services: Add ipfs-service-type
* gnu/services/networking.scm (ipfs-service-type)
  (%ipfs-home-mapping, %ipfs-environment)
  (%ipfs-accounts, %ipfs-home): New variables.
  (ipfs-configuration, ipfs-configuration?)
  (ipfs-configuration-package, ipfs-configuration-gateway)
  (ipfs-configuration-api, ipfs-shepherd-service)
  (ipfs-binary, %ipfs-activation): New procedures.
* doc/guix.texi (Networking Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-12 18:42:22 +02:00
Tobias Geerinckx-Rice
d2f2c09d27
services: git-daemon: Fix typo in docstring.
* gnu/services/version-control.scm (git-daemon-service): Fix docstring
typo.
2021-04-10 14:11:26 +02:00
Christopher Baines
eda4bb4f16
services: Add Laminar.
* gnu/services/ci.scm: New file.
* gnu/tests/ci.scm: New file.
* doc/guix.texi (Laminar): Document the Laminar service.
2021-04-09 11:59:58 +01:00
Alexey Abramov
5a6e27bfbd
services: dovecot: Fix serialization of a free-form-args arguments.
* gnu/services/mail.scm (serialize-free-form-args): Change destination and
return a string containing the formated text.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-06 23:59:47 +02:00
Ludovic Courtès
58beda0121
services: guix-publish: Add zstd compression by default.
That way, the default config with (advertises? #t) and without a cache
will offer zstd-compressed substitutes, which should lead to much higher
throughput than gzip.

* gnu/services/base.scm (default-compression): When
'guix-publish-configuration-cache' returns true, use higher level
compression ratios.  Add "zstd".
* doc/guix.texi (Base Services): Mention zstd.
2021-04-03 22:08:33 +02:00
qblade
aa03d32eb1
services: kmscon: Add font-engine and font-size fields.
* gnu/services/base.scm (<kmscon-configuration>): Add font-engine and
font-size fields.
(kmscon-service-type): Honor them.
* doc/guix.texi (Base Services): Document them.
2021-04-01 13:40:09 +02:00
Christopher Baines
264f7189e8
gnu: services: web: Have fcgiwrap log to a file.
This makes it easier to access the output.

* gnu/services/web.scm (fcgiwrap-shepherd-service): Pass #:log-file to
make-forkexec-constructor.
2021-04-01 09:01:52 +01:00
Christopher Baines
190912cb8e
gnu: services: web: Cleanup whitespace.
Replace tabs with spaces, and delete trailing whitespace.

* gnu/services/web.scm: Cleanup whitespace.
2021-04-01 09:01:50 +01:00
muradm
4f547c50f9
services: sysctl: Export <sysctl-configuration> record field accessors.
* gnu/services/sysctl.scm (sysctl-configuration-sysctl)
(sysctl-configuration-settings): Export.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-31 15:36:49 +02:00
Valentin Herrmann
fe0826d5c9
services: xorg: Export %default-xorg-server-arguments.
* gnu/services/xorg.scm (%default-xorg-server-arguments): Export.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-31 15:36:49 +02:00
Ludovic Courtès
3104a743f9
services: rottlog: Add /var/log/mcron.log to '%default-rotations'.
Fixes <https://bugs.gnu.org/47436>.
Reported by Leo Famulari <leo@famulari.name>.

* gnu/services/admin.scm (%rotated-files): Add "/var/log/mcron.log".
2021-03-29 23:33:41 +02:00
Mathieu Othacehe
3c9a353849
services: cuirass: Set default port values.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>,
<cuirass-configuration>): Set default port values.
2021-03-23 20:30:49 +01:00
Mathieu Othacehe
eda735fb61
services: cuirass: Adapt to Cuirass 1.0.
* gnu/services/cuirass.scm (cuirass-shepherd-service,
cuirass-remote-worker-shepherd-service): Adapt to Cuirass 1.0.
2021-03-23 16:47:48 +01:00
Leo Famulari
898489f48e
services: Enable "protected hardlinks" and "protected symlinks" by default.
References:

https://sysctl-explorer.net/fs/protected_hardlinks/
https://sysctl-explorer.net/fs/protected_symlinks/

* gnu/services/sysctl.scm (%default-sysctl-settings): New public variable.
(<sysctl-configuration>): Use %default-sysctl-settings as the default value.
* gnu/services/base.scm (%base-services): Add sysctl-service-type.
* doc/guix.texi (Miscellaneous Services): Document the new defaults.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-18 12:17:33 +01:00
Léo Le Bouter
097cf21d1d
gnu: Remove MongoDB.
mongodb 3.4.10 has unpatched CVEs and mongodb 3.4.24 has some files in the
release tarball under the SSPL, therefore we cannot provide mongodb while
upholding to good security standards.

It turns out feff80cec3 was right since while
the main license file wasnt altered to SSPL, some files in the tree contain
SSPL headers.

* gnu/packages/databases.scm (go-gopkg.in-mgo.v2): Remove.
* gnu/packages/databases.scm (mongo-tools): Remove.
* doc/guix.texi (mongodb-service-type): Remove.
* gnu/tests/databases.scm (%test-mongodb, %mongodb-os, run-mongodb-test):
Remove.
* gnu/services/databases.scm (mongodb-configuration, mongodb-configuration?,
mongodb-configuration-mongodb, mongodb-configuration-config-file,
mongodb-configuration-data-directory, mongodb-service-type,
%default-mongodb-configuration-file, %mongodb-accounts, mongodb-activation,
mongodb-shepherd-service): Remove.
* gnu/packages/databases.scm (mongodb): Remove.
2021-03-16 11:05:24 +01:00
Maxim Cournoyer
77c2f4e206
services/qemu-binfmt: Use the F flag and the static output of QEMU.
Fixes <https://issues.guix.gnu.org/36117>.

Before this change, the 'binfmt_misc' entries registered for QEMU would not be
usable in container contexts outside of guix-daemon (without manually bind
mounting file names).

For example:

$ docker run --rm arm32v7/debian true
standard_init_linux.go:207: exec user process caused "no such file or directory"

After this change, any container can make use of the QEMU binfmt_misc
registrations, as their corresponding QEMU static binaries are fully
pre-loaded by the kernel.

* gnu/services/virtualization.scm (<qemu-platform>): Define using
'define-record-type*'.
[flags]: New field, which defaults to "F" (fix binary).
(%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus, %ppc, %ppc64)
(%ppc64le, %m68k, %mips, %mipsel, %mipsn32, %mipsn32el, %mips64, %mips64el)
(%riscv32, %riscv64, %sh4, %sh4eb, %s390x, %aarch64, %hppa): Adjust.
(qemu-binfmt-guix-chroot): Remove variable.
(qemu-binfmt-service-type): Remove the qemu-binfmt-guix-chroot extension.
* gnu/services/qemu-binfmt (qemu-platform->binfmt):  Use the static output of
QEMU.
* doc/contributing.texi (Submitting Patches): Update doc.
* doc/guix.texi (Virtualization Services): Update doc.
2021-03-15 18:00:35 -04:00
Maxime Devos
520bac7ed0
services: Prevent following symlinks during activation.
This addresses a potential security issue, where a compromised
service could trick the activation code in changing the permissions,
owner and group of arbitrary files.  However, this patch is
currently only a partial fix, due to a TOCTTOU (time-of-check to
time-of-use) race, which can be fixed once guile has bindings
to openat and friends.

Fixes: <https://lists.gnu.org/archive/html/guix-devel/2021-01/msg00388.html>

* gnu/build/activation.scm: new procedure 'mkdir-p/perms'.
* gnu/services/authentication.scm
  (%nslcd-activation, nslcd-service-type): use new procedure.
* gnu/services/cups.scm (%cups-activation): likewise.
* gnu/services/dbus.scm (dbus-activation): likewise.
* gnu/services/dns.scm (knot-activation): likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-10 18:01:47 +01:00
Mathieu Othacehe
6c883d0f1d
services: cuirass: Remove simple cuirass configuration.
The Cuirass configuration has been simplified so that this is no longer
needed.

* gnu/services/cuirass.scm (<build-manifest>, <simple-cuirass-configuration>,
simple-cuirass-configuration->specs): Remove them.
2021-03-10 09:05:02 +01:00
Mathieu Othacehe
0be2474d42
services: cuirass: Do not create the database directory.
Fixes: <https://issues.guix.gnu.org/46683>.

* gnu/services/cuirass.scm (cuirass-activation): Since the PostgreSQL switch,
it is no longer needed to create the database directory.
2021-03-10 08:49:48 +01:00
Christopher Baines
c6c48494e3
services: guix-build-coordinator: Add dynamic auth with file record.
* gnu/services/guix.scm (guix-build-coordinator-agent-dynamic-auth-with-file,
guix-build-coordinator-agent-dynamic-auth-with-filen?,
guix-build-coordinator-agent-dynamic-auth-with-file-agent-name,
guix-build-coordinator-agent-dynamic-auth-with-file-token-file): New procedures.
(guix-build-coordinator-agent-shepherd-services): Handle new dynamic auth with
file record.
* doc/guix.texi (Guix Build Coordinator): Document the new dynamic auth with
file record.
2021-03-05 09:29:58 +00:00
Andrew Tropin
63bee8f0ad
services: shepherd: Make 'assert-valid-graph' public.
* gnu/services/shepherd.scm (assert-valid-graph): Make public.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-03 14:19:26 +01:00
Christopher Baines
8a7b4ce093
services: guix-build-coordinator: Add dynamic auth record.
* gnu/services/guix.scm (guix-build-coordinator-agent-dynamic-auth,
guix-build-coordinator-agent-dynamic-auth?,
guix-build-coordinator-agent-dynamic-auth-agent-name,
guix-build-coordinator-agent-dynamic-auth-token): New procedures.
(guix-build-coordinator-agent-shepherd-services): Handle new dynamic auth
record.
* doc/guix.texi (Guix Build Coordinator): Document the new dynamic auth
record.
2021-02-28 21:56:34 +00:00
Christopher Baines
7556130c2f
services: guix-build-coordinator: Rework authentication config.
A new authentication approach has been added to the coordinator, so to better
represent the options, this commit changes the configuration to accept
different records, each for different authentication approaches.

* gnu/services/guix.scm (guix-build-coordinator-agent-configuration-uuid,
guix-build-coordinator-agent-configuration-password,
guix-build-coordinator-agent-configuration-password-file): Removed
procedures.
(guix-build-coordinator-agent-password-auth,
guix-build-coordinator-agent-password-auth?,
guix-build-coordinator-agent-password-auth-uuid,
guix-build-coordinator-agent-password-auth-password,
guix-build-coordinator-agent-password-file-auth,
guix-build-coordinator-agent-password-file-auth?,
guix-build-coordinator-agent-password-file-auth-uuid,
guix-build-coordinator-agent-password-file-auth-password-file): New
procedures.
(guix-build-coordinator-agent-shepherd-services): Adjust to handle the
authentication field and it's possible record values.
* doc/guix.texi (Guix Build Coordinator): Update documentation.
2021-02-28 21:56:33 +00:00
Ludovic Courtès
412e4f081e
services: shepherd: Make /run/booted-system a symlink to the store item.
Fixes <https://bugs.gnu.org/46767>.

Previously /run/booted-system would end up referring to
/var/guix/profiles/system-NNN-link; consequently, the booted system
would not be GC-protected.

* gnu/services/shepherd.scm (shepherd-boot-gexp): Call
'canonicalize-path' instead of 'readlink'.
2021-02-25 11:29:35 +01:00
Mathieu Othacehe
f2b10e1b7f
services: cuirass: Fix services requirements.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Add "postgres-roles" to
cuirass requirements. Set cuirass-web requirements to cuirass only. Remove
"guix-daemon" and "networking" from cuirass-remote-server requirements as are
already required by cuirass.
2021-02-23 11:22:22 +01:00
Mathieu Othacehe
1a8cfb6d4c
services: postgresql-roles: Fix race condition.
Make sure that the postgresql-roles script is completed before declaring the
postgresql-roles service as started.

* gnu/services/databases.scm (postgresql-create-roles): Return the command
line instead of a program-file.
(postgresql-role-shepherd-service): Use fork+exec-command to start the role
creation script and wait for its completion before returning.
2021-02-23 11:00:18 +01:00
Mathieu Othacehe
bebcf97600
services: cuirass: Improve simple-cuirass-services.
Instead of returning multiple services in simple-cuirass-services, rely on the
instantiate-missing-services procedure to instantiate postgresql and
postgresql-role-service-type when missing.

Turn simple-cuirass-services procedure into
simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration
record and returns a Cuirass specification.

Suggested-by: Ludovic Courtès <ludo@gnu.org>

* gnu/services/cuirass.scm (%default-cuirass-config): Remove it.
(simple-cuirass-services): Rename it to ...
(simple-cuirass-configuration->specs): ... this procedure.
* gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and
postgresql-role services that are automatically instantiated.
(simple-cuirass-service): New variable.
(%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs
instead of simple-cuirass-services.
* doc/guix.texi (Simple Cuirass): Update it.
2021-02-23 09:45:09 +01:00
Mathieu Othacehe
8163f74542
services: postgresql: Define a default value.
* gnu/services/databases.scm (postgresql-service-type): Define a default value.
2021-02-22 16:24:34 +01:00
Mathieu Othacehe
3bcfd41620
services: cuirass: Instantiate postgresql service.
* gnu/services/cuirass.scm (cuirass-service-type): Instantiate postgresql
service when missing.
2021-02-22 16:24:34 +01:00
Christopher Lemmer Webber
b309a28678
services: tor: Add control-socket? option.
* doc/guix.texi (Networking Services): Document new `control-socket?'
option for `tor-configuration`.
* gnu/services/networking.scm (<tor-configuration>):
(tor-configuration->torrc):
2021-02-22 10:03:02 -05:00
Mathieu Othacehe
1443e2dd98
services: cuirass: Add parameters support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[parameters]: New field.
[zabbix-uri]: Remove it.
(cuirass-shepherd-service): Honor it.
2021-02-22 10:23:04 +01:00
Mathieu Othacehe
e9bf511082
services: cuirass: Add "simple-cuirass-services".
* gnu/services/cuirass.scm (<build-manifest>,
<simple-cuirass-configuration>): New records.
(build-manifest, build-manifest?, simple-cuirass-configuration,
simple-cuirass-configuration?, simple-cuirass-services): New procedures.
(%default-cuirass-config): New variable.
* gnu/tests/cuirass.scm (%cuirass-simple-test): New variable.
* doc/guix.texi (Continuous Integration): Document it.
2021-02-19 20:10:09 +01:00
Mathieu Othacehe
43b2e440c3
services: wireguard: New service.
* gnu/services/vpn.scm (wireguard-peer, wireguard-configuration): New records.
(wireguard-service-type): New variable.
* doc/guix.texi (VPN Services): Document it.
2021-02-17 10:32:15 +01:00
Alexandru-Sergiu Marton
2b5a81dfd3
services: Add Agate Gemini service.
* gnu/services/web.scm (<agate-configuration>): New record type.
(agate-accounts, agate-shepherd-service): New procedures.
(agate-service-type): New variable.
* doc/guix.texi (Web Services): Document it.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2021-02-15 13:35:04 +01:00
Mathieu Othacehe
66c31d5072
services: cuirass: Add server argument for the remote-worker.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[server]:
New field.
(cuirass-remote-worker-shepherd-service): Honor it.
2021-02-12 14:57:47 +01:00
Simon South
db6b9d2f4b
services: Add transmission-daemon service.
* gnu/services/file-sharing.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* po/packages/POTFILES.in: Add it.
* tests/services/file-sharing.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* doc/guix.texi (File-Sharing Services): New section.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2021-02-12 15:11:36 +08:00
宋文武
e429325d37
services: Add 'xorg-server-service-type'.
* gnu/services/xorg.scm (xorg-server-service-type): New service type.
(xorg-server-profile-service): New procedure.
2021-02-11 17:01:43 +08:00
Alexey Abramov
408f0b4c4d
services: knot: Fix configuration verification.
* gnu/services/dns.scm (verify-knot-key-configuration): Fix the
order of memq arguments.
(verify-knot-keystore-configuration): Likewise.
(verify-knot-acl-configuration): Replace fold with every procedure.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2021-02-11 11:11:39 +08:00
Mathieu Othacehe
91911b9382
services: cuirass: Move zabbix argument to the web process.
This is a follow-up of 703e5c92ee.

* gnu/services/cuirass.scm (cuirass-shepherd-service): Move "zabbix-uri"
argument to the web process.
2021-02-09 09:20:55 +01:00
Mathieu Othacehe
703e5c92ee
services: cuirass: Add Zabbix support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[zabbix-uri]: New field.
(cuirass-shepherd-service): Honor it.
2021-02-08 13:44:06 +01:00
raid5atemyhomework
fe7529d71b
gnu: Remove 'file-systems requirement from kernel-module-loader.
* gnu/services/linux.scm (kernel-module-loader-shepherd-service):
Remove 'file-systems requirement.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2021-02-08 03:34:40 +01:00
Marius Bakke
221985ce6b
services: PostgreSQL: Quote database names.
* gnu/services/databases.scm (postgresql-create-roles): Quote the name in
the SQL query so that roles/usernames containing hyphens will work.
2021-02-06 15:18:40 +01:00
Maxim Cournoyer
9e2d275b27
gnu: services: Fix the NFS service.
* gnu/services/nfs.scm (rpcbind-service-type): Adjust for the file name change
of the rpcbind command.
2021-02-05 17:19:10 -05:00
Maxime Devos
95f72dcd7a
services: shepherd: Allow custom 'shepherd' package.
* gnu/services/shepherd.scm (<shepherd-configuration>): New record.
(shepherd-boot-gexp, shepherd-root-service-type): Use it.
(scm->go, shepherd-configuration-file): Allow passing custom
shepherd package.
* gnu/system.scm (operating-system-shepherd-service-names): Use the new
record.
* guix/scripts/system.scm (export-shepherd-graph): Adjust accordingly.
* doc/guix.texi (Shepherd Services). Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-01-30 15:36:57 +01:00
Mathieu Othacehe
5ba7e828ad
services: cuirass: Create remote-server cache directory.
* gnu/services/cuirass.scm (cuirass-activation): Create remote-server cache
directory if needed.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 16:22:56 +01:00
Mathieu Othacehe
8d8bbe7c63
services: cuirass: Fix syntax error.
This is a follow-up of 189e62fa69.

* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Fix
syntax.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 16:22:55 +01:00
Mathieu Othacehe
eff80711f3
services: cuirass: Add log-file support.
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Add
log-file support.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 15:53:03 +01:00
Mathieu Othacehe
eb9adede34
services: cuirass: Fix workers argument.
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Fix
workers arguments.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 15:27:55 +01:00
Mathieu Othacehe
a19b6889ad
services: cuirass: Add systems argument.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[systems]:
New field.
(cuirass-remote-worker-shepherd-service): Honor it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 14:04:52 +01:00
Mathieu Othacehe
189e62fa69
services: cuirass: Add remote build support. 2021-01-28 12:57:27 +01:00
Mathieu Othacehe
0f01493dc8
service: cuirass: Update it. 2021-01-28 12:57:27 +01:00
Mathieu Othacehe
ec145a2ff9
services: postgresql: Add postgresql-role-service-type.
* gnu/services/databases.scm (postgresql-role,
postgresql-role?, postgresql-role-name,
postgresql-role-permissions, postgresql-role-create-database?,
postgresql-role-configuration, postgresql-role-configuration?,
postgresql-role-configuration-host, postgresql-role-configuration-roles,
postgresql-role-service-type): New procedures.
* gnu/tests/databases.scm: Test it.
* doc/guix.texi: Document it.
2021-01-28 12:57:27 +01:00
Mathieu Othacehe
33687aa3d0
services: postgresql: Wrap long lines.
* gnu/services/databases.scm: Wrap long lines, no functional change.
2021-01-28 12:57:27 +01:00
Mathieu Othacehe
fe4b882350
services: postgresql: Add log directory support.
* gnu/services/databases.scm (postgresql-configuration-log-directory): New
procedure.
(<postgresql-configuration>)[log-directory]: New field.
(postgresql-activation): Create the log directory.
(postgresql-shepherd-service): Honor it.
* gnu/tests/databases.scm (%postgresql-log-directory): New variable.
(log-file): New test case.
* doc/guix.texi (Database Services): Document it.
2021-01-28 12:57:26 +01:00
Mathieu Othacehe
6c0679215f
services: postgresql: Add socket directory support.
* gnu/services/databases.scm (postgresql-config-file-socket-directory): New
procedure.
(<postgresql-config-file>)[socket-directory]: New field.
(postgresql-config-file-compiler): Honor it.
(postgresql-activation): Create the socket directory if needed.
* doc/guix.texi (Database Services): Document it.
* gnu/tests/guix.scm (%guix-data-service-os): Adapt it.
* gnu/tests/monitoring.scm (%zabbix-os): Ditto.
* gnu/tests/web.scm (patchwork-os): Ditto.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 12:57:26 +01:00
Mathieu Othacehe
a38d0b0137
services: postgresql: Use Guile datatypes.
* gnu/services/databases.scm (postgresql-config-file-compiler): Support Guile
datatypes in the "extra-config" field.
* gnu/tests/databases.scm (%postgresql-os): Test it.
* doc/guix.texi (Database Services): Document it.
2021-01-28 12:57:26 +01:00
Julien Lepiller
e82a713c15
gnu: php-fpm: Ensure no duplicate group.
* gnu/services/web.scm (php-fpm-accounts): Ensure `php-fpm` group is not
duplicated.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-01-17 20:40:52 +01:00
Leo Prikler
476b333fbc
services: cups: reuse lp from %base-groups.
* gnu/services/cups.scm (%cups-accounts): Try to reuse lp from %base-groups.
2021-01-17 20:16:05 +01:00
Simon South
181f290aa2
services: openntpd: Remove support for deprecated "-s" option.
* gnu/services/networking.scm (openntpd-configuration): Remove
"allow-large-adjustment?" field.
(openntpd-shepherd-service): Remove use of "allow-large-adjustment?"
configuration field and "-s" daemon option.
* tests/networking.scm (%openntpd-conf-sample): Remove
"allow-large-adjustment?" field.
* doc/guix.texi (Networking Services)[openntpd-service-type]: Remove
"allow-large-adjustment?" field from sample configuration.
[openntpd-configuration]: Remove description of "allow-large-adjustment?"
field.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-01-16 23:30:59 +01:00
Stefan
d4f5ea502d
services: qemu-binfmt: 'guix-support?' defaults to #t.
* gnu/services/virtualization.scm (qemu-binfmt-service-type)[guix-support?]:
Change the default from #f to #t.
* doc/guix.texi (Transparent Emulation with QEMU): Change the default of
‘guix-support?’ from #f to #t.  Describe the implication of setting it to #f.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-01-16 22:38:17 +01:00
Jan (janneke) Nieuwenhuizen
5b785b2a62
services: hurd-vm: Respect hurd-vm-configuration's disk-size.
This is a follow-up to commit 859b362f81.

* gnu/services/virtualization.scm (hurd-vm-disk-image): Use diks-size from
config to set image's size.
2021-01-14 20:18:09 +01:00
Ludovic Courtès
0d22fc8d36
services: shepherd: 'shepherd-service-type' requires documentation.
* gnu/services/shepherd.scm (shepherd-service-type): Require a
'description' form.
* gnu/services/base.scm (root-file-system-service-type)
(rngd-service-type, host-name-service-type):
(virtual-terminal-service-type, console-keymap-service-type)
(syslog-service-type, swap-service-type)
(kmscon-service-type): Add description.
* gnu/services/networking.scm (dhcp-client-service-type): Likewise.
* gnu/system/install.scm (cow-store-service-type): Likewise.
* gnu/system/linux-container.scm (dummy-networking-service-type):
Likewise.
* gnu/system/mapped-devices.scm (device-mapping-service-type):
Likewise.
* tests/guix-system.sh: Likewise.
2021-01-13 22:24:18 +01:00
Oleg Pykhalov
4e511fcfce
services: Add keepalived service.
* gnu/services/networking.scm (<keepalived-configuration>): New record.
(keepalived-shepherd-service): New procedure.
(keepalived-service-type): New variable.
* doc/guix.texi (Networking Services): Document this.
2021-01-12 14:40:36 +03:00
Oleg Pykhalov
79ba12a1db
services: Add syncthing service.
* gnu/services/syncthing.scm: New file.
* gnu/local.mk: Add this.
* doc/guix.texi: Document this.
2021-01-12 14:40:36 +03:00
Tobias Geerinckx-Rice
2a4fdb4194
services: cups: Add brlaser extension by default.
* gnu/services/cups.scm (cups-configuration): Add brlaser to the default
extensions.
* doc/guix.texi (Printing Services): Document it.
2021-01-10 23:38:49 +01:00
Brice Waegeneire
3d3185b544
services: kernel-module-loader: Return a single 'shepherd-service'.
* gnu/services/linux.scm (kernel-module-loader-shepherd-service): Return
a 'shepherd-service' instead of a list of it.
(kernel-module-loader-service-type): Adjust it.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2021-01-06 19:18:58 +01:00
Jonathan Brielmaier
b4db113641
services: Add radicale-service-type.
* gnu/services/mail.scm (radicale-configuration)
(radicale-configuration?): New procedures.
(%default-radicale-config-file)
(radicale-service-type): New variables.
* doc/guix.texi: Document it.
2020-12-27 19:32:09 +01:00
Ludovic Courtès
d88ff09ea3
services: 'references-file' depends on Guile-Gcrypt.
Regression introduced in 6a060ff27f.

Reported by clone11 on #guix.

* gnu/services/base.scm (references-file): Wrap gexp in 'with-extensions'.
2020-12-15 22:29:55 +01:00
Tobias Geerinckx-Rice
a4cd86ff4b
gnu: htop: Update to 3.0.3.
* gnu/packages/admin.scm (htop): Update to 3.0.3.
2020-12-13 00:35:49 +01:00
Tobias Geerinckx-Rice
8f2656f1de
services: pcscd-shepherd-service: Fix PID file location.
Fixes <http://issues.guix.gnu.org/45202>.

* gnu/services/security-token.scm (pcscd-shepherd-service): Look for
pcscd.pid in /run instead of /var/run.

Reported by Raffael Stocker <r.stocker@mnet-mail.de>.
2020-12-12 23:10:05 +01:00
Ludovic Courtès
d8051557ae
Revert "services: openssh: Warn about 'password-authentication?' default."
This reverts commit aecd2a13cb for two
reasons:

  1. The warning would fire every time (gnu services ssh) is loaded;

  2. There's still no clear consensus on the approach to follow as
     discussed in <https://issues.guix.gnu.org/44808>.
2020-12-11 19:06:53 +01:00
Ludovic Courtès
f066e65713
services: guix-publish: Depend on 'avahi-daemon' when needed.
* gnu/services/base.scm (guix-publish-shepherd-service): Add
'user-processes' to 'requirement'.  When ADVERTISE? is true, also add
'avahi-daemon'.
2020-12-09 14:13:32 +01:00
Ludovic Courtès
59a6780f70
services: avahi: Depend on 'user-processes'.
* gnu/services/avahi.scm (avahi-shepherd-service): Add 'user-processes'
to 'requirement'.
2020-12-09 14:13:32 +01:00
Efraim Flashner
533935ccf7
services: science.scm: Add missing copyright headers.
This module was always supposed to have the GPL3 header in place.
Follow-up to 8f19e63f76.

* gnu/services/science.scm: Add Copyright headers.
2020-12-09 12:55:02 +02:00
Mathieu Othacehe
770fb659a6
services: cuirass: Add queue-size option.
* gnu/services/cuirass.scm (<cuirass-configuration>): Add "queue-size" field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.
2020-12-08 11:56:26 +01:00
Ludovic Courtès
aecd2a13cb
services: openssh: Warn about 'password-authentication?' default.
Fixes <https://bugs.gnu.org/44808>.
Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>.

* gnu/services/ssh.scm (true-but-soon-false): New procedure.
(<openssh-configuration>)[password-authentication?]: Change default to
'true-but-soon-false'.
* gnu/installer/services.scm (%system-services): Explicitly set
'password-authentication?' to #f.
2020-12-07 12:48:26 +01:00
Ludovic Courtès
859b362f81
services: hurd-vm: Avoid circular dependency with (gnu system images hurd).
* gnu/services/virtualization.scm (hurd-vm-disk-image): Use
'lookup-image-type-by-name' instead of referring to 'hurd-disk-image'
from (gnu system images hurd).
2020-12-07 12:48:26 +01:00
Mathieu Othacehe
e461d3b750
service: Add shepherd discover action.
* gnu/services/base.scm (shepherd-discover-action): New procedure,
(guix-shepherd-service)[<actions>]: add it,
[<start>]: honor it.
* doc/guix.texi (Invoking guix-daemon): Document it.
2020-12-07 10:39:21 +01:00
Christopher Baines
92f7c11af2
prometheus-node-exporter: Support extra options.
There are plenty of options supported that the Guix configuration record
doesn't help you with, so add this field to allow users to do their own thing.

* gnu/services/monitoring.scm (<prometheus-node-exporter-configuration>): Add
extra-options field.
(prometheus-node-exporter-shepherd-service): Handle the extra options.
* doc/guix.texi (Prometheus Node Exporter Service): Document this.
2020-12-07 09:08:33 +00:00
Christopher Baines
fd14385581
prometheus-node-exporter: Enable the textfile collector.
* gnu/services/monitoring.scm (<prometheus-node-exporter-configuration>): Add
textfile-directory.
(prometheus-node-exporter-textfile-directory,
prometheus-node-exporter-activation): New procedures.
(prometheus-node-exporter-shepherd-service): Pass
--collector.textfile.directoryto the service.
(prometheus-node-exporter-service-type): Extend the activation service type.
* doc/guix.texi (Prometheus Node Exporter Service): Document.
2020-12-07 09:08:20 +00:00
Christopher Baines
fa0975ad71
services: prometheus-node-exporter: Use a log file.
This makes the logs easier to find and read.

* gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service):
Pass #:log-file to make-forkexec-constructor.
2020-12-07 09:08:09 +00:00
Christopher Baines
6574298e4e
prometheus-node-exporter: Add user and group.
So it doesn't run as root, and because this will help with the textfile
exporter.

* gnu/services/monitoring.scm (%prometheus-node-exporter-accounts): New
variable.
(prometheus-node-exporter-shepherd-service): Use the relevant user and group.
(prometheus-node-exporter-service-type): Extend the account service type.
2020-12-07 09:07:54 +00:00
Christopher Baines
502cb3f8a1
services: prometheus-node-exporter: Neaten up.
Add relevant exports, as well as a comment to better indicate where the
relevant code starts.

* gnu/services/monitoring.scm (prometheus-node-exporter-service-type):
Capitalise Prometheus.
2020-12-07 09:07:13 +00:00
Ludovic Courtès
ce3b5e5a8d
services: mpd: Make /var/run/mpd/USER user-owned.
Fixes <https://bugs.gnu.org/44820>.
Reported by Simon <lists@netpanic.org>.

This is a followup to bb124f6e9c.

* gnu/services/audio.scm (mpd-service-activation): Chown the parent of
DIRECTORY as well.
2020-12-06 23:18:08 +01:00
Zhu Zihao
8e73bf754f
services: nix: Move nix.conf generation to etc-service-type.
/etc/nix/nix.conf is a static file doesn't need rebuild on every boot.

* gnu/services/nix.scm (nix-activation): Don't create /etc/nix/nix.conf.
(nix-service-etc): New function.
(nix-service-type): New service-extension "nix-service-etc" to etc-service-type.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2020-12-06 17:48:48 +08:00
Marius Bakke
3cf19b83d6
services: MySQL: Fix indentation.
* gnu/services/databases.scm (mysql-upgrade-wrapper): Adjust indentation.
2020-12-01 22:30:52 +01:00
Marius Bakke
383c51ca0f
services: databases: Do not export record type descriptors.
* gnu/services/databases.scm (<postgresql-config-file>,
<postgresql-configuration>, <memcached-configuration>,
<mongodb-configuration>): Remove exports.
2020-12-01 22:30:52 +01:00
Mathieu Othacehe
79f9dee3c4
Use substitute servers on the local network.
* guix/scripts/discover.scm: New file.
* Makefile.am (MODULES): Add it.
* nix/nix-daemon/guix-daemon.cc (options): Add "discover" option,
(parse-opt): parse it,
(main): start "guix discover" process when the option is set.
* guix/scripts/substitute.scm (%local-substitute-urls): New variable,
(substitute-urls): add it.
* gnu/services/base.scm (<guix-configuration>): Add "discover?"
field,
(guix-shepherd-service): honor it.
* doc/guix.texi (Invoking guix-daemon): Document "discover" option,
(Base Services): ditto.
2020-11-29 15:08:26 +01:00
Mathieu Othacehe
276e494b2a
publish: Add advertising support.
* guix/scripts/publish.scm (%options): Add "--advertise" option.
(show-help): Document it.
(service-name): New procedure,
(publish-service-type): new variable.
(run-publish-server): Add "advertise?" and "port" parameters. Use them to publish
the server using Avahi.
(guix-publish): Pass the "advertise?" option to "run-publish-server".
* gnu/services/base.scm (<guix-publish-configuration>): Add "advertise?"
field.
(guix-publish-shepherd-service): Honor it.
2020-11-29 15:08:26 +01:00
Oleg Pykhalov
8518a3692c
services: zabbix-agent: Delete not mandatory hostname configuration.
* gnu/services/monitoring.scm
(zabbix-agent-configuration)[hostname]: Set to empty string.
2020-11-29 16:58:55 +03:00
Marius Bakke
e20388ad7f
services: MySQL: Upgrade database schemas automatically.
* gnu/services/databases.scm (<mysql-configuration>): Add AUTO-UPGRADE? field.
(mysql-upgrade-wrapper, mysql-upgrade-shepherd-service,
mysql-shepherd-services): New variables.
(mysql-service-type): Use MYSQL-SHEPHERD-SERVICES instead of
MYSQL-SHEPHERD-SERVICE.
* doc/guix.texi (Database Services): Document the AUTO-UPGRADE? field of
MYSQL-SERVICE-TYPE.
* gnu/tests/databases.scm (run-mysql-test): Test that mysql_upgrade has run.
2020-11-28 19:51:40 +01:00
Marius Bakke
927bf98e0e
services: MySQL: Make the socket configurable.
* gnu/services/databases.scm (<mysql-configuration>): Add SOCKET field.
(mysql-configuration-file): Adjust accordingly.
* doc/guix.texi (Database Services): Likewise.
2020-11-28 19:51:40 +01:00
Marius Bakke
27d7cdbf87
services: MySQL: Bind to localhost only by default.
* gnu/services/databases.scm (<mysql-configuration>): Add BIND-ADDRESS field.
(mysql-configuration-file): Adjust accordingly.
* doc/guix.texi (Database Services): Document it.
2020-11-28 19:51:40 +01:00
Marius Bakke
89b704a456
services: MySQL: Deprecate 'mysql-service'.
* gnu/services/databases.scm (mysql-service): Define in terms of DEFINE-DEPRECATED.
* gnu/tests/databases.scm (%mysql-os): Adjust accordingly.
* doc/guix.texi (Database Services): Adjust the MariaDB/MySQL section to
document MYSQL-SERVICE-TYPE instead of MYSQL-SERVICE.  While at it, document
the EXTRA-CONTENT field.
2020-11-28 19:51:40 +01:00
Mikhail Tsykalov
788df2ecd6
mapped-devices: Allow target to be list of strings.
* gnu/system/mapped-devices.scm (<mapped-device>): Rename constructor to
%mapped-device.
[target]: Remove field.
[targets]: New field. Adjust users.
(mapped-device-compatibility-helper, mapped-device): New macros.
(mapped-device-target): New deprecated procedure.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-26 00:05:39 +01:00
Tobias Geerinckx-Rice
13180f6acc
services: cups: Add Splix by default.
* gnu/services/cups.scm (cups-configuration): Add splix to the default extensions.
* doc/guix.texi (Printing Services): Document it.
2020-11-21 23:00:06 +01:00
Tobias Geerinckx-Rice
0b57c1b09e
gnu: Rename escpr to epson-inkjet-printer-escpr.
‘escpr’ is nice and short, but everyone else calls this package
‘epson-inkjet-printer-escpr’.  More importantly, so does upstream.

* gnu/packages/cups.scm (escpr, epson-inkjet-printer-escpr,): Rename
escpr to epson-inkjet-printer-escpr, redefining escpr as
deprecated-package.  Adjust all users.
2020-11-21 22:59:47 +01:00
Maxim Cournoyer
182ea66f6f
Merge branch 'version-1.2.0' into master. 2020-11-20 09:46:57 -05:00
Marius Bakke
0a47ff9f9f
services: base: Re-export %default-substitute-urls from (guix store).
* gnu/services/base.scm: Export %DEFAULT-SUBSTITUTE-URLS.
2020-11-18 22:37:17 +01:00
Marius Bakke
0ae9bbe4f5
services: SDDM: Wait for elogind before starting.
Fixes <https://bugs.gnu.org/44669>.

* gnu/services/sddm.scm (sddm-shepherd-service)[requirement]: Add elogind.
2020-11-18 22:31:32 +01:00
Tobias Geerinckx-Rice
a45f8223e1
Merge remote-tracking branch 'upstream/version-1.2.0' 2020-11-18 18:07:57 +01:00
Julien Lepiller
5221df3414
gnu: vpn: Make ca, key and cert optional.
* gnu/services/vpn.scm (openvpn-client-configuration)
(openvpn-server-configuration): Make ca, key an cert fields optional.
* doc/guix.texi (VPN Services): Document the change.
2020-11-18 15:05:41 +01:00
Ludovic Courtès
37b98e8cca
services: shepherd: Map all the invalid store characters to dash.
Fixes a regression introduced in
977eb5d023 whereby file system services
would now have a different name.

* gnu/services/base.scm (file-system->shepherd-service-name): Revert
changes introduced in 977eb5d023.
* gnu/services/shepherd.scm (%store-characters): New variable
(shepherd-service-file-name): Map all the characters outside
%STORE-CHARACTERS to #\-.
2020-11-18 11:13:49 +01:00
Danny Milosavljevic
8490fa0253
services: cups: Add some extensions by default.
* gnu/services/cups.scm (cups-configuration): Add some extensions by default.
doc/guix.texi (Printing Services): Document the default value.
2020-11-18 10:00:11 +01:00
Maxim Cournoyer
129b9b16d9
Merge remote-tracking branch 'origin/version-1.2.0' into master
Conflicts:
	gnu/packages/bioinformatics.scm

The python-pysam package fixed in master was kept instead of the update done
in the version-1.2.0 branch.
2020-11-17 18:00:28 -05:00
Marius Bakke
6cad3f6966
services: mingetty: Export configuration accessors.
* gnu/services/base: Export configuration accessors for mingetty.
2020-11-16 19:08:36 +01:00
Ludovic Courtès
977eb5d023
Properly deal with build directories containing '~'.
Fixes <https://bugs.gnu.org/44626>.
Reported by Vagrant Cascadian <vagrant@debian.org>.

* tests/build-utils.scm ("wrap-script, simple case"): Pass
SCRIPT-CONTENTS to 'display' rather than 'format'.
* gnu/services/base.scm (file-system->shepherd-service-name)
[valid-characters, mount-point]: New variables.
Filter out invalid store file name characters from the mount point of
FILE-SYSTEM.
2020-11-16 11:21:42 +01:00
Alexandru-Sergiu Marton
149dd51d2f
services: gmnisrv: Export procedures and service type.
* gnu/services/web.scm: Export gmnisrv-configuration, gmnisrv-configuration?,
gmnisrv-configuration-package, gmnisrv-configuration-config-file,
gmnisrv-service-type.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-11-14 11:32:40 +00:00