Commit graph

1908 commits

Author SHA1 Message Date
Thomas Albers
4cf4bd1ebe
services: cgit: Allow file-like objects for ‘root-readme’.
* gnu/services/cgit.scm (cgit-configuration)[root-readme]: Accept
'file-object' instead of only 'string'

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

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-09-09 12:24:12 +02:00
Marius Bakke
0fbeeee7e9
services: Open vSwitch: Depend on 'user-processes' target.
* gnu/services/networking.scm (openvswitch-shepherd-service)[ovsdb](requirement):
Add user-processes.
2023-09-08 18:53:47 +08:00
Christopher Baines
d823ed25d5
services: nar-herder: Specify a working directory.
Mostly so that core dumps end up here.

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

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

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

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

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

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

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

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

This reverts commit 8490a8346b.

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

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

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

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

The added options allow for both of these scenarios:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-08 18:01:55 +02:00
Ludovic Courtès
b3a2b3e723
services: Add 'package-database' service.
* gnu/services/admin.scm (%default-package-database-update-schedule):
New variable.
(<package-database-configuration>): New record type.
(package-database-mcron-jobs): New procedure.
(package-database-service-type): New variable.
* doc/guix.texi (File Search Services): Document it.
2023-08-07 15:11:45 +02:00
Ludovic Courtès
e63c87020d
services: Add 'file-database' service.
* gnu/services/admin.scm (%default-file-database-update-schedule)
(%default-file-database-excluded-directories): New variables.
(<file-database-configuration>): New record type.
(file-database-mcron-jobs): New procedure.
(file-database-service-type): New variable.
* doc/guix.texi (File Search Services): New node.
2023-08-07 15:11:44 +02:00
Maxim Cournoyer
c7e45139fa
Revert "services: mpd: Add an 'update' action to trigger a database update."
This reverts commit e1070ee160.  Rationale: this
only works with the default 'endpoints'.  The 'auto-update?' option should be
sufficient to trigger a database update automatically anyway.
2023-07-26 12:04:37 -04:00
Maxim Cournoyer
776317e707
services: mpd: Provision a default cache directory and set HOME.
Relates to <https://issues.guix.gnu.org/63082>.

* gnu/services/audio.scm (mpd-shepherd-service): Create a default .cache
directory.  Use mkdir-p/perms and refactor loop.  Set the HOME environment
variables.
2023-07-26 10:40:16 -04:00
Maxim Cournoyer
07bb69d52c
services: mpd: Auto-detect mpd-output mixer type by default.
Relates to <https://issues.guix.gnu.org/63082>.

* gnu/services/audio.scm (mpd-output) [mixer-type]: Change default value from
"none" to unspecified.
* doc/guix.texi (Audio Services): Regenerate doc.
2023-07-26 10:40:16 -04:00
Maxim Cournoyer
f16c7188f4
services: Avoid 'delete' overrides warning in audio module.
* gnu/services/audio.scm: Hide 'delete' on (gnu services) import.
2023-07-26 10:40:16 -04:00
Maxim Cournoyer
0db2fa1ac0
services: mpd: Do not rotate logs when using syslog.
* gnu/services/audio.scm (mpd-log-rotation): Conditionlize based on the value
of LOG-FILE.
2023-07-26 10:40:16 -04:00
Maxim Cournoyer
131746885c
services: mpd: Log to syslog by default.
Rationale: the tristate value was awkward to deal with, the default log file
name was odd (/var/log/mpd/log) and it required special attention to create
the 'mpd' parent directory as root and chowning it to the MPD user.  It also
didn't match the default behavior of MPD, which is to log to systemd or syslog
unless a log file is specified.

* gnu/services/audio.scm (mpd-log-file-sanitizer): New procedure.
(mpd-configuration) [log-file]: Remove default maybe value.  Add sanitizer.
(mpd-shepherd-service): Validate the log file parent directory exists and has
the right permissions.  Conditionally add syslogd to requirements.
(mympd-log-to-sanitizer): New procedure.
(mympd-configuration) [log-to]: Change type to maybe-string.  Update doc and
add sanitizer.
(mympd-shepherd-service) [requirement]: Fix to use syslogd.  Adjust
accordingly.
[start] Adjust accordingly.
(mympd-log-rotation): Check log-to via maybe-value-set?.
* doc/guix.texi (Audio Services): Update doc.
2023-07-26 10:40:15 -04:00
Maxim Cournoyer
a5d611c19b
services: mpd; Refactor start slot directory initialization.
* gnu/services/audio.scm (mpd-shepherd-service): Standardize the way the log
file parent and other directories are initialized in the start slot.
(mympd-shepherd-service): Likewise.
2023-07-26 10:40:15 -04:00
Maxim Cournoyer
98a46c9da6
services: mpd: List log-level in decreasing verbosity order in doc.
* gnu/services/audio.scm (mpd-configuration) [log-level]: List log-level in
decreasing verbosity order in doc.
* doc/guix.texi (Audio Services): Update doc.
2023-07-26 10:40:15 -04:00
Christopher Baines
a8b4ab61f3
services: guix-data-service: Unlink the two shepherd services.
So that they can be restarted in dependently.

* gnu/services/guix.scm (guix-data-service-shepherd-services): Don't require
the main service from the jobs service.
2023-07-26 10:31:58 +01:00
Maxim Cournoyer
005912c595
services: mpd: Rename %set-user-group to set-user-group.
The convention to use % as a prefix is for "special" variables rather than
procedures.

* gnu/services/audio.scm (%set-user-group): Rename to...
(set-user-group): ... this.
2023-07-25 13:04:18 -04:00
Maxim Cournoyer
42c8a2e296
services: mpd: Streamline mpd-user-sanitizer and mympd-user-sanitizer.
* gnu/services/audio.scm (mpd-user-sanitizer, %mympd-user): Remove extraneous
group field, already inherited.
(%mpd-user, %mympd-user): Clarify %lazy-group explanatory comment.  Fix
indentation.
2023-07-25 13:04:18 -04:00
Maxim Cournoyer
e1070ee160
services: mpd: Add an 'update' action to trigger a database update.
* gnu/services/audio.scm (mpd-shepherd-service): Register a new update action.
* doc/guix.texi (Audio Services): Document it.
2023-07-25 13:04:17 -04:00
Maxim Cournoyer
6a57bf9612
services: mpd: Add auto-update? field to mpd-configuration.
* gnu/services/audio.scm (mpd-configuration) [auto-update?]: New field.
* doc/guix.texi (Audio Services): Update doc.
2023-07-25 13:04:12 -04:00
Maxim Cournoyer
bdcf23cf69
services: wireguard: Add a 'configuration' action.
* gnu/services/vpn.scm (wireguard-shepherd-service) [actions]: New field.
2023-07-21 11:58:45 -04:00
Maxim Cournoyer
d2385da87e
services: wireguard: Clean-up configuration file serializer.
Previously, the generated config file would contain arbitrary whitespace that
made it look ugly.

* gnu/services/vpn.scm (<wireguard-configuration>) [dns]: Change default value
from #f to '().
(wireguard-configuration-file): Use match-record.  Format each line
individually, assembling the lines at the end to avoid extraneous white space.
* doc/guix.texi (VPN Services): Update doc.
2023-07-21 11:58:44 -04:00