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>
Newly user-file-systems should be required by services
that do operations with mounts.
Change-Id: Ib0438bb2e783e1d7131dcea6a8c166e83850de81
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
* 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>
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#4445Fixes: 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>
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
Shepherd expects #f to know the service has stopped.
* gnu/services/databases.scm (postgresql-shepherd-service): Return #f
on stop.
Change-Id: Ie5c45efc7eef75c325ddfd0ef197b306c7b60e5b
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Fixes a regression introduced in bab6434f58
whereby following the example from the manual regarding non-volatile images
would no longer work.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): Pass ‘image’ to
‘system-image’ only if it’s an image.
* doc/guix.texi (Virtualization Services): Explicitly say that the ‘image’
field can contain a file name. Remove use of ‘const’ for the ‘image’ field in
persistent image example and adjust text.
Fixes: guix/guix#4130
Reported-by: Maxim Cournoyer <maxim@guixotic.coop>
Change-Id: I1a81ce27fb45978a681310b8a8788ab671b3edf8
Fixes issues when memory is >= 3584.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service):
When type is 'hurd64-qcow2 add -M q35 to qemu arguments.
Change-Id: I58ea603faad545294aad52b71aac82c922fd9b96
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/nfs.scm (autofs-service-type): New variable.
(<autofs-configuration>): New record.
(<autofs-indirect-map>): New record.
(<autofs-map-entry>): New record.
Change-Id: I4ed1862772001470d1214c3061a306440b0d775b
* gnu/packages/patchutils.scm (patchwork):[arguments]: Write version.txt,
tweak some indentation, patch the STATICFILES_DIRS entry.
[propagated-inputs]: Add python-tzdata.
* gnu/services/web.scm (patchwork-settings-module-compiler): Don't set
STATIC_ROOT on debug, as this clashes with STATICFILES_DIRS.
(patchwork-django-admin-gexp): Fix.
(patchwork-shepherd-services): Workaround issue referencing random-token.
* gnu/tests/web.scm (patchwork-initial-database-setup-service): Don't use
primitive-fork, as this doesn't work with newer shepherds.
(run-patchwork-test): Check the setup runs.
Change-Id: I7dfeb816b4f6c9070358d433fb7ca8faa1fbfd2a
The option for syslog logging was removed in 6036f1f305.
* gnu/services/mail.scm (opensmtpd-shepherd-service): When log-file is #f
daemonize and set the pid-file.
Change-Id: I356f4ccacc473def35708c114947788d485d058b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/version-control.scm (git-http-nginx-location-configuration):
Specify a global gitconfig that marks git-root as a safe directory.
Fixes: guix/guix#3649
Change-Id: I503cd05e3247a71a4bd07df49c276e04d3a43a81
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* gnu/services/guix.scm (nar-herder-shepherd-services): Add missing variables.
* gnu/tests/guix.scm (%nar-herder-os): Have the control server listen on all
interfaces.
(run-nar-herder-test): Test connecting to the control server.
Change-Id: I40949e8adaf0c6491ee56c59d611395a639d497b
Also export the control-host and control-port accessors.
* gnu/services/guix.scm (<nar-herder-configuration>): Add
storage-minimum-free-space and extra-options fields.
(nar-herder-shepherd-services): Use these.
Change-Id: Ie03b5c2ffd0daf295ebf51a1998ae01d5f0f4ef6
This is a followup to 95731b4ef1.
* gnu/services/herd.scm (load-services/safe): Remove.
* guix/scripts/system/reconfigure.scm (upgrade-services-program): Use
‘load-services’.
Change-Id: Ie5ab99e69e2d7c1934fddd37794c07e6e07489a3
Passing a rest list to ‘register-services’ is deprecated since version 0.10.0
of the Shepherd.
* gnu/services/herd.scm (load-services): Pass a list to ‘register-services’.
Change-Id: Id6325259aed86d02510d4c741c0cd41c4566d3c8
Fixes <https://issues.guix.gnu.org/76301>.
The ‘dns’ provision collides with that of Knot.
* gnu/services/dns.scm (unbound-shepherd-service): Remove dns from provision.
Change-Id: Ice774a9a338416e865dbc4d26a8f37243f084a35
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/guix.scm (<nar-herder-configuration>): Add control host and
control port fields.
(nar-herder-shepherd-services): Use them.
* doc/guix.texi (Guix Services): Document them.
Change-Id: Ie738fb30302496d2ec530ca3b5c8b0628fdd4c05
* gnu/services/base.scm (guix-activation): Add a line for ‘guix-daemon’
in /etc/subgid.
(guix-shepherd-services): Add /run/privileged/bin to ‘PATH’.
Change-Id: Ic103d86986ce2ace194b0a4296a00278bf0617eb
When running ‘guix-daemon’ unprivileged, supplementary groups such as
“kvm” were dropped by ‘run-with-writable-store’.
* gnu/services/base.scm (run-with-writable-store): Use ‘read-group’ to
determine the list of supplementary groups for ‘user’ and pass that to
‘setgroups’.
Change-Id: I21cc546a91a1a24cc94cafb44fa93e088f8673a7
This ensures problems in the spec are caught before the system is
instantiated.
* gnu/services/cuirass.scm (cuirass-configuration->specification-file):
New procedure.
(cuirass-shepherd-service): Use it instead of ‘scheme-file’.
Change-Id: I90187ed4ed1a51958159741a55b6dc635c97312a
* gnu/services/base.scm (run-with-writable-store): Make it a no-op when
the store is already writable (useful for testing).
Change-Id: If598638e9d3eeac242c265cba77f27e4a15f8d9b
This enhances flexibility by allowing users to specify custom service
dependencies for libvirt, rather than being limited to the default hardcoded
requirements. This is particularly useful for complex deployments or when
integrating with custom service configurations.
Note that default 'dbus-system' requirement may not be strictly necessary for
basic libvirt operation. For instance, libvirt can function without issues in
many cases even when dbus-system is not included in the requirements, allowing
for more minimal deployments.
* gnu/services/virtualization.scm (list-of-symbols?,
serialize-list-of-symbols): New procedures.
(libvirt-configuration): Add 'requirement' field to allow custom service
dependencies.
(libvirt-shepherd-service): Use the configured requirements instead of
hardcoded ones.
* doc/guix.texi (Virtualization Services): Document the new 'requirement'
option.
Change-Id: I05cfbb5227cff9b7d9b55ee37774c96e39c4c526
The libvirt daemon requires 'dmidecode' to provide Host SMBIOS information
to virtual machines. Without it in the PATH, it fails with the error:
"Host SMBIOS information is not available".
* gnu/services/virtualization.scm (libvirt-configuration): Add 'dmidecode'
field to specify the dmidecode package.
(libvirt-service-type): Add dmidecode to system profile to ensure it's
available in PATH.
* doc/guix.texi (Virtualization Services): Document the new 'dmidecode'
option.
Change-Id: I8e5e565e95149c5aeba2dc0c5c757046efa6de2d
* gnu/packages/scanner.scm (sane-backends)[inputs]: Omit hplip.
[arguments]: Remove hplip phases.
* gnu/services/desktop.scm (lift-sane-configuration): Warn user that
hplip needs to be explicitly enabled in sane-configuration.
Change-Id: I05ffc3a2d04c5ee3da2739b68085557ff791814f
When using a tor-transport-plugin, namely a webtunnel with lyrebird, it is
necessary to have access to ssl certs to establish a connection to the bridge
over https.
* gnu/services/networking.scm (tor-shepherd-service): add nss-certs
file-sytem-mapping
Change-Id: Ifb7488d406cc6300eb6ac95e7dc0dfef0ff571db
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>