Commit graph

2193 commits

Author SHA1 Message Date
Ludovic Courtès
8492a3c896
services: Switch to ‘shepherd-system-log-service-type’ in ‘%base-services’.
This reinstates c83bfc0415, which had been
reverted in 8c483c12e9 in response to
<https://issues.guix.gnu.org/76315>.

* gnu/services/base.scm (%base-services): Replace ‘syslog-service-type’
by ‘shepherd-system-log-service-type’.
* doc/guix.texi (Base Services): Update ‘syslog-service-type’
documentation.
(Shepherd Services): Mention that ‘system-log-service-type’ is in
‘%base-services’.  Add anchor.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I21082300f6a052865a6ab1bdff27fbe71f73d492
2025-03-05 00:28:49 +01:00
Ludovic Courtès
749eb1a2dd
services: ‘shepherd-service-upgrade’ handles canonical name changes.
Partly fixes <https://issues.guix.gnu.org/76315>.

Fixes a bug whereby a service whose canonical name has changed would not
be restarted—e.g., if '(syslogd) has a replacement providing
'(system-log syslogd).

* gnu/services/shepherd.scm (shepherd-service-upgrade)[running?]:
Remove.
[to-restart]: Change to a subset of LIVE.  Look up all the names of each
element of TARGET.
* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services):
TO-RESTART is now a list of <live-service>; adjust accordingly.
* tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new"):
("shepherd-service-upgrade: service depended on is not unloaded"):
("shepherd-service-upgrade: obsolete services that depend on each other"):
("shepherd-service-upgrade: transient service"): Adjust accordingly.
("shepherd-service-upgrade: service has new canonical name"): New test.

Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I7cec495b4e824da5fad5518f039607cf92f935d9
2025-03-05 00:28:49 +01:00
Ryan Barber
b8645fc0bf
services: tlp: Add config for CPU energy performance policy.
* gnu/services/pm.scm (tlp-configuration): Add cpu-energy-perf-policy-on-ac
and cpu-energy-perf-policy-on-bat.
* doc/guix.texi (Power Management Services): Document
cpu-energy-perf-policy-on-bat and cpu-energy-perf-policy-on-ac.

Change-Id: Ieddf949a325c317abffce00a4f1d047175342d78
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2025-03-04 08:32:49 +01:00
宋文武
ad5140e5c2
services: gdm: Set GUIX_GDK_PIXBUF_MODULE_FILES.
* gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch: Replace
GDK_PIXBUF_MODULE_FILE with GUIX_GDK_PIXBUF_MODULE_FILES.
* gnu/services/xorg.scm (gdm-shepherd-service): Replace GDK_PIXBUF_MODULE_FILE
with GUIX_GDK_PIXBUF_MODULE_FILES.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-03-02 20:31:48 +01:00
Maxim Cournoyer
dd64f441d3
services/udev: Allow configuring udev to run in debug mode.
* gnu/services/base.scm (<udev-configuration>): <debug?>: New field.
* gnu/services/base.scm (udev-shepherd-service): Use it to add '--debug' to
the command line, if applicable.
* doc/guix.texi (Base Services): Document it.

Change-Id: I88243fb4f321ff0876dd227e3c2b22082d37cfcf
2025-03-03 00:31:46 +09:00
Tomas Volf
d0e46a0003
services: Add apcupsd-service-type.
* gnu/services/power.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Power Management Services): Document service and data types.

Change-Id: If205d19bea1d20a99309626e28521a2d6fe6702f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-03-03 00:31:45 +09:00
Carlo Zancanaro
4319fb1aa9
services: wireguard: Add the auto-start? field.
* gnu/services/vpn.scm (<wireguard-configuration>): Add auto-start?.
(wireguard-shepherd-service): Pass auto-start? to Shepherd service.
* doc/guix.texi (VPN Services)[wireguard]: Document it.

Change-Id: I7880a8c8e9860250f875e845e94eb118a4b852fa
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-03-03 00:31:45 +09:00
Leo Famulari
8bc831325a
services: syncthing: Fix typo in file name.
This is a followup to commit 651f8765b6

* gnu/services/syncthing.scm (syncthing-files-service): Fix typo.

Change-Id: I55d1d480d356f41e65b85f8503ceb38c5c1a021b
2025-02-25 13:10:25 -05:00
Alexey Abramov via Guix-patches via
f83b91a4ee
services: dovecot: Provide plugins through a /gnu/store directory.
* gnu/services/mail.scm (package-list?, serialize-package-list): New
procedures.
* gnu/services/mail.scm (dovecot-configuration)[extensions]: New field. The
field lets you provide a list of dovecot plugins that need to be available
during the runtime. A union of the set of modules will be created on the
activation time.
* gnu/services/mail.scm (opaque-dovecot-configuration)[extensions]: Likewise.
* gnu/services/mail.scm (make-dovecot-moduledir): New function.
* gnu/services/mail.scm (%dovecot-activation): Add step to compute a set of
modules, and provide them over the shared link at /usr/lib/dovecot.
* doc/guix.texi (Mail Services)[extension]: Add documentation. Clarify the
purpose and usage of the extensions parameter. Add an example showing how to
enable Sieve filtering using dovecot-pigeonhole. Better explain the module
directory structure and requirements.

Change-Id: I3c3955bb04b09d245242112f6810ecc0558109a1
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-02-25 10:57:51 +00:00
Ludovic Courtès
61a9aa7fbe
services: cuirass: Respawn ‘cuirass-web’ more slowly.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Add
‘respawn-delay’ and ‘respawn-limit’ fields for ‘cuirass-web’.

Change-Id: I38c65d3a13fb3abc7c8f14784de3c93f5d7603f7
2025-02-24 23:33:51 +01:00
Simen Endsjø
075fe3083b
gnu: service: Fix script location for TLP shepherd service.
* gnu/services/pm.scm (tlp-shepherd-service): Fix location for "tlp" script.

Change-Id: I254437441641c96b19383e796fded82c4f6bbcb7
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2025-02-24 23:21:06 +01:00
Ludovic Courtès
bd7b9e6a60
services: Add missing Shepherd dependency on ‘user-processes’.
Fixes <https://issues.guix.gnu.org/76368>.

* gnu/services/auditd.scm (auditd-shepherd-service):
* gnu/services/base.scm (rngd-service-type):
(gpm-shepherd-service):
* gnu/services/ci.scm (laminar-shepherd-service):
* gnu/services/containers.scm (rootless-podman-cgroups-fs-owner-service):
(rootless-podman-cgroups-limits-service):
* gnu/services/cups.scm (cups-shepherd-service):
* gnu/services/databases.scm (postgresql-role-shepherd-service):
* gnu/services/desktop.scm (upower-shepherd-service):
(bluetooth-shepherd-service):
(elogind-shepherd-service):
(inputattach-shepherd-service):
(seatd-shepherd-service):
* gnu/services/dns.scm (knot-resolver-shepherd-services):
(dnsmasq-shepherd-service):
* gnu/services/docker.scm (containerd-shepherd-service):
(docker-shepherd-service):
* gnu/services/file-sharing.scm (transmission-daemon-shepherd-service):
* gnu/services/games.scm (joycond-shepherd-service):
(wesnothd-shepherd-service):
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services):
(guix-data-service-shepherd-services):
(nar-herder-shepherd-services):
(bffe-shepherd-services):
* gnu/services/ldap.scm (directory-server-shepherd-service):
* gnu/services/linux.scm (cachefilesd-shepherd-service):
(rasdaemon-shepherd-service):
* gnu/services/mail.scm (dovecot-shepherd-service):
(imap4d-shepherd-service):
(radicale-shepherd-service):
(rspamd-configuration):
* gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service):
(vnstat-shepherd-service):
* gnu/services/networking.scm (opendht-shepherd-service):
(openvswitch-shepherd-service):
(pagekite-shepherd-service):
(ipfs-shepherd-service):
* gnu/services/nfs.scm (rpcbind-service-type):
(gss-service-type):
(idmap-service-type):
* gnu/services/pm.scm (thermald-shepherd-service):
* gnu/services/rsync.scm (rsync-shepherd-service):
* gnu/services/samba.scm (samba-samba-shepherd-service):
(samba-nmbd-shepherd-service):
(samba-smbd-shepherd-service):
(samba-winbindd-shepherd-service):
(wsdd-shepherd-service):
* gnu/services/security-token.scm (pcscd-shepherd-service):
* gnu/services/sound.scm (speakersafetyd-shepherd-service):
* gnu/services/spice.scm (spice-vdagent-shepherd-service):
* gnu/services/ssh.scm (lsh-shepherd-service):
(openssh-shepherd-service):
(dropbear-shepherd-service):
(autossh-shepherd-service):
* gnu/services/telephony.scm (jami-shepherd-services):
(mumble-server-shepherd-service):
* gnu/services/version-control.scm (git-daemon-shepherd-service):
* gnu/services/virtualization.scm (virtlogd-shepherd-service):
* gnu/services/vnc.scm (xvnc-shepherd-service):
* gnu/services/vpn.scm (openvpn-shepherd-service):
(strongswan-shepherd-service):
* gnu/services/web.scm (httpd-shepherd-services):
(fcgiwrap-shepherd-service):
(php-fpm-shepherd-service):
(hpcguix-web-shepherd-service):
(tailon-shepherd-service):
(varnish-shepherd-service):
(whoogle-shepherd-service):
(mumi-shepherd-services):
(gmnisrv-shepherd-service):
(agate-shepherd-service): Add ‘user-processes’ requirement.
* doc/guix.texi (Mail Services): Update accordingly.

Reported-by: Dariqq <dariqq@posteo.net>
Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
2025-02-23 22:53:06 +01:00
Ludovic Courtès
e36d6ab24b
services: Use ‘spawn-command’ instead of ‘fork’ + ‘waitpid’.
Fixes <https://issues.guix.gnu.org/76315>.

This is more concise and more robust: these ‘waitpid’ calls would
compete with those made by shepherd’s event loop upon SIGCHLD, and they
could hang forever, as illustrated with ‘dhcp-client-service-type’
in <https://issues.guix.gnu.org/76315>.

* gnu/services/databases.scm (postgresql-role-shepherd-service): Use
‘spawn-command’ instead of ‘fork+exec-command’ followed by ‘waitpid’.
* gnu/services/networking.scm (dhcp-client-shepherd-service): Change
‘start’ to use ‘spawn-command’ instead of ‘fork+exec-command’ and
* gnu/services/web.scm (patchwork-django-admin-gexp): Use
‘spawn-command’ instead of ‘primitive-fork’ + ‘waitpid’.

Change-Id: I449290bfa46f8600e6ccdb5a6da990ad0cb7948c
Reported-by: Tomas Volf <~@wolfsden.cz>
2025-02-21 15:27:12 +01:00
Ludovic Courtès
9f77db78e6
services: transmission: Remove custom ‘stop’ implementation.
This ‘stop’ methods had two problems:

  1. It is incompatible with the Shepherd 1.0, where the running value
     is a <process> record and not a PID.

  2. It is unreliable because its ‘waitpid’ calls compete with those
     made by shepherd’s main event loop upon SIGCHLD.

* gnu/services/file-sharing.scm (transmission-daemon-shepherd-service):
Change ‘stop’ to use ‘make-kill-destructor’.

Change-Id: I406eb619d4a72bb5afe6200ac5c8f68736a78d97
2025-02-21 15:27:12 +01:00
Karl Hallsby
8d7578ba6c
services: Add xen-guest-agent-service-type.
* gnu/services/virtualization.scm (xen-guest-agent-configuration,
  xen-guest-agent-service-type): New variables.
* doc/guix.texi: Document them.

Change-Id: Id1b1f4fc2b193d73f4401e74a214222dfe1b6ea7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:10 +01:00
Efraim Flashner
66daf46b41
gnu: Fix some misspellings.
Change-Id: I316652aff7418af4b8e83bea24638b1513f8aa97
2025-02-19 11:21:47 +02:00
Fernando Martínez González
5a0887ce84
services: lightdm: Fix vnc server flag listen-address
* gnu/services/lightdm.scm (lightdm-configuration-file): Fix typo from
‘vnc-server-listen-address’ to ‘listen-address’.

Change-Id: I40d26a5554bf160658e641cc8d3dc212f1364c93
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-18 18:20:01 +01:00
Andreas Enge
9a41ec5762
gnu: guix-configuration: Add a chroot? parameter.
The parameter should take the values #t, #f or 'default.
In a container environment, 'default amounts to #f, otherwise it
amounts to #t.

* gnu/services/base.scm (guix-configuration)<chroot?>: New field.
(guix-shepherd-service): If chroot? is #f, add "--disable-chroot".
If it is #t or 'default, do nothing.
* gnu/system/linux-container.scm (containerized-operating-system):
If chroot? is 'default, replace it by #f.
* doc/guix.texi: Document the parameter.

Change-Id: I8b9c3f46ad8650fa6ed4acee947b4ae5d002d03d
2025-02-17 14:57:55 +01:00
Zacchaeus
651f8765b6
services: syncthing: Add support for declarative configuration.
* gnu/services/syncthing.scm: (syncthing-config-file, syncthing-folder,
syncthing-device, syncthing-folder-device): New records.
(syncthing-service-type): Add special-files-service-type extension for
the config file.
(syncthing-files-service): Add service to create config file.
* gnu/home/services/syncthing.scm: (home-syncthing-service-type):
Extend home-files-services-type and re-exported more things from
gnu/services/syncthing.scm.
* doc/guix.texi: (syncthing-service-type): Document changes.

Change-Id: I87eeba1ee1fdada8f29c2ee881fbc6bc4113dde9
Signed-off-by: Leo Famulari <leo@famulari.name>
2025-02-17 01:12:37 -05:00
Ludovic Courtès
8c483c12e9
Revert "services: Switch to ‘shepherd-system-log-service-type’ in ‘%base-services’."
This reverts commit c83bfc0415 and the
corresponding ‘etc/news.scm’ entry (commits
12bd93113c and
622568ec13) while investigating
<https://issues.guix.gnu.org/76315>.

Change-Id: Ie26c24b8cd25cee3466cc871470b0bec9a5dfafb
2025-02-16 23:09:41 +01:00
Christopher Baines
8416738409
gnu: guix-build-coordinator: Add the listen-repl configuration.
* gnu/services/guix.scm (<guix-build-coordinator-configuration>): Add
listen-repl.
(guix-build-coordinator-configuration-listen-repl): New procedure.
(make-guix-build-coordinator-start-script,
guix-build-coordinator-shepherd-services): Use listen-repl.
* doc/guix.texi (Guix Services): Document listen-repl.

Change-Id: I49cac7cd3c4675f6ffed71320bb61dc7b008179a
2025-02-16 16:02:27 +00:00
Ludovic Courtès
c83bfc0415
services: Switch to ‘shepherd-system-log-service-type’ in ‘%base-services’.
* gnu/services/base.scm (%base-services): Replace ‘syslog-service-type’
by ‘shepherd-system-log-service-type’.
* doc/guix.texi (Base Services): Update ‘syslog-service-type’
documentation.
(Shepherd Services): Mention that ‘system-log-service-type’ is in
‘%base-services’.  Add anchor.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I21082300f6a052865a6ab1bdff27fbe71f73d492
2025-02-15 22:47:59 +01:00
Ludovic Courtès
190a4275bd
services: Add ‘system-log’ Shepherd service.
* gnu/services/shepherd.scm (gexp-or-integer?)
(gexp-or-string?, gexp-or-string-or-false?): New procedures.
(system-log-configuration): New record type.
(shepherd-system-log-service-type): New variable.
* doc/guix.texi (Shepherd Services): Document it.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I1e29fe0977eb4f8026ee6a2d2f282e269c8c00b4
2025-02-15 22:47:58 +01:00
Roman Scherer
af643735a5
services: Add speakersafetyd service.
* gnu/services/sound.scm (speakersafetyd-shepherd-service)
(speakersafetyd-configuration)
(speakersafetyd-service-type): New variables.
* doc/guix.texi (Sound Services): Document it.

Change-Id: Ib8fa19b056a2036019ae7c199d81e1139664e951
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-15 23:22:54 +09:00
Christopher Baines
fa485ee60e
services: guix-build-coordinator: Extend pid file timeout.
As truncating the WAL can take time.

* gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Extend pid
file timeout.

Change-Id: I054fbf5631ee5060a4ea5b3c7940809193e1003b
2025-02-13 09:10:43 +00:00
45mg
0caba8f5db
services: network-manager: Add extra-configuration-files field.
Allow users to specify additional configuration files for NetworkManager.
These files will be added to /etc/NetworkManager/conf.d (NetworkManager's
default configuration directory location).

* gnu/services/networking.scm (<network-manager-configuration>)
[extra-configuration-files]: New field.
(network-manager-activation): Honor the new field.
* doc/guix.texi (Networking Setup): Document the new field.

Change-Id: I07479958e4d0aa318328c666a9630b779230b300
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-13 01:02:03 +09:00
Maxim Cournoyer
ae0d335744
services: herd: Export 'eval-there' in API.
* gnu/services/herd.scm (gnu): Export 'eval-there', which is useful to
evaluate Scheme expressions.

Change-Id: Iff1db56e0847fc5886ac9fe594d677b363e7e6e7
2025-02-13 00:07:21 +09:00
Ludovic Courtès
ec1ada040d
services: log-cleanup: Add Shepherd service documentation.
* gnu/services/admin.scm (log-cleanup-shepherd-services): Add
‘documentation’ field.

Change-Id: Ie24033db668a366474f8307e5e8908fd27c06dda
2025-02-12 10:11:01 +01:00
Ludovic Courtès
5f6fdadb4a
services: user-processes: Remove support for /etc/shepherd/do-not-kill.
The /etc/shepherd/do-not-kill feature has been unused since commit
c828969036, which switched from
unionfs (FUSE) to overlayfs.

* gnu/services/shepherd.scm (%do-not-kill-file): Remove.
(user-processes-shepherd-service): In ‘stop’ action, remove
‘kill-except’, ‘omitted-pids’, and ‘lset=’.  Remove conditionals on
‘omitted-pids’ being non-empty.

Change-Id: Id7c6031fc12fd8ff0a3fde955fb01e373751e2d0
2025-02-09 18:20:42 +01:00
Ludovic Courtès
ba9af3e151
services: user-processes: Simplify and streamline ‘stop’ action.
* gnu/services/shepherd.scm (user-processes-shepherd-service): In ‘stop’
action, remove ‘sleep*’, which is unnecessary when using Fibers, and
remove the ‘reap-children’ loop and its ‘waitpid’ call, which is
redundant with ‘waitpid’ calls made by shepherd itself and could cause
confusion.

Change-Id: I0df1733f0cbe781a0ad5fef4830d903483e0da27
2025-02-09 18:20:42 +01:00
Maxim Cournoyer
e8185fc4d5
services: Rename field in greetd-terminal-configuration record.
This was erroneously renamed during the review of commit
ee0d1b144c ("services: greetd: Improve greeter configurations.").  The field
*adds* to the intrinsic requirements of the service, so the 'extra-' prefixes
communicates this better.

* gnu/services/base.scm (<greetd-terminal-configuration>): Rename
shepherd-requirement field to extra-shepherd-requirement.
* doc/guix.texi (Base Services): Adjust doc accordingly.

Change-Id: I4b970bdd63864ed86d61fde9cad2487a293417ce
2025-02-07 17:50:21 +09:00
Dariqq
4d9eea998b
services: greetd: Use mkdir-p in activation script.
Fixes a bug introduced in ee0d1b144c where
reconfiguring a system with ‘greetd-service-type’ would fail with:

  guix system: error: mkdir: File exists "/run/user".

* gnu/services/base.scm (greetd-run-user-activation): Replace mkdir with mkdir-p.

Change-Id: I030d1f57c3292c518b3f17061f75258e8a72141c
2025-02-07 17:50:21 +09:00
muradm
220ef58440
services: greetd: Add new gtkgreet greeter.
* gnu/services/base.scm (<greetd-gtkgreet-sway-session>): New record,
represents 'gtkgreet' greeter session configuration.
* doc/guix.texi (Base Services): Document new 'gtkgreet' greeter.

Change-Id: I2e8b5710965faa05795af1d0b2a0e2f774af1d5a
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-06 22:26:45 +09:00
muradm
ee0d1b144c
services: greetd: Improve greeter configurations.
This improvement focuses on providing common user session scripts
for use by multiple greeters. Now user session entry point is
factored out into '<greetd-user-session>', which can be reused
as is with different greeters. By default it uses 'bash' as
first user process. Then user normally starts additional programs
with '.profile' or '.bashrc'. Using 'command', 'command-args' and
'extra-env' one can specify something else, which could be
'dbus-session' wrapped process, some desktop environment or else.
While the above is possible, one is still encouraged to use
'.bashrc', '.profile' or similar.

It also fixes incorrect use of 'XDG_RUNTIME_DIR' for 'wlgreet'.
'wlgreet' requires a compositor to run. We provide common sway based
greeter script, which can be shared by other graphical greeters.

* gnu/services/base.scm (<greetd-user-session>): Common user session
factored out, for shared use by multiple greeters.
(<greetd-agreety-session>): Switch to common user session.
(<greetd-wlgreet-configuration>): Refactor 'wlgreet' configuration.
(<greetd-wlgreet-sway-session>): Switch to common user session.
(<greetd-terminal-configuration>): Add 'extra-shepherd-requirement'
for establishing configurable Shepherd service dependency.
* gnu/tests/desktop.scm (%minimal-services): Reflect configuration
changes.
* doc/guix.texi (Base Services): Document refactoring changes.

Change-Id: I9d45a592b355eb9c438be5b1d4d15555ce4956fa
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-06 22:26:45 +09:00
Leo Famulari
52c05f3b12
gnu: Remove extraneous reference to defunct mate-desktop-service.
This is a followup to commit 7a482ee945

Perhaps it was caused by a conflict resolution error during a rebase or
merge?

* gnu/services/desktop.scm: Stop exporting the non-existent variable
mate-desktop-service.

Change-Id: Ie71a3a49a7abf33df6aa3a5c27440a4cb382d46e
2025-02-05 21:04:51 -05:00
Leo Famulari
934569bc77
gnu: Remove extraneous reference to defunct xfce-desktop-service.
This is a followup to commit a1fa230147.

Perhaps it was caused by a conflict resolution error during a rebase or
merge?

* gnu/services/desktop.scm: Stop exporting the non-existent variable
xfce-desktop-service.
* doc/guix.texi (Desktop Services): Adjust accordingly.

Change-Id: I7ca24331365fa395fcee47de7ad0239e08aafbe3
2025-02-05 21:04:50 -05:00
宋文武
f0e3e23989
gnu: xf86-input-keyboard: Remove Linux from supported systems.
* gnu/packages/xorg.scm (xf86-input-keyboard)[supported-systems]: New field.
(xpra)[inputs]: Remove xf86-input-keyboard.
* gnu/services/xorg.scm (%default-xorg-modules): Remove xf86-input-keyboard.
* doc/guix.texi (X Window)[%default-xorg-modules]: Replace xf86-input-keyboard
with xf86-input-libinput.

Change-Id: Ia0b5c0289aa83e3afa7e71bef1785d6bddf6f017
2025-01-31 16:39:27 +08:00
Runciter
a47bbf6965
services: dico: Add symbols to help users configure FreeDict with dicod.
* gnu/services/dict.scm: (dicod-freedict-database): New procedure;
(%dicod-databases:freedict): new variable.
* doc/guix.texi (Dictionary Service): Document them.

Signed-off-by: Runciter <runciter@whispers-vpn.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Id5b20e235b988953a66e0344872d1fa165c4c773
2025-01-26 22:09:28 +01:00
Ludovic Courtès
dc0df5eb47
services: Add the Shepherd’s ‘transient’ and ‘timer’ to ‘%base-services’.
* gnu/services/base.scm (%base-services): Add instances of
‘shepherd-timer-service-type’ and ‘shepherd-transient-service-type’.

Change-Id: I28a35d0dce40b142ee71b330b1cf7a3d222ef6bd
2025-01-26 22:09:27 +01:00
Ludovic Courtès
e73cf57a20
services: shepherd: Add ‘transient’ and ‘timer’.
* gnu/services/shepherd.scm (shepherd-timer-service-type)
(shepherd-transient-service-type): New variables.
* doc/guix.texi (Shepherd Services): Document them.

Change-Id: I9b622e7e947e7a6384c2701a313d0c7080a0a5f6
2025-01-26 22:09:27 +01:00
Maxim Cournoyer
dc7f2cd9d8
services/gnome: Reinstate auto-configuration for GNOME Boxes.
Previously to 4722496292 ("Remove gnome-boxes from default GNOME apps."), USB
redirection for GNOME Boxes had been working out-of-the-box.  Reinstate the
extensions that made that possible, so that simply adding the gnome-boxes
package back to one of the gnome-desktop-configuration fields does the right
thing.

* gnu/services/desktop.scm (gnome-setuid-programs): New procedure.
(gnome-desktop-service-type) [privileged-program-service-type]: Use it as an
extension.
* gnu/packages/gnome.scm (gnome-boxes):
[inputs]: Move spice-gtk to...
[propagated-inputs]: ... here.
[description]: Document extra steps necessary to enable the USB redirection
feature.

Change-Id: If84e8a2e0c480ddd1d7cd294890fad1ae2a76987
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-01-27 02:03:03 +09:00
Maxim Cournoyer
f9e1332349
services/desktop: Use transitively propagated GNOME packages for polkit/udev.
This is useful for automatically picking up the polkit or udev rules from the
GNOME packages propagated inputs (transitively), e.g. spice-gtk from the
gnome-boxes package.

* gnu/services/desktop.scm (gnome-profile): Add a #:transitive? argument.
(gnome-udev-configuration-files): Use it.
(gnome-polkit-settings): Likewise.

Change-Id: I3597c9d3dc296e8f3e45017bb02e500db0b73783
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-01-27 02:03:03 +09:00
Maxim Cournoyer
4797fb64ca
services: Export gnome-desktop-configuration-polkit-ignorelist accessor.
* gnu/services/desktop.scm: Export
gnome-desktop-configuration-polkit-ignorelist accessor.

Change-Id: Ia2281c2c3f98e508d12d65487d72281821308d6e
2025-01-26 00:49:39 +09:00
Giacomo Leidi
35c6ae6e58
services: restic-backup: Implement as a Shepherd timer.
This patch implements restic backup with Shepherd services.  It is
supposed not to break any existing setup.

* gnu/services/backup.scm (restic-backup-job): Add Shepherd
configuration options;
(restic-backup-job->mcron-job): Replace with...;
(restic-job-log-file): New procedure;
(restic-backup-job->shepherd-service): New procedure;
(restic-backup-activation): New procedure;
(restic-backup-service-type): Replace mcron with Shepherd extension and add
activation extension hook.
* doc/guix.texi: Document it.

Change-Id: I66de3b6a1cb6177f9e4ee0c2acf3013ecbcdd338
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-25 00:04:27 +01:00
Ludovic Courtès
a9f21036e4
services: rottlog: Deprecate.
* gnu/services/admin.scm (rottlog-service-type): Deprecate.
* doc/guix.texi (Log Rotation): Add deprecation warning.

Change-Id: I661666ff3de64a69ff4f4982d7f432fd575c36df
2025-01-16 22:30:02 +01:00
Ludovic Courtès
6942161b44
services: Switch from mcron + Rottlog to Shepherd’s log rotation.
* gnu/services/admin.scm (unattended-upgrade-log-rotations): Remove.
(unattended-upgrade-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/audio.scm (mpd-log-rotation): Remove.
(mpd-service-type): Remove ‘rottlog-service-type’ extension.
(mympd-log-rotation): Remove.
(mympd-service-type): Remove rottlog-service-type’ extension.
* gnu/services/base.scm (%guix-publish-log-rotations): Remove.
(guix-publish-service-type): Remove ‘rottlog-service-type’ extension.
(%base-services): Instantiate ‘log-rotation-service-type’ instead of
‘rottlog-service-type’.
(%default-syslog-files): New variable.
(syslog-service-type): Extend ‘log-rotation-service-type’.
* gnu/services/cuirass.scm (cuirass-log-rotations): Remove.
(cuirass-service-type): Remove ‘rottlog-service-type’ extension.
(cuirass-remote-worker-log-rotations): Remove.
(cuirass-remote-worker-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/file-sharing.scm (%transmission-daemon-log-rotations):
Remove.
(transmission-daemon-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/linux.scm (%earlyoom-log-rotation): Remove.
(earlyoom-service-type): Remove ‘rottlog-service-type’ extension.
* gnu/services/networking.scm (%ntp-log-rotation): Remove.
(ntp-service-type): Remove ‘rottlog-service-type’ extension.
(openntpd-service-type): Likewise.
(%connman-log-rotation): Remove.
(connman-service-type): Remove ‘rottlog-service-type’ extension.
(%hostapd-log-rotation): Remove.
(hostapd-service-type): Remove ‘rottlog-service-type’ extension.
(%pagekite-log-rotation): Remove.
(pagekite-service-type): Remove ‘rottlog-service-type’ extension.
(%yggdrasil-log-rotation): Remove.
(yggdrasil-service-type): Remove ‘rottlog-service-type’ extension.
(%ipfs-log-rotation): Remove.
(ipfs-service-type): Remove ‘rottlog-service-type’ extension.
(%keepalived-log-rotation): Remove.
(keepalived-service-type): Remove ‘rottlog-service-type’ extension.
* gnu/services/web.scm (%hpcguix-web-log-rotations): Remove.
(hpcguix-web-service-type): Remove ‘rottlog-service-type’ extension.
(%mumi-log-rotations): Remove.
(mumi-service-type): Remove ‘rottlog-service-type’ extension.
* doc/guix.texi (Log Rotation): Adjust text regarding which one is in
‘%base-services’.

Change-Id: I8802d4c2337a1e08e3c084d6217f76527d7ee1fb
2025-01-16 22:30:02 +01:00
Ludovic Courtès
48083c8c95
services: unattended-upgrade: Rewrite as a Shepherd timer.
This is a semi-incompatible change: gexps previously provided in the
‘schedule’ field will no longer work.

* gnu/services/admin.scm (unattended-upgrade-mcron-jobs): Rename to…
(unattended-upgrade-shepherd-services): … this.  Return a list of one
Shepherd service.  Remove custom logging and time limitation facilities
from ‘code’.
(unattended-upgrade-service-type): Extend ‘shepherd-root-service-type’
instead of ‘mcron-service-type’.
(<unattended-upgrade-configuration>)[services-to-restart]: Change
default.
* doc/guix.texi (Unattended Upgrades): Adjust ‘schedule’ and
‘services-to-restart’ documentation.

Change-Id: I1b239c5946e71cf9e2af9b24fe4b01366b57fb7a
2025-01-16 22:30:02 +01:00
Ludovic Courtès
100c1e1adf
services: log-cleanup: Rewrite as a Shepherd timer.
This is a semi-incompatible change: gexps previously provided in the
‘schedule’ field will no longer work.

* gnu/services/admin.scm (log-cleanup-mcron-jobs): Remove.
(log-cleanup-shepherd-services): New procedure.
(log-cleanup-service-type): Extend SHEPHERD-ROOT-SERVICE-TYPE instead of
MCRON-SERVICE-TYPE.
* doc/guix.texi (Log Rotation): Adjust ‘schedule’ documentation
accordingly.

Change-Id: I2a3beb7dffbc9992b714a29423674db9c7dc6cab
2025-01-16 22:30:02 +01:00
Ludovic Courtès
4cef56587a
services: Add ‘log-rotation-service-type’.
* gnu/services/admin.scm (%default-log-rotation-calendar-event): New
variable.
(<log-rotation-configuration>): New record type.
(log-rotation-shepherd-services): New procedure.
(log-rotation-service-type): New variable.

Change-Id: I4400035f3b6065ec147ac932110b690120d739c2
2025-01-16 22:30:02 +01:00
Sören Tempel
ac6aba1fd7
services: dns: Minor cleanup of unbound service.
In #68757, v3 instead of v4 of the patchset was committed by accident.
This patch revives the (minor) changes made in the v4.

* gnu/service/dns.scm: Remove exports of no longer existing names.
(unbound-service-type): Fix at typo (unbound -> Unbound).
(unbound-shepherd-service): Run after user processes.
(unbound-account-service): Determine shell based on shadow package.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-16 12:51:48 +01:00