Commit graph

575 commits

Author SHA1 Message Date
Noé Lopez
848fdc7d09
tests: install: Fix timezone check.
The default timezone is set to Europe/Zaghreb, however the new check
introduced in 0a9eb3f3e2 was checking for the
one in the operating-system definition, which is Europe/Paris.

* gnu/tests/install.scm (gui-test-program): Explicitely set timezone to
Europe/Paris.

Change-Id: I7b5d327f13760632c9fbc0c1223a6a9bbc624f4d
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #4977
2026-01-16 20:08:55 +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
Giacomo Leidi
c425bac93d
Update Giacomo's email address.
The change was automated via:

git grep -l goodoldpaul@autistici.org |
    xargs sed -i 's/goodoldpaul@autistici.org/therewasa@fishinthecalculator.me/g'

* .mailmap: New entry.

Change-Id: I1629388334695d221647afe6a14faf61af5fe0d6
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-12-03 14:38:09 +09:00
Maxim Cournoyer
0a9eb3f3e2
tests: Add test to validate /etc/locatime is a symlink.
Match the modern desktop expectation set by systemd [0] and relied on by some
software (GNOME/glib, icecat, ungoogle-chromium, etc.).

[0]  https://www.man7.org/linux/man-pages/man5/localtime.5.html

* gnu/tests/base.scm
("/etc/localtime is a symlink to the timezone data file"): New test.

Change-Id: I8fb95abb6a3e455dd7019d5d798f7862d16b6263
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-12-01 14:59:30 +09:00
Christopher Baines
5db3da8811
tests: guix: Remove %nar-herder-os from the end of the module.
As this is just for local testing.

* gnu/tests/guix.scm: Remove %nar-herder-os at module end.

Change-Id: I214cabb80f69a23e0e49c865a75b76c9a6e9f840
2025-11-25 11:28:18 +00:00
Efraim Flashner
28d60948a1
tests: debian-install: Use download mirror for uidmap source.
* gnu/tests/foreign.scm (debian-uidmap-deb-file): Download using a
mirror-url.

Change-Id: I6036c553e6caba132c961658cb542d06d05e29b3
2025-11-24 19:09:39 +02:00
Efraim Flashner
acf95352b9
tests: debian-install: Fix debian-13 qcow2 image.
* gnu/tests/foreign.scm (debian-13-qcow2): Adjust source uri to point to
the same image.

Change-Id: I975140f2febcf0781e6a9c67981b3896629de050
2025-11-24 19:09:39 +02:00
Christopher Baines
f7125fb55d
gnu: Fix patchwork service test.
* 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
2025-11-10 10:27:36 +00:00
Mathieu Othacehe
130421225e
gnu: tests: Fix timescaledb test.
The telemtry error message now looks like:

2025-11-08 11:04:23 localhost postgres[222]: [57-83]
2025-11-08 10:04:23.196 GMT [222] CONTEXT: SQL expression "telemetry_string"
2025-11-08 11:04:23 localhost postgres[222]: [57-84] PL/pgSQL function inline_code_block line 16 at RAISE
2025-11-08 11:04:23 localhost postgres[222]: [57-85]
2025-11-08 10:04:23.196 GMT [222] STATEMENT: CREATE EXTENSION timescaledb
2025-11-08 11:04:23 localhost postgres[234]: [8-1]
2025-11-08 10:04:23.267 GMT [234] LOG: job 3 threw an error
2025-11-08 11:04:23 localhost postgres[234]: [9-1]
2025-11-08 10:04:23.268 GMT [234] ERROR: functionality not supported under the current "apache" license. Learn more at https://timescale.com/.
2025-11-08 11:04:23 localhost postgres[234]: [9-2]
2025-11-08 10:04:23.268 GMT [234] HINT: To access all features and the best time-series experience, try out Timescale Cloud.
2025-11-08 11:04:23 localhost postgres[151]: [8-1]
2025-11-08 10:04:23.270 GMT [151] LOG: background worker "Job History Log Retention Policy [3]" (PID 234) exited with exit code 1

* gnu/tests/databases.scm (run-timescaledb-test): The error message is now
part of the syslog and not displayed by psql anymore.

Fixes: guix/guix#3551
Change-Id: I60a0615add53e30b9b26f760f5cacbbdbe14a36c
2025-11-08 11:28:33 +01:00
Mathieu Othacehe
6aded64869
gnu: tests: Fix opensmtpd.
The test has two issues:
- it uses /var/spool/mail instead of /var/mail
- the client often takes more than 30 seconds to connect to the smtpd server,
because the server tries to perform name resolution on 10.0.2.3

* gnu/tests/mail.scm (%qemu-static-networking-no-nameserver): New variable.
(%opensmtpd-os): Use it instead of the dhcpcd-service-type service.
(run-opensmtpd-test): Use /var/mail instead of /var/spool/mail.

Fixes: guix/guix#3978
Change-Id: I429edbf2460f380f8a617ee1fccd145f34a1f3d6
2025-11-08 11:26:14 +01:00
Mathieu Othacehe
cdcfa59864
gnu: tests: Fix the samba test.
* gnu/tests/samba.scm (run-samba-test): De-duplicate the smbclient test and
introduce some retries.

Fixes: guix/guix#3981
Change-Id: Id9a68ddd98b31138564f19b85aca68357ad73351
2025-11-08 11:26:03 +01:00
Mathieu Othacehe
23fce946eb
gnu: tests: Fix fail2ban tests.
As discussed here: https://github.com/fail2ban/fail2ban/issues/1593, the
monitored file has to be present before the fail2ban service starts. Create
this file in a dedicated activation service.

* gnu/tests/security.scm (%auth-log-activation-service): New variable.
(run-fail2ban-basic-test, run-fail2ban-simple-test)
(run-fail2ban-extension-test): Use it.

Fixes: guix/guix#3645
Change-Id: Ic12891cc5438abbd041ceb19e1d22dae51c7c848
2025-11-08 11:25:55 +01:00
Mathieu Othacehe
efb910877f
gnu: tests: Fix getmail.
When Shepherd starts the getmail service, the TESTBOX mailbox needs to be
present, otherwise getmail fails with:

Copyright (C) 1998-2023 Charles Cazabon and others. Licensed under GNU GPL version 2.
SimpleIMAPRetriever:alice@localhost:143:
  mailbox b'TESTBOX' not selectable (TESTBOX) - verify the mailbox exists and you have sufficient permissions
  0 messages (0 bytes) retrieved, 0 skipped from SimpleIMAPRetriever:alice@localhost:143

* gnu/tests/mail.scm (run-getmail-test): Move the TESTBOX creation from here ...
(%getmail-os): ... to the dovecot configuration.

Change-Id: Ic6348565629c69e8b7bccf7c61460ca96850e6bd
2025-11-08 11:24:56 +01:00
Fredrik Salomonsson
09014b57fd
installer: Add Sway as an option in the Desktop environment page.
* gnu/installer/services.scm (%system-services): desktop-environment for sway
and its minimal companion packages.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add
sway and its companion packages to operating-system packages.

Change-Id: I22f4cb67752ce1a15009680a1ba081fae129d45a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-04 17:49:29 +01:00
Rutherther
1f024990dd
installer: Add KDE Plasma desktop environment.
* gnu/installer/services.scm (%system-services): Add KDE Plasma environment.
* gnu/tests/install.scm
(installation-target-desktop-os-for-gui-tests): Add
plasma-desktop-service-type to operating-system services.
(%test-gui-inst)led-desktop-os-encrypted): Extend side for Plasma.

Change-Id: Iaf55bb85f40865ee5b79abef23a98a3e04a1e244
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-03 17:18:39 +01:00
Mathieu Othacehe
5b3fa1658c
gnu: tests: Fix gitile.
* gnu/tests/version-control.scm (%gitile-os): Disable strict owner validation
as /srv/git is root-owned.

Change-Id: I25457d2b333ec355822141f81d861087b719f782
2025-11-02 14:48:38 +01:00
Efraim Flashner
6cfea0e121
tests: samba: Add delay in some tests.
* gnu/tests/samba.scm (run-samba-test)[smbclient connect, smbclient
connect]: Add a delay before checking the connection to the samba
server.

Change-Id: Iffe378756f05b8b1a63e861ed626c943aceb3fc2
2025-10-26 13:02:36 +02:00
Christopher Baines
edb1d29cf5
tests: nar-herder: Test the control port.
* 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
2025-10-25 10:54:05 +01:00
Ludovic Courtès
633ed510fa
tests: guix-daemon: Check that build processes can chown to “kvm”.
* gnu/tests/base.scm (guix-daemon-test-cases)[chown-snippet]: New
variable.
["kvm GID mapped"]: New test.

Change-Id: I0ce7a9250539766628eb2459d60abce7c05a36ee
2025-10-21 16:52:30 +02:00
Ludovic Courtès
ab01e5adb2
tests: debian-install: Install the ‘uidmap’ package.
* gnu/tests/foreign.scm (run-foreign-install-test): Add #:deb-files.
[test]("install extra .deb packages"): New test.
(debian-uidmap-deb-file): New variable.
(%test-debian-install): Pass it via #:deb-files.

Change-Id: I489056131d6ff20763457c29610af71866a396b2
2025-10-21 16:52:02 +02:00
Rodion Goritskov
21ce6b392a
tests: Update Archlinux image for foreign install test.
* guix/tests/foreign.scm (archlinux-qcow2): update URL and checksum.
  (%test-archlinux-install): add comment on possible test failure.

Change-Id: Ib1d6040f416a0a1117f956bc15111a0240dfb86b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-10-20 10:52:25 +03:00
Rodion Goritskov
1d1778da39
tests: Update Debian image for foreign install test to Debian 13.
* guix/tests/foreign.scm (debian-12-qcow2): rename to debian-13-qcow2.
  (debian-13-qcow2): new URL and checksum.
  (%test-debian-install): use new variable.
  (%test-debian-install): add comment on possible test failures.

Change-Id: I0eb241b5c88f73a822edb20815fe09f8c76a2b6b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-10-20 10:52:22 +03:00
Efraim Flashner
c787d90fff
tests: install: Expand the default partition size to 2GiB.
* gnu/tests/install.scm (%simple-installation-script,
%extlinux-gpt-installation-script,
%simple-installation-script-for-/dev/vda,
%separate-store-installation-script, %raid-root-installation-script,
%lvm-separate-home-installation-script,
%encrypted-home-installation-script,
%encrypted-root-not-boot-installation-script,
%btrfs-raid-root-installation-script): Enlarge the install partition
to 2GiB.
(%test-raid-root-os, %test-lvm-separate-home-os,
%test-encrypted-root-not-boot-os, %test-btrfs-raid-root-os,
%test-gui-uefi-installed-os): Adjust accordingly.

Change-Id: Idaf8a9c2a3ccd268b838decf18793c24716154d4
2025-10-17 17:23:20 +03:00
45mg
73cbb94d1d
mapped-devices/luks: Support extra options.
Allow passing extra options to the 'cryptsetup open' command.

* gnu/system/mapped-devices.scm (luks-device-mapping-with-options):
[#:extra-options]: New argument.
(open-luks-device): Use it.
(check-luks-device): Validate it.
* doc/guix.texi (Mapped Devices): Document it.
* gnu/tests/install.scm (%test-encrypted-root-extra-options-os): New
test for it, as well as the previously untested #:allow-discards?
option.
(%encrypted-root-extra-options-os): New os declaration for the test.

Change-Id: I265a431efb0c81ed7cfc984344c6b8a4cc2f1624
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-06 10:21:16 +02:00
Anderson Torres
6853465ca0
gnu: Merge (gnu packages openbox) with (gnu packages wm).
This file contains two package definitions that should be on wm.scm.
They are not overly complex, not tightly couple and small, so there is
few to no reason keeping them in a dedicated file.

* gnu/packages/openbox.scm (obconf, openbox): Move from here ...
* gnu/packages/wm.scm: ... to here.

* gnu/packages/openbox.scm: Delete file.
* gnu/local.mk: Remove reference to openbox.scm.

* gnu/packages/kde-frameworks.scm: Fixup reference to (gnu packages openbox) module.
* gnu/packages/lxde.scm: Remove reference to (gnu packages openbox) module.
* gnu/packages/lxqt.scm: Fixup reference to (gnu packages openbox) module.
* gnu/tests/install.scm: Remove reference to (gnu packages openbox) module.
* po/packages/POTFILES.in: Remove reference to openbox.scm.

Change-Id: I0b887debb97e8fcc7880c9f05d29981226d06077
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-28 22:24:06 +01:00
Rodion Goritskov
054aae7bb2
services: Add miniflux-service-type.
* doc/guix.texi: Document Miniflux service and configuration.
* gnu/services/web.scm: New service.
* gnu/services/web.scm: Define shepherd service and account roles.
* gnu/tests/web.scm: (%miniflux-create-admin-credentials,
miniflux-base-system, %test-miniflux-admin-string, %test-miniflux-admin-file,
%test-miniflux-socket): Add system tests for Miniflux service.

Change-Id: I4a336e677ec8b46aed632f0ded9cc11c2d38975f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:39:40 +02:00
Maxim Cournoyer
10482f731e
Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3
Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d
Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Ian Eure
96c30d2bf6
gnu: Remove Tailon services and documentation.
The tailon package was removed in 63023deaf9,
but the associated service and documentation weren’t, leading to `guix pull`
breaking.

Fixes guix/guix#2689.

* doc/guix.texi: Remove Tailon documentation.
* gnu/services/web.scm (tailon-service-type): Delete variable.
(tailon-configuration-file): Delete variable.
(tailon-configuration-file?): Delete variable.
(tailon-configuration-file-files): Delete variable.
(tailon-configuration-file-bind): Delete variable.
(tailon-configuration-file-relative-root): Delete variable.
(tailon-configuration-file-allow-transfers?): Delete variable.
(tailon-configuration-file-follow-names?): Delete variable.
(tailon-configuration-file-tail-lines): Delete variable.
(tailon-configuration-file-allowed-commands): Delete variable.
(tailon-configuration-file-debug?): Delete variable.
(tailon-configuration-file-http-auth): Delete variable.
(tailon-configuration-file-users): Delete variable
(tailon-configuration): Delete variable.
(tailon-configuration?): Delete variable.
(tailon-configuration-config-file): Delete variable.
(tailon-configuration-package): Delete variable.
* gnu/tests/web.scm (%test-tailon): Delete variable.

Change-Id: I3b507df8233b0440baa6a2bce4604b5813cb3bb0
2025-09-14 11:13:17 -07:00
Yelninei
fecaf550cf
services: hurd-vm: Support different hurd types.
* gnu/services/virtualization.scm (sanitize-hurd-vm-configuration-type): New procedure.
(hurd-vm-confiuration): Add type field.
(hurd-vm-disk-image): Use it.
* doc/guix.texi (hurd-vm-configuration): Document it.

* gnu/tests/virtualization.scm (%childhurd64-os): New variable.
(run-childhurd-test): Add the os a parameter.
(%test-childhurd): Adjust accordingly.
(%test-childhurd64): New system test.

Change-Id: Ie1c55a9414657ced4bf8b4324527037f1a1f78f4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-30 23:52:09 +02:00
Giacomo Leidi
1f8ee9e023
Revert "tests: Use lower-oci-image-state in container tests."
This reverts commit cc07ecd7cc, which breaks
'guix pull', for to-be-investigated reasons.

Fixes: #2252
Change-Id: Idd02dd2e0cd93034e636030845996a9ab3748839
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 17:34:29 +09:00
Giacomo Leidi
cc07ecd7cc
tests: Use lower-oci-image-state in container tests.
This patch replaces boilerplate in container related tests with
oci-image plumbing from (gnu services containers).

* gnu/tests/containers.scm (%oci-tarball): New variable;
(run-rootless-podman-test): use %oci-tarball;
(build-tarball&run-rootless-podman-test): drop procedure.
* gnu/tests/docker.scm (%docker-tarball): New variable;
(build-tarball&run-docker-test): use %docker-tarball;
(%docker-system-tarball): New variable;
(build-tarball&run-docker-system-test): new procedure.

Change-Id: Iad6f0704aee188d89464c83722dea0bb7adb084a
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Giacomo Leidi
60f4d72590
services: Add oci-service-type.
This patch implements a generalization of the
oci-container-service-type, which consequently is made deprecated.  The
oci-service-type, in addition to all the features from the
oci-container-service-type, can now provision OCI networks and volumes.
It only handles OCI objects creation, the user is supposed to handle
state once the objects are provsioned.

It currently supports two different OCI runtimes: Docker and rootless
Podman.  Both runtimes are tested to make sure provisioned containers
can connect to each other through provisioned networks and can
read/write data with provisioned volumes.

At last the Scheme API is thought to facilitate the implementation of a
Guix Home service in the future.

* gnu/build/oci-containers.scm: New file containg OCI runtime business
logic used in OCI backed Shepherd services.
oci-read-lines
(oci-system*,oci-object-exists?,oci-object-service-available?
oci-image-load,oci-log-verbose,oci-container-execlp,oci-object-create):
New procedures.
* gnu/local.mk: Add it.
* gnu/services/containers.scm (list-of-oci-containers?,
list-of-oci-networks?,list-of-oci-volumes?,%oci-supported-runtimes,
oci-runtime?,oci-runtime-system-environment,oci-runtime-system-extra-arguments,
oci-runtime-system-requirement,oci-runtime-cli,oci-runtime-system-cli,
oci-runtime-home-cli,oci-runtime-name,oci-runtime-group,
oci-container-shepherd-name,oci-networks-shepherd-name,
oci-networks-home-shepherd-name,oci-volumes-shepherd-name,
oci-volumes-home-shepherd-name,oci-container-configuration->options,
oci-network-configuration->options,oci-volume-configuration->options,
oci-container-shepherd-service,oci-objects-merge-lst,oci-extension-merge,
oci-service-accounts,oci-service-profile,oci-service-subids,
oci-configuration->shepherd-services,oci-configuration-extend): New
procedures.
(image-reference): Implement unambiguous naming convention, that paired
with the new implementation for listing caches images with docker ls or
podman ls, allows for more efficient image caching.
(oci-container-configuration)[user,group]: Change default-type to
maybe-string, since by default containers will run under the user and
group declared in oci-configuration records. When unset the
oci-service-type will derive their value from the OCI runtime state.
[runtime,host-environment,environment,shepherd-actions,ports,extra-arguments]:
define a predicate and use it as a type in the configuration.  This
way errors are reported with source location information.
(lower-manifest): Defer to caller the logic of setting up an image tag.
(lower-oci-image): Rename to load-oci-image-state.
(oci-runtime-state): Intermediate representation of the OCI runtime
details. It is supposed to be an internal API.
(oci-state): Intermediate representation of the OCI provisioning state,
such as containers and networks. It is supposed to be an internal API.
(oci-container-invocation): Intermediate representation of the OCI
runtime run command to start a container. It is supposed to be an
internal API.
(%oci-image-loader): Rename to oci-image-loader and use
oci-runtime-state and (gnu build oci-containers).
(oci-container-shepherd-service): Use oci-state and oci-runtime-state,
add command-line action.
(oci-network-configuration,oci-volume-configuration,oci-configuration,
oci-extension): New record types.
(oci-service-type): New service-type.
* doc/guix.texi: Document it.
* gnu/tests/containers.scm: Test it.
* gnu/services/docker.scm: Deprecate the oci-container-service-type.

Change-Id: I656b3db85832e42d53072fcbfb91d1226f39ef38
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Giacomo Leidi
d6200cefcc
tests: oci-container: Set explicit timeouts.
* gnu/tests/docker.scm: Simplify %test-oci-container test case and add
explicit timeouts to tests outcomes.

Change-Id: I75868479dcce031f3edc98064b1ebcf975f598f5
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Evgeny Pisemsky
45658a6730
services: mosquitto: Add test suite.
* gnu/tests/messaging.scm (%test-mosquitto): New variable.

Change-Id: Ia84291576b9417ce678df3e0ed18caa6ce27b759
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-08-03 11:15:45 +02:00
Gabriel Wicki
39405f7981
gnu: tests: Replace deprecated dhcp client service.
* gnu/tests/audio.scm, gnu/tests/avahi.scm, gnu/tests/ci.scm,
gnu/tests/containers.scm, gnu/tests/cups.scm, gnu/tests/databases.scm,
gnu/tests/dict.scm, gnu/tests/dns.scm, gnu/tests/docker.scm,
gnu/tests/file-sharing.scm, gnu/tests/guix.scm, gnu/tests/install.scm,
gnu/tests/ldap.scm, gnu/tests/lightdm.scm, gnu/tests/mail.scm,
gnu/tests/messaging.scm, gnu/tests/monitoring.scm, gnu/tests/networking.scm,
gnu/tests/nfs.scm, gnu/tests/package-management.scm, gnu/tests/rsync.scm,
gnu/tests/samba.scm, gnu/tests/ssh.scm, gnu/tests/telephony.scm,
gnu/tests/upnp.scm, gnu/tests/version-control.scm,
gnu/tests/virtualization.scm, gnu/tests/vnstat.scm,
gnu/tests/web.scm: (services): Replace dhcp-client-service-type with its
replacement dhcpcd-service-type.

Change-Id: I01d7f9a8c01736d8c8da591aaf4749bbfa4dcdad
2025-07-24 18:46:34 +02:00
wrobell
c65da197cf
services: Add rabbitmq service.
* gnu/services/high-availability.scm (<rabbitmq-configuration>): New record.
  (rabbitmq-shepherd-service): New procedure.
  (rabbitmq-service-type): New variable.
* gnu/tests/high-availability.scm (run-rabbitmq-test): New procedure.
  (%rabbitmq-os, %tests-rabbitmq): New variables.
* doc/gnu.texi (High Availability Services): Document it.

Change-Id: I53e9f2881b6340e1ed314785e4c5529b81381a3b
Co-authored-by: Christopher Baines <mail@cbaines.net>
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-07-19 01:47:50 +01:00
Ludovic Courtès
14c8728f0d
mapped-devices: luks: Adjust to support extra arguments.
Fixes <https://issues.guix.gnu.org/70826>.

When using ‘luks-device-mapping-with-options’, procedures such as
‘operating-system-boot-mapped-devices’ would fail to identify LUKS
mapped devices because they would check whether the mapped device type
is ‘eq?’ to ‘luks-device-mapping’.

This addresses that by ensuring mapped devices are always of the
‘luks-device-mapping’ type, even when different options are used.

* gnu/system/mapped-devices.scm (close-luks-device): Add #:rest.
(luks-device-mapping-with-options): Deprecate.
* gnu/tests/install.scm (%encrypted-home-os-key-file): Update
accordingly.
* doc/guix.texi (Mapped Devices): Document use of the ‘arguments’ field
of ‘luks-device-mapping’.  Remove ‘luks-device-mapping-with-options’
documentation.
(Bootloader Configuration): Update example with key file in extra
initrd.

Change-Id: I5442908cb8ef4e3891dbb053cccf5e42b895486f
Reported-by: Tadhg McDonald-Jensen <tadhgmister@gmail.com>
2025-07-18 00:57:31 +02:00
Ludovic Courtès
951e39718a
tests: foreign: Add ‘archlinux-install’ test.
* gnu/tests/foreign.scm (archlinux-qcow2, %test-archlinux-install): New
variables.

Co-authored-by: Ivan Popovych <ivan@ipvych.com>
Change-Id: I2fce962a2eafa58fafaf2bdff25fc23df28fd687
2025-07-18 00:43:51 +02:00
Ludovic Courtès
bf79804508
tests: foreign: Parameterize root partition device.
* gnu/tests/foreign.scm (run-foreign-install-test): Add #:device
parameter and honor it.

Change-Id: I68bddaa25e9ba4131fc10366efed6772a3586a31
2025-07-18 00:43:50 +02:00
Ludovic Courtès
9596822a6c
tests: foreign: Forcefully delete /bin/{wget,gpg}.
* gnu/tests/foreign.scm (run-foreign-install-test)[build]: Attempt to
delete /bin/{wget,gpg} before recreating them.

Change-Id: I5260cae7f706ce9a492a86b1859591c8446e04a3
2025-07-18 00:43:50 +02:00
Ludovic Courtès
08c23d2c13
tests: foreign: Preserve distro image size.
* gnu/tests/foreign.scm (qcow-image-with-marionette): Remove the “10G”
argument to ‘qemu-img create’ since it could lead to corrupt
images—e.g., with the Arch Linux image.

Change-Id: I92d7551a16f325376c98d32e2cd6a01f8ed05e51
2025-07-18 00:43:50 +02:00
Ludovic Courtès
224361d3a3
tests: foreign: Catch failure to mount distro image.
* gnu/tests/foreign.scm (qcow-image-with-marionette)[build]: Call
‘error’ when ‘mount’ exits with a non-zero code.

Change-Id: I7c608e0aa7dff1447c9df778951d7a5256e47255
2025-07-18 00:43:50 +02:00
Mathieu Othacehe
7c820cd888
tests: Fix the gui installation tests.
This is a follow-up of: 4c017ccfe5. The
run-basic-test procedure is used for the gui installation tests, but the
etc-profile-d-service-type and etc-bashrc-d-service-type services that are now
needed are only defined in the test-basic-os procedure.

Build upon the introduction of the extra-tests argument to define the
etc-profile-d-service-type and etc-bashrc-d-service-type specific tests
directly in the test-basic-os procedure.

* gnu/tests/base.scm (run-basic-test): Move the etc-profile-d-service-type and
etc-bashrc-d-service-type dedicated tests to ...
(test-basic-os): ... that procedure, where the matching services are defined.

Change-Id: I050f5ab87e19889bc90cc1a375a3cc28ea9a43ab
2025-07-01 11:50:16 +02:00
Mathieu Othacehe
11b5443e48
tests: Support basic tests extension with an extra-tests argument.
* gnu/tests/base.scm (run-basic-test)[extra-tests]: New argument.

Change-Id: Ia3595638309738d3361c583c93a66e0a872adabe
2025-07-01 11:50:16 +02:00
Mathieu Othacehe
f3a8db842d
tests: Really test the etc-bashrc-d-service-type service.
Follow-up of: 4c017ccfe5.

The --init-file script will only be run in the context of an interactive
shell, which is not the case here. Use the `-i` argument instead to force an
interactive shell. That way, the test_bashrc_d.sh is now really executed.

* gnu/tests/base.scm (run-basic-test): Fix the etc-bashrc-d-service-type test.

Change-Id: I3d749f65f51ff103c76f4e3d60746ae963660329
2025-07-01 11:50:15 +02:00
Efraim Flashner
214aa26e5c
gnu: installer: Remove enlightenment desktop option.
* gnu/installer/services.scm (%system-services): Remove
enlightenment-desktop-service-type.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests):
Remove enlightenment-desktop-service-type.
* etc/manifests/cross-compile.scm (%system-packages): Remove
enlightenment.
* etc/manifests/release.scm (%system-packages): Remove enlightenment.

Change-Id: I79cd8fc13ea0fda5eef72aee783b26edc77dcb5e
2025-06-30 11:41:56 +03:00
Maxim Cournoyer
cfa2de2a77
services: Modernize and test nftables service.
* doc/guix.texi (Networking Services) <nftables>: Update doc.
* gnu/services/networking.scm (list-of-debug-levels?):
(debug-level?, maybe-list-of-debug-levels?):
(nftables-configuration): Rewrite using `define-configuration'.
[debug-levels]: New field.
(nftables-shepherd-service): Honor it.
* gnu/tests/networking.scm (%inetd-echo-port): Extract to top level.
(run-iptables-test): Adjust accordingly.
(make-nftables-os): New procedure.
(%default-nftables-ruleset-for-tests): New variable.
(%nftables-os): Likewise.
(%test-nftables): New test.

Change-Id: I2889603342ff6d2be6261c3de6e4fddd9a9bbe2d
2025-05-26 13:43:28 +09:00
Maxim Cournoyer
c743d646ee
system: Factorize bashrc default configuration.
This factorizes out the remaining bashrc bits from /etc/skel/.bashrc to a the
template used for both /etc/bashrc on Guix System and ~/.bashrc for
home-bash-service-type.

Rationale: The use of /etc/skel introduce state: the file is only copied
originally when the user account is created, and never (automatically)
refreshed again.

* gnu/system.scm (operating-system-etc-service):
<profile>: Guard against souring /etc/bashrc in non-interactive, SSH case.
<bashrc>: Use %default-bashrc, having migrated the remaining definitions to...
* gnu/system/shadow.scm (%default-bashrc): ... here.  Factorize aliases to...
* gnu/services.scm (%default-bash-aliases): ... here.
(%default-bashrc-d-aliases): New variable.
(%default-etc-bashrc-d-files): Include it in the default configuration.
* gnu/services/base.scm (%base-services): Register etc-bashrc-d-service-type.
* gnu/home/services/shells.scm (add-bash-configuration): Do not set PS1, now
part of %default-bashrc.
(home-bash-configuration) [guix-defaults?]: Update doc.
[aliases]: Set %default-bash-aliases as the default value.  Update doc.
* doc/guix.texi (Shells Home Services): Update documentation.
(Service Reference): Update example.

Change-Id: I340c614983a78fd20a9c4a9705e7fc542ae9b513
2025-05-26 13:43:03 +09:00