1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00
Commit Graph

2446 Commits

Author SHA1 Message Date
Giacomo Leidi
fd6b17bf20 gnu: Add tuned-service-type.
* gnu/services/linux.scm
(tuned-configuration,tuned-settings,tuned-ppd-settings): New
configuration records.
(tuned-file-systems,tuned-activation,tuned-shepherd-services,
tuned-kernel-modules): New procedures.
(tuned-service-type): New service type.
* doc/guix.texi: Add service documentation.

Change-Id: I6c8d54c23175c2ea133d99965641c548fb1d6452
2026-03-07 22:28:01 +01:00
Sughosha
826a6bea27 services: plasma-desktop: Enable kde-inotify-survey.
* gnu/services/desktop.scm (plasma-polkit-settings): Add kde-inotify-survey.
(plasma-dbus-service): Ditto.

Change-Id: Ic4598dca4a8c109821b5de60d1b5bdb1d7f6f6bf
2026-03-08 00:02:05 +05:30
Sughosha
870cf89d0f services: plasma-desktop: Enable plasma-thunderbolt.
* gnu/services/desktop.scm (plasma-polkit-settings): Add bolt.
(plasma-dbus-service): Ditto.

Change-Id: I7d32a0053dfd2f472cdcfbab67e17307871a4824
2026-03-05 15:57:57 +05:30
Sughosha
a31ac4846c services: plasma-desktop: Enable fwupd.
* gnu/services/desktop.scm (plasma-polkit-settings): Add fwupd.
(plasma-dbus-service): Ditto.

Change-Id: Ibe5ffea441b8920694accd688401b5fed2c41784
2026-03-05 07:54:12 +05:30
Sughosha
4de544fb61 services: plasma-desktop: Cleanup plasma-polkit-settings.
* gnu/services/desktop.scm (plasma-polkit-service): Reorder.

Change-Id: Icc0ae7aff52a567c8b7b8ad5e929828a8b4eafe2
2026-03-05 07:54:12 +05:30
Sughosha
08a5d6587f services: plasma-desktop: Cleanup plasma-dbus-service.
* gnu/services/desktop.scm (plasma-dbus-service): Reorder; remove
kactivitymanagerd and kwallet.

Change-Id: I304490c20006d60729fe7984a1c1b8c7d84f62fc
2026-03-05 07:54:12 +05:30
Giacomo Leidi
a375202ad3 gnu: libvirt: Configure default libvirt network.
* gnu/services/virtualization.scm (%libvirt-activation): Activate
default libvirt network configuration file.
* gnu/tests/virtualization.scm (run-libvirt-test): Drop network
definition test and replace it with a test checking that the default
network is inactive by default.

Change-Id: I03b6314a390c6d93ebf886d7033867ff5cacad74
2026-03-04 20:18:02 +01:00
Lilah Tascheter
22ae76cfce services: mollysocket: Fix mollysocket configuration.
* gnu/services/messaging.scm (ms-format): Run string-map on label, not str/rhs.

Change-Id: I07b6b90e4156b525aad1490a4165a3359bda8b3e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4435
2026-03-04 17:45:15 +01:00
Sughosha
2746e07180 services: readymedia: Allow relative paths to media directories.
* gnu/services/upnp.scm (readymedia-activation): For home services, if the
media directory paths are relative, create it in the user's home directory.
* doc/guix.texi (Miscellaneous Services)[DLNA/UPnP Services]: Update doc.

Change-Id: I39176320d6c33c56c5b80ad9e67e989ee41565da
2026-03-03 23:53:40 +05:30
Fabio Natali
0c506e6f52 gnu: services: Add gunicorn-service-type.
* gnu/services/web.scm
(<gunicorn-configuration>, <gunicorn-app>): New records.
(unix-socket?, unix-socket-path, gunicorn-activation,
gunicorn-shepherd-services): New procedures.
(gunicorn-service-type): New variable.
* doc/guix.texi (Web Services): Document the new service.

Co-authored-by: Arun Isaac <arunisaac@systemreboot.net>
Change-Id: I3aa970422e6a5d31158b798b1061e6928ad2160b
Signed-off-by: jgart <jgart@dismail.de>
2026-03-01 08:33:54 -05:00
Danny Milosavljevic
31d7f1f431 services: greetd: Fix Signal.
* gnu/services/base.scm (%greetd-pam-mount-rules): Remove noexec.

Closes: guix/guix#5083
Change-Id: Iede81a8afecc8d7213e9eb101ac7eeec3bb9632b
2026-03-01 02:52:22 +01:00
Giacomo Leidi
bfa4e179e2 services: Support list of strings for oci-container-configuration's entrypoint.
Dockerfile's ENTRYPOINT statement supports also a list of strings. This
patch implements this behavior for oci-container-configuration.

* oci/services/containers.scm (string-or-list-of-strings?): New
procedure.
(oci-container-configuration)[entrypoint]: Change field type to
maybe-string-or-list-of-strings.
(oci-container-configuration->options): Use it.
* doc/guix.texi: Document it.

Change-Id: I1c94dec79c9f4b2324225810a7926be251bfd795
Reviewed-by: Owen T. Heisler <writer@owenh.net>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25 22:17:41 +00:00
Giacomo Leidi
9f976927fc services: Add gexp compiler for oci-image.
This commit allows oci-image records to be directly compiled to tarballs
file names when ungexeped, by means of a gexp compiler. It is supposed
to make the usage of oci-images in gexp smoother.

* oci/services/containers.scm (lower-manifest): Reformat and derive
tarball name from the image reference.
(lower-oci-image-state): Drop procedure and merge with lower-oci-image.
(oci-image-compiler): Implement in terms of lower-oci-image.
(oci-image-loader): Drop call to lower-oci-image and directly ungexp the
oci-image record.

Change-Id: I1755585a10294ad94c8025e7c35d454319174efc
Reviewed-by: Owen T. Heisler <writer@owenh.net>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25 22:17:35 +00:00
Mathieu Lirzin
e9cb964a5e gnu: rabbitmq-service-type: Extend profile-service-type.
* gnu/services/high-availability.scm (rabbitmq-service-type): Extend
profile-service-type.

Change-Id: I5946c7d00ad8dba2e11f7798d77b5fbb80d066ba
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-25 22:06:21 +00:00
Liliana Marie Prikler
1c7a4a564a services: pulseaudio: Use match-record-lambda.
* gnu/packages/sound.scm (pulseaudio-etc): Reimplement in terms of
match-record-lambda.
2026-02-25 13:32:34 +01:00
Rodion Goritskov
396a9451d4 services: Add configuration action to miniflux-service-type.
* gnu/services/web.scm (miniflux-shepherd-service): Add configuration action.
* gnu/tests/web.scm (run-miniflux-test): Add configuration action check.

Change-Id: I515653070cc0c39fcbe31fef19d8745a1a8d47cb
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-23 23:58:25 +00:00
Sughosha
4b8cfa7f69 services: readymedia: Run with a pid file.
* gnu/services/upnp.scm (%readymedia-default-pid-directory): New variable.
(%readymedia-pid-file): New procedure.
(readymedia-shepherd-service)[start]: Start with the pid file.
(readymedia-activation): Create the pid directory.
* gnu/tests/upnp.scm (run-readymedia-test): Test the pid directory and file.

Merges: https://codeberg.org/guix/guix/pulls/1007
Change-Id: I454a89d25afe0e9bb0414645b1e4594afdf89058
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-02-22 17:15:19 +01:00
Sughosha
f19ddd6dfe services: readymedia: Fix configurations.
* gnu/services/upnp.scm (%readymedia-default-log-directory): Remove variable.
(%readymedia-default-log-file): New procedure.
(%readymedia-default-cache-directory): Turn it into a procedure.
(<readymedia-configuration>)[log-directory]: Remove field.
[log-file]: New field.
[cache-directory]: Set to %readymedia-default-cache-directory.
(readymedia-configuration->config-file): Remove "user" and "log_dir" fields.
(readymedia-shepherd-service)[modules]: Add (shepherd support).
[start]: Do not map the log-directory. For home services, do not wrap the
program with least-authority-wrapper.
(readymedia-activation): Do not create the log-directory.
* gnu/home/services/upnp.scm (%readymedia-cache-file, %readymedia-cache-path,
%readymedia-log-path): Remove variables.
(run-readymedia-test): Use the procedures properly. Do not test the
log directory. Test the log file.
* doc/guix.texi (Miscellaneous Services)[DLNA/UPnP Services]: Update doc.

Change-Id: I97d84b5287c374ddb26a495f20a36f986b0c142d
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-02-22 17:15:16 +01:00
Giacomo Leidi
b657836863 gnu: postgresql-role: Avoid leaking passwords through kernel's command line facility.
The implementation of postgresql-role's password up until now relied on
spawining a subshell reading the password file and passing its content
via command line to a psql process which would create users and set
passwords. This allowed a (fast) attacker to eavesdrop, via the kernel
command line facility, the password while they were read,
without having the permissions required for reading the password
file.

This new implementation reads passwords directly from password files
into the Guile process, temporarily stores them in query files living in
a memory backed file system and deletes the query files after executing
them. It also makes sure to turn off logging of commands for the
duration of the password setting transaction, so passwords don't get
leaked to system logs through misconfiguration.

* gnu/services/databases.scm (%postgresql-role-runtime-dir): New
variable.
(postgresql-create-roles): Rework the way passwords are set to avoid
leaking them through subshells and command lines.
(%postgresql-role-file-systems): New variable.
(postgresql-role-service-type): Add file-system-service-type extension
point.

Change-Id: I52406d1d24f5d163081b5c21d3e1760fc0b67a1e
2026-02-11 10:57:06 +01:00
Maxim Cournoyer
90b1546bc2 services: Fix logging for jami-service-type.
Its default behavior changed and it no longer logs to syslog by default;
update to log to /var/log/jami.log instead.

* gnu/services/telephony.scm (jami-configuration->command-line-arguments):
Drop /dev/log mapping. Add /var/log/jami.log mapping. Always add --console argument.
(jami-shepherd-services): Conditionally add #:log-file argument; simplify
usernames logic a bit.
* gnu/services/telephony.scm (jami-configuration): Update doc.
* doc/guix.texi (Telephony Services): Likewise.

Change-Id: Ia2819866c84db4cba92fad52dfd0a74acdc887fc
2026-02-10 18:07:49 +09:00
Wilko Meyer
eee1bfbec5 gnu: services: Add xandikos-service-type.
* gnu/services/dav.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add file.
* doc/guix.texi (DAV Services): Document the service.

Change-Id: I5345efd579f9e527eb8798397b52bf1b9b4cab56
2026-02-09 16:27:42 +01:00
Sören Tempel
64622248cd services: web: Add go-webdav.
* gnu/services/web.scm (go-webdav-service-type): New service.
(go-webdav-account-service): New variable.
(go-webdav-shepherd-service): New procedures.
* gnu/tests/web.scm (%test-go-webdav): Add tests for the service.
* doc/guix.texi (Web Services): Document it.

Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2026-02-08 23:53:58 +01:00
Sergey Trofimov
a5ba90028b services: virtual-build-machine: Fix typo in GC job configuration.
* gnu/services/virtualization.scm (gc-service-type): Use
make-timer-destructor as stop procedure.

Change-Id: I94b2cac0b03cbf1b5add7e5554567907a982c58e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-06 20:49:03 +01:00
Ludovic Courtès
f4d42db437 services: static-networking: Add ‘scope’ field to <network-route>.
* gnu/services/base.scm (assert-network-route-scope): New procedure.
(<network-route>)[scope]: New field.
(network-set-up/linux)[route-scope->constant]: New procedure.
Use it to pass #:scope to ‘route-add’.
* doc/guix.texi (Networking Setup): Document it.

Fixes: guix/guix#4175
Reported-by: Christopher Baines <mail@cbaines.net>
Change-Id: I24399eca6e691d63fa3d01be564060a3d693d650
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5507
2026-02-06 20:49:02 +01:00
Ludovic Courtès
1bd2dd9020 services: static-networking: Tweak error messages.
* gnu/services/base.scm (assert-network-link-mac-address): Change error
message string to conform to standards.
(assert-network-link-type): Change to ‘define-with-syntax-properties’ since
previously it would reject a non-literal symbol.  Adjust message string.

Change-Id: I0a8b9d7512ca7567f9d60eb15ad6fb4e05020e48
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-06 20:49:02 +01:00
Rutherther
33e0fa7e31 services: pcscd: Add polkit extension.
Extend polkit to support new polkit rule used in pcsc-lite.

* gnu/services/security-token.scm (pcscd-service-type): Extend polkit.

Change-Id: Ib14f6f58b7ce0383e091f23257b379af0f78e928
Fixes: #5940
Signed-off-by: Hilton Chain <hako@ultrarare.space>
Modified-by: Hilton Chain <hako@ultrarare.space>
Merges: #5942
2026-01-31 23:33:52 +08:00
Clombrong
8dc57904e3 services: Add endlessh-service-type.
* docs/guix.texi: Document EndleSSH service and configuration.
* gnu/services/ssh.scm: New service.
* gnu/services/ssh.scm: Define shepherd service.

Merges: https://codeberg.org/guix/guix/pulls/5910
Co-Authored-By: Giacomo Leidi <therewasa@fishinthecalculator.me>
Change-Id: Ief4520b536276b88f2e5027ef0897bf84b2835df
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-01-27 11:46:03 +01:00
Hilton Chain
7052c66e14 services: gdm: Include system profile in XDG_DATA_DIRS.
* gnu/services/xorg.scm (gdm-shepherd-service)
[start] <#:environment-variables>: Add system profile to XDG_DATA_DIRS so that
we can use fonts installed in it.

Change-Id: Idd11fe0a5d5d57db5459a5c2a9471d1bf640a6ef
2026-01-25 13:18:26 +08:00
Hilton Chain
e00439c93e services: guix: Pretty print /etc/guix/channels.scm.
* gnu/services/base.scm (install-channels-file): Pretty print channels.scm.

Change-Id: I692758a4f0a3f6e57b40c95a487c7c843245fe6c
2026-01-25 13:07:34 +08:00
Ian Eure
7ef5ba7c65 gnu: Break circular module cycle.
Commit a9462997d7 added the (gnu services
desktop) module to (gnu services xorg).  It’s not actually used, and causes a
module cycle.  Remove it.

* gnu/services/xorg.scm: Remove (gnu services desktop) module.

Change-Id: Id16a3bf149b1c924578cfc8c486dd96fa92674a3
2026-01-23 16:57:07 -08:00
Rutherther
7c0cd7e45b Merge branch 'version-1.5.0'
Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
2026-01-22 13:27:13 +01:00
Danny Milosavljevic
d48e1c7196 services: <greetd-terminal-configuration>: Default initial-session-command to (greetd-user-session).
* gnu/services/base.scm (<greetd-terminal-configuration>)[initial-session-command]:
Default to (greetd-user-session).
2026-01-19 23:23:50 +01:00
Rutherther
6d4cb99a15 gnu: %desktop-services: Switch to GDM on 64-bit systems.
* gnu/services/desktop.scm
(desktop-services-for-system): Use gdm on all 64-bit systems.

* gnu/services/xorg.scm (set-xorg-configuration): Adapt to
desktop-services-for-system change.

* gnu/system/examples/desktop.tmpl: Determine the support of Gnome by checking
for supported package.

Fixes: #5388
Change-Id: I0d512a7c31188cea0335e66f00a6d65ae59d09a4
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-19 18:51:12 +01:00
Rutherther
ab22501915 install: Register agetty on primary console on AArch64.
This adds the possibility to parse /proc/consoles to find a primary console.
Then, on AArch64 this is used in the installation image. On AArch64, the boot
usually happens with chosen device tree that contains the serial console.
On x86_64, this does not happen so often, so we keep the installation iso
minimal there.

The primary console is chosen, but there is a fallback to any non-virtual one.
Virtual console (/dev/tty0) is skipped, because that one can point to any
console, like /dev/tty1 and so on. So it's not safe to register agetty on it.

* gnu/build/linux-boot.scm (read-linux-consoles): New variable.
* gnu/services/base.scm (default-serial-console): Use primary console as
fallback.
* gnu/system/install.scm (%installation-services): Add agetty tty for
consoles.

Change-Id: Iae01f7bc85b5ffdef2e52b1d0710889915b0f54a
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14 09:17:33 +01:00
Sören Tempel
32fca2d366 services: radicale: add shepherd configuration action
* gnu/services/mail.scm (radicale-shepherd-service): add configuration
action.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-01-09 15:22:45 +01:00
Sergey Trofimov
a651926f55 services: configuration: Generalize 'list-of-packages?'
* gnu/services/configuration.scm (list-of-packages?): Allow as well
tuples of a package and its output.
* gnu/home/services/sway.scm (list-of-packages): Remove duplicate.

Change-Id: I42622a29ac808c76928e9056dee9330d5e1b3f39
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5470
2026-01-09 15:22:44 +01:00
Danny Milosavljevic
ac92638bce services: Add opensnitch-service.
* gnu/services/opensnitch.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add reference to it.
* doc/guix.texi (Miscellaneous Services, Security): Document it.
* gnu/tests/security.scm (%test-opensnitch): New variable.

Change-Id: I63d1b6636b3aaecf399664ec97383d82ff1391d1
2026-01-08 01:53:57 +01:00
Maxim Cournoyer
47af617b5c services: Add luanti-service-type.
* gnu/services/games.scm (luanti-configuration): New variable.
(%luanti-account): Likewise.
(luanti-activation): New procedure.
(luanti-shepherd-service): Likewise.
(luanti-service-type): New variable.
* gnu/tests/games.scm: New file.

Change-Id: I65a1dcf832fa8add9c9d278d82bab91ca3eef086
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-01-06 22:00:50 +09:00
Ian Eure
7d4db1a37c gnu: services: Fix xorg configuration merging.
A bug in #21 causes the default configuration to be omitted from the xorg
merging process.  This can cause users not using set-xorg-configuration or
service extensions to end up with a broken configuration.

Fixes #5267.

* tests/services/xorg.scm: Add a regression test.
* gnu/services/xorg.scm (handle-xorg-configuration): Include the
xorg-configuration record from config in merges.

Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-01-01 13:26:02 +02:00
Maxim Cournoyer
ea4dd4c45d Revert "services/configuration: Fix case where sub-documentation is nonexistent."
This reverts commit 8b6e9acc26.

Fixes: <https://issues.guix.gnu.org/79578>
2025-12-30 22:42:06 +09:00
Ian Eure
a9462997d7 gnu: Merge xorg configurations when extending.
Configuration for xorg is embedded in the various display-manager
configuration records, and extension support is factored out into the
`handle-xorg-configuration' macro.  However, the extension mechanism replaces
the existing xorg-configuration with the supplied one, making it impossible to
compose configuration from multiple sources.  This patch adds a procedure to
merge two xorg-configuration records, and calls it within
handle-xorg-configuration, allowing the config to be built piecemeal.

* gnu/services/xorg.scm (merge-xorg-configurations): New variable.
(handle-xorg-configuration): Merge xorg configs.

Change-Id: I20e9db911eef5d4efe98fdf382f3084e4defc1ba
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-12-26 13:15:41 +01:00
Luca Matei Pintilie
3d4620ab26 services: greetd: Create runfiles in a tmpfs.
Greetd's initial-session (i.e. auto-login) functionality requires runfiles
to be deleted on shutdown.  Use a tmpfs to ensure said runfiles do not linger.

* gnu/services/base.scm (make-greetd-terminal-configuration-file): Add
“runfile” to configuration.
(%greetd-file-systems): Add a tmpfs for “/run/greetd/runfiles”.

Change-Id: I07319d5d8bdb1e18fb0074b67d5c9cb9fb49b04a
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-12-26 13:15:39 +01:00
Ludovic Courtès
d2c2e7f4d6 services: cuirass-remote-worker: Disable JIT on AArch64.
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service):
Pass #:environment-variables to ‘make-forkexec-constructor’.

Fixes: guix/guix#5052
Change-Id: Ibbf5aae9c6e62983c8e7f2eda310f68aef2edc8b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5053
2025-12-26 00:01:44 +01:00
Rutherther
9e7e40b8bd services: xorg: Return only supported packages in %default-xorg-modules.
The xorg modules are used inside of services that's thunked. So we can
make them depend on the %current-system.

* gnu/services/xorg.scm
(default-xorg-modules): New variable.
(%default-xorg-modules): Return result of (default-xorg-modules).

Change-Id: I10f722e52d598ce3e83ef3f200b3bd953bc08e17
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 23:00:41 +01:00
Ashvith Shetty
4b25873c12 services: Modernize redis service.
* gnu/services/databases.scm
(redis-configuration): Rewrite using `define-configuration'.
(redis-shepherd-service): Honor it.
* doc/guix.texi (Database Services) <redis>: Regenerate
documentation.

Change-Id: I5b99822ca3d8d23fb5133497d00eada0336d0c65
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #2158
2025-12-22 15:42:39 +01:00
Rutherther
d7fd4eab51 services: shared-cache: Require user-file-systems.
Newly user-file-systems should be required by services
that do operations with mounts.

Change-Id: Ib0438bb2e783e1d7131dcea6a8c166e83850de81
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 13:37:12 +01:00
Dariqq
32988df493 services: file-systems: Reverse order of unmounting manual mounts.
* gnu/services/base.scm (file-system-shepherd-services): Reverse order of
mount-points in service 'user-file-systems.

Change-Id: I68df0c22bc6bacdc866b9adf62e7059f20e5842f
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 13:37:11 +01:00
Dariqq
9aa7f05639 services: file-systems: Make user-file-systems depend on file-systems.
Previously 'user-file-systems depended only on 'file-systems without any requirements.
This inverts the logic to have
file-systems <- user-file-systems <- user-processes

to ensure that all user mounts are already unmounted when shepherd managed
file systems get unmounted.

Fixes: guix/guix#4445
Fixes: guix/guix#1703

* gnu/services/base.scm (file-system-shepherd-services): Remove requirement
of 'file-systems on 'user-file-systems.
Add dependency of 'user-file-systems on 'file-systems.
(file-system-service-type): Add 'user-file-systems to user-processes extension.

Change-Id: I9d89f682fb4b4673fa135d17b2b188788b9f8db1
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 13:37:11 +01:00
Rutherther
290435009b services: xfce: Allow empty passwords in screenlocker.
* gnu/services/desktop.scm
(xfce-desktop-configuration): Add allow-empty-passwords? field.
(xfce-pam-services): Respect it.

Change-Id: Idd54b6016b5412aacdfbc134bc57de30394a77ad
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 13:37:09 +01:00
Ludovic Courtès
3e2bd2e30b services: nscd: Cause PID 1 to drop nscd database mappings on shutdown.
Partly fixes guix/guix#4269.

Fixes a bug whereby shepherd (PID 1) could retain memory mappings for
/var/run/nscd/dbXXX, which are created by glibc’s NSS from database file
descriptors sent by nscd.  Those mappings could then prevent
‘root-file-system’ from re-mounting the root file system as read-write.
This change causes PID 1 to drop these mappings.

PID 1 typically calls libc database functions such as ‘getgr’ when dealing
with AF_UNIX endpoints for socket-activated services, to look up the socket’s
owner and group.  This is where the bug would manifest.

The regression may have been introduced by
85ac164c41, which caused nscd to handle the
password and group databases.

* gnu/services/base.scm (nscd-shepherd-service): In ‘stop’ procedure, call
‘getpw’, ‘getgr’, and ‘getaddrinfo’.
* gnu/tests/base.scm (run-root-unmount-test) <"open libc NSS database">: New
test.
(%test-root-unmount): Add #:imported-modules.

Change-Id: I197cc8c82165c631f857415898137412ce9bd439
Reported-by: Rutherther <rutherther@ditigal.xyz>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4828
2025-12-19 00:05:43 +01:00