Commit graph

549 commits

Author SHA1 Message Date
Ludovic Courtès
7e4627f9c7
tests: Move mcron test to its own file.
This mirrors the (gnu services mcron) module.

* gnu/tests/base.scm (%mcron-os, run-mcron-test, %test-mcron): Move to…
* gnu/tests/mcron.scm: … here.  New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Change-Id: Id2830d08d8e797e008c5fec7964fb5f6a5ea2fad
2025-03-10 15:41:33 +01:00
Ludovic Courtès
d0510dcd82
gnu: Adjust tests for ‘shepherd-system-log-service-type’.
This is a followup to 8492a3c896.

* gnu/services/virtualization.scm (%minimal-vm-syslog-config): Remove.
(%system-log-message-destination): New variable.
(%virtual-build-machine-operating-system): Use it, and modify
‘shepherd-system-log-service-type’ instead of ‘syslog-service-type’.
* gnu/tests/base.scm (%avahi-os): Likewise.
* gnu/tests/install.scm (%syslog-conf): Remove.
(operating-system-with-console-syslog): Modify
‘shepherd-system-log-service-type’ instead of ‘syslog-service-type’.
* gnu/tests/nfs.scm (%nfs-os, run-nfs-full-test): Likewise.
* gnu/tests/reconfigure.scm (run-kexec-test): Likewise.

Change-Id: I142d34ad27594a538f5b75daf087e48c690171b8
2025-03-10 00:38:05 +01:00
Sören Tempel
5ead9fa56c
services: networking: Add dhcpcd service.
This is intended as an alternative to dhcp-client-service-type as
isc-dhcp has reached its end-of-life in 2022 (three years ago!),
see #68619 for more details.  Long-term, this services is therefore
intended to replace dhcp-client-service-type.

* gnu/services/networking.scm (dhcpcd-service-type): New service.
(dhcpcd-shepherd-service): New procedure.
(dhcpcd-account-service): New variable.
(dhcpcd-config-file): New procedure.
(dhcpcd-configuration): New record type.
(dhcpcd-serialize-list-of-strings, dhcpcd-serialize-boolean)
(dhcpcd-serialize-string): New procedures.
(serialize-field-name): New procedure.
* gnu/tests/networking.scm (run-dhcpcd-test): New procedure.
(%dhcpcd-os, %test-dhcpcd): New variables.
* doc/guix.texi (Networking Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-03-08 16:09:41 +01:00
Ludovic Courtès
f57a660fc6
tests: Test installation on Debian.
* gnu/tests/foreign.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Change-Id: I1f24d83bdc298acbef15db2e19775cc1d3fbd56c
2025-03-05 20:34:04 +01:00
Andy Tai
38011da03d
installer: Include icewm as a desktop environment.
* gnu/installer/services.scm (%system-services): Include icewm as a desktop
environment.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add
icewm to the list of packages.
* etc/manifests/release.scm: (%system-packages): Add icewm.

Change-Id: I881c1dd4289281e51c81d83fac785ef064e6ff6a
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-03-01 22:22:34 +00:00
Alexey Abramov via Guix-patches via
c9d9eab868
tests: dovecot: Add sieve.
* gnu/tests/mail.scm (%dovecot-os): Add dovecot-pigeonhole and simple
imapsieve configuration.
* gnu/tests/mail.scm (run-dovecot-test): Define simple sieve
script. Add SELECT TESTBOX step to let dovecot properly do mailbox
synchronization.

Change-Id: I2f21c5be66b51143ddec72eee24555ea2c40d845
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-02-25 10:57:51 +00:00
Maxim Cournoyer
bcb5724e59
tests: web: Add nginx+anonip test.
This test reproduces the problem reported in bug #59181 ("[berlin] web
services fail to start on reboot due to anonip").

* gnu/tests/web.scm (run-webserver-test) <extra-args>: New keyword argument.
(%nginx+anonip-os, nginx-anonip-tests, %test-nginx+anonip): New variables.

Change-Id: I7bbc8fb9f2ab33ce89bf1c0945d7ddbddf26a7ea
2025-02-13 00:07:21 +09:00
Maxim Cournoyer
a595a52b7b
tests: Add anonip system test.
* gnu/tests/web.scm (%test-anonip): New test.
(%anonip-os): New variables.
(run-anonip-test): New procedure.

Change-Id: Ieed210a784dbdeee8a498e74b6c0e31cb72cd9b8
2025-02-13 00:07:21 +09:00
Maxim Cournoyer
df568fc411
tests: web: Have the retry-on-error throw on exhausted attempts.
Previously, it'd simply return the error arguments, which would not always
fail a 'test-assert' test, for example.

* gnu/tests/web.scm (retry-on-error): Re-throw the error when the attempts
have been exhausted.

Change-Id: Ic1468d8ba23f0f78377e90d19bccb2878dc56f0e
2025-02-13 00:07:21 +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
muradm
bc6769f121
tests: minimal-desktop: Adjust to greetd 0.10.3.
This is a followup to 55cead2c49.

* gnu/tests/desktop.scm (run-minimal-desktop-test): Do not check for
‘GREETD_SOCK’.

Change-Id: I2eb5af947ee1753d6237c95feb3cea7ed98f90ad
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-20 00:25:47 +01:00
Giacomo Leidi
24a12aeb91
services: rootless-podman: Enable I/O delegation.
Based on
https://rootlesscontaine.rs/getting-started/common/cgroup2/#enabling-cpu-cpuset-and-io-delegation
, this patch enables I/O delegation for cgroups v2 enabled users.

* gnu/services/containers.scm (cgroups-limits-entrypoint): Enable I/O
controller delegation.
* gnu/tests/containers.scm: Test it.

Change-Id: I7caba33695f11830bea477c4ab3afb89cfaa2fa5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-11 23:36:58 +01:00
Giacomo Leidi
b7746ad83f
services: tests: Add delay for rootless Podman system test.
* gnu/tests/containers.scm (run-rootless-podman-test): Add 60 seconds
long delay before tests are actually run.

Change-Id: Ifcf70f7258f9e0886bf829884d7daedc9803352b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-11 23:36:58 +01:00
Sören Tempel
8db6cfe022
services: dns: Add unbound service.
This allows using Unbound as a local DNSSEC-enabled resolver. This
commit also allows configuration of the Unbound DNS resolver via a
Scheme API. The API currently provides very common options and
includes an escape hatch to enable less common configurations.

* gnu/service/dns.scm (unbound-serialize-field): New procedure.
(unbound-serialize-alist, unbound-serialize-section)
(unbound-serialize-string, unbound-serialize-boolean)
(unbound-serialize-list-of-strings): New procedures.
(unbound-zone): New record type.
(unbound-serialize-unbound-zone)
(unbound-serialize-list-of-unbound-zone): New procedures.
(unbound-remote): New record type.
(unbound-serialize-unbound-remote): New procedure.
(unbound-server): New record type.
(unbound-serialize-unbound-server): New procedure.
(unbound-configuration): New record type.
(unbound-config-file, unbound-shepherd-service): New procedures.
(unbound-account-service): New variable.
(unbound-service-type): New services.
* gnu/tests/dns.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (DNS Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I4c9646c9e17d4882e596d33ff8f738e1877fa1ae
2025-01-11 23:36:58 +01:00
Ludovic Courtès
431ab10344
services: static-networking: Fail when devices don’t show up.
Fixes <https://issues.guix.gnu.org/71173>.

* gnu/services/base.scm (network-set-up/linux): Define
‘max-set-up-duration’ and use it.
* gnu/tests/networking.scm (%static-networking-with-nonexistent-device):
New variable.
(run-static-networking-failure-test): New procedure.
(%test-static-networking-failure): New variable.

Change-Id: Idba9b36750aa8c6368c8f6d1bc1358066f7432e4
2025-01-08 22:54:37 +01:00
Leo Famulari
1dcd0ded86
gnu: Add linux-libre-6.12.
* gnu/packages/linux.scm (linux-libre-6.12-version,
linux-libre-6.12-gnu-revision, deblob-scripts-6.12,
linux-libre-6.12-pristine-source, linux-libre-6.12-source,
linux-libre-headers-6.12, linux-libre-6.12): New variables.
(linux-libre-headers-latest): Use linux-libre-headers-6.12.
(linux-libre-lts-version, linux-libre-lts-gnu-revision,
linux-libre-lts-pristine-source, linux-libre-lts-source, linux-libre-lts): Use
linux-libre 6.12.
* gnu/tests/base.scm (%test-linux-libre-6.12): New test.
* gnu/packages/aux-files/linux-libre/6.12-arm.conf,
gnu/packages/aux-files/linux-libre/6.12-arm64.conf,
gnu/packages/aux-files/linux-libre/6.12-i686.conf,
gnu/packages/aux-files/linux-libre/6.12-x86_64.conf,
gnu/packages/aux-files/linux-libre/6.12-riscv.conf: New files.
* Makefile.am (AUX_FILES): Add them.

Change-Id: I430d9dd29cda4bd4b66ad6eddc004935f93bb111
2025-01-07 18:13:45 -05:00
Leo Famulari
92bfa12254
tests: Add tests for all the longterm-support kernels.
* gnu/tests/base.scm (%test-linux-libre-6.6, %test-linux-libre-6.1): New tests.

Change-Id: Ica31ae263348c38ac21efeb65d9a245e1a877268
2025-01-07 18:13:45 -05:00
Leo Famulari
7b40b9d2d2
gnu: Remove linux-libre 4.19.
This kernel series is no longer supported upstream.

* gnu/packages/linux.scm (linux-libre-4.19-version,
linux-libre-4.19-gnu-revision, deblob-scripts-4.19,
linux-libre-4.19-pristine-source, linux-libre-4.19-source,
linux-libre-headers-4.19, linux-libre-4.19, linux-libre-arm-generic-4.19,
linux-libre-arm-omap2plus-4.19): Remove variables.
* gnu/tests/base.scm (%test-linux-libre-4.19): Remove variable.
* gnu/packages/aux-files/linux-libre/4.19-arm.conf,
gnu/packages/aux-files/linux-libre/4.19-arm64.conf,
gnu/packages/aux-files/linux-libre/4.19-i686.conf,
gnu/packages/aux-files/linux-libre/4.19-x86_64.conf: Delete files.
* Makefile.am (AUX_FILES): Remove them.

Change-Id: If79ccbb948975c544b27757104d360539970377c
2025-01-04 12:19:36 -05:00
Ludovic Courtès
1305f78d05
reconfigure: Support loading the system for kexec reboot.
This allows rebooting straight into the new system with ‘reboot -k’.

* guix/scripts/system/reconfigure.scm (kexec-loading-program)
(load-system-for-kexec): New procedures.
* gnu/tests/reconfigure.scm (run-kexec-test): New procedure.
(%test-upgrade-kexec): New variable.
* guix/scripts/system.scm (perform-action): Add #:load-for-kexec?.
Call ‘load-system-for-kexec’.
(show-help, %options): Add ‘--no-kexec’.
(%default-options): Add ‘load-for-kexec?’.
(process-action): Honor it and pass it to ‘perform-action’.
* gnu/machine/ssh.scm (deploy-managed-host): Add call to
‘load-system-for-kexec’.
* doc/guix.texi (Invoking guix system): Document it.

Change-Id: I86d11f1c348e4359bc9e73c86e5aebff60fe875c
2024-12-28 22:47:34 +01:00
Janneke Nieuwenhuizen
a316319668
gnu: Add tests/shadow.scm
This is a follow-up to commit
    a1ecd7f56c
    system: Add /etc/subuid and /etc/subgid support.

This file was already registered in gnu/local.mk.

* gnu/tests/shadow.scm: New file.

Change-Id: I1785206d56357f8262bd4277ef48f29183c47adc
2024-12-18 21:31:43 +01:00
Giacomo Leidi
2767b4ef03
services: Add rootless-podman-service-type.
* gnu/services/containers.scm: New file;
(rootless-podman-configuration): new variable;
(rootless-podman-service-subids): new variable;
(rootless-podman-service-accounts): new variable;
(rootless-podman-service-profile): new variable;
(rootless-podman-shepherd-services): new variable;
(rootless-podman-service-etc): new variable;
(rootless-podman-service-type): new variable.
* gnu/local.mk: Test it.
* gnu/local.mk: Add them.
* doc/guix.texi (Miscellaneous Services): Document it.

Change-Id: I041496474c1027da353bd6852f2554a065914d7a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:41 +01:00
Ludovic Courtès
e7cd328714
tests: Adjust for new return value of ‘start-service’.
In Shepherd 1.0, the “running value” of processes is no longer a plain
integer; instead, it is a (process …) sexp.  This commit adjusts tests
to this change in a way that works both for 1.0 and for previous
versions.

* gnu/tests/databases.scm (run-memcached-test)
(run-mysql-test): Don’t expect PID to be a number.
* gnu/tests/docker.scm (run-docker-test)
(run-docker-system-test, run-oci-container-test): Likewise.
* gnu/tests/guix.scm (run-guix-build-coordinator-test)
(run-guix-data-service-test, run-nar-herder-test)
(run-bffe-test): Likewise.
* gnu/tests/ldap.scm (run-ldap-test): Likewise.
* gnu/tests/monitoring.scm (run-prometheus-node-exporter-server-test):
Likewise.
* gnu/tests/virtualization.scm (run-libvirt-test)
(run-qemu-guest-agent-test, run-childhurd-test): Likewise.
* gnu/tests/web.scm (run-webserver-test, run-php-fpm-test)
(run-hpcguix-web-server-test, run-patchwork-test)
(run-agate-test): Likewise
* gnu/tests/ssh.scm (run-ssh-test): Accept a number, an ‘inetd-service’
sexp, or a ‘process’ sexp.

Change-Id: I8c7a37a981f0788780fbc33752a38e7f9a026437
2024-12-09 23:15:44 +01:00
Ludovic Courtès
4978e36866
tests: sddm: Update expected message on login screen.
* gnu/tests/sddm.scm (run-sddm-test)["login screen up"]: Change expected
message to match current SDDM version.

Change-Id: Ib59478685b87b8080e27d2aee367c709cbcd0906
2024-11-25 11:22:12 +01:00
Janneke Nieuwenhuizen
687a2ccabc
installer: Add "Kernel" page to select the Hurd.
This adds a "Kernel" page to the installer with the option to (cross-) install
the Hurd, if applicable (only available on x86 machines for now).

* gnu/installer/newt.scm (kernel-page): New procedure.
(newt-installer)[kernel-page]: New field.
* gnu/installer/kernel.scm,
gnu/installer/newt/kernel.scm: New files.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* gnu/installer.scm (installer-steps): Use them to select kernel if
applicable.
* gnu/installer/newt/partition.scm (run-label-page): Default to "msdos" when
instaling the Hurd.
(run-fs-type-page): Add ext2 for the hurd.
(run-partitioning-page-partition): Remove `entire-encrypted' option when
installing the Hurd.
* gnu/installer/services.scm (system-services->configuration): Cater for the
Hurd with %base-services/hurd, and with %base-packages/hurd that must always
be set.
(%system-services): Change to procedure.  When installing the the Hurd, do not
recommend `ntp-service-type' and USE `openssh-sans-x' package for
`openssh-service-type'.
(system-service-none): New variable.
* gnu/installer/newt/services.scm (run-network-management-page): Include it
when installing the Hurd.
(run-desktop-environments-cbt-page): When installing the Hurd, recommend to
not select any desktop enviroment.  Update users.
* gnu/installer/parted.scm (efi-installation?): Return #f when installing for
the Hurd.
(create-ext2-file-system): New procedure.
(user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type,
format-user-partitions): Support `ext2'.
(<user-partition> partition->user-partition): Use `ext2' when installing the
Hurd.
(auto-partition!): Likewise.  No swap partition when installing the Hurd.
* gnu/installer/final.scm (install-system): Cater for cross installation of
the Hurd.
(bootloader-configuration): Use `grub-minimal-bootloader' when installing the
Hurd.
(user-partition-missing-modules): Cater for empty user-partitions.
(initrd-configuration, user-partitions->configuration): Cater for the Hurd.
* gnu/installer/steps.scm (format-configuration,
configuration->file): Cater for the Hurd.
* gnu/system/hurd.scm (%desktop-services/hurd): New variable.
* gnu/installer/tests.scm (choose-kernel): New procedure.
* gnu/tests/install.scm (gui-test-program): Use it.

Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36
2024-11-11 07:28:35 +01:00
Nicolas Graves
351fdf69f7
gnu: postgresql: Deprecate unsupported versions.
Versions 10 and 11 are unsupported according to
https://www.postgresql.org/support/versioning/

postgresql-10 also has a CVE.

* doc/guix.texi: Change default value of postgresql-service-type's
postgresql field.
* gnu/packages/databases.scm (postresql-10, postgresql-11): Use
define-deprecated/public to warn users.
* gnu/services/databases.scm (postgresql-configuration): Change the
default value of postgresql-configuration-postgresql.
* gnu/tests/guix.scm (%guix-data-service-os): Change the default value
of postgresql.

Signed-off-by: Andreas Enge <andreas@enge.fr>
Change-Id: Ie8744c8e1f246e9b45ff5e29d4e98214de3ca66a
2024-10-28 10:41:27 +01:00
Dariqq
cc67a0b71d
gnu: system: Privilege programs after creating accounts.
Ensure that users and groups are already created when the privileging script
runs. The order these scripts appear in the folded activation-service depends
on the order these services are instantiated in the operating-system.

Fixes <https://issues.guix.gnu.org/73680>.

* gnu/system.scm (operating-system-default-essential-services): Move
privileged-program-service above account-service.
(hurd-default-essential-services): Likewise.
* gnu/tests/base.scm (%activation-os): New variable.
(run-activation-test): New procedure.
(%test-activation): New variable.

Change-Id: I59a191c5519475f256e81bdf2dc4cb01b96c31fe
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-10-24 14:50:09 +02:00
Fabio Natali
8c6d24d388
gnu: services: Add readymedia service.
* gnu/services/upnp.scm, gnu/tests/upnp.scm: New files.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add them.
* doc/guix.texi (Miscellaneous Services): Document the service.

Change-Id: I6a3c9db9e7504df308038343ed48e4409a323581
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2024-10-18 20:56:02 +01:00
Ludovic Courtès
f92151133d
services: cleanup: Reintroduce explicit ‘chmod’ calls.
This reverts commit e74d05db53.

* gnu/services.scm (cleanup-gexp): Introduce explicit ‘chmod’ calls
after ‘mkdir’ calls.
* gnu/tests/base.scm (run-basic-test)[test]("permissions on /tmp"):
New test.

Reported-by: Hilton Chain <hako@ultrarare.space>
Change-Id: I1e14dbe52eac526d2ed4ec1dd9c6fd9036f96a63
2024-09-25 17:53:53 +02:00
Rodion Goritskov
61a7930cb0
services: agate: Change variable names and add system test.
* doc/guix.texi (Web Services): Update documentation for agate-service-type.
* gnu/services/web.scm (agate-configuration): Rename certs, addr, lang and
central-conf variables.
* gnu/tests/web.scm (%test-agate): Add system test for agate-service-type.

Change-Id: Ie14814fca1d5158acd67899da0c3fc2c5b586c72
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-08-31 19:06:39 +02:00
Tobias Geerinckx-Rice
902b15b24d
gnu: Replace (almost) all uses of /run/setuid-programs.
…those good for master, anyway.

* gnu/packages/admin.scm (ktsuss, opendoas, hosts)
[arguments]: Replace /run/setuid-programs with /run/privileged/bin.
* gnu/packages/containers.scm (slirp4netns)[arguments]: Likewise.
* gnu/packages/debian.scm (pbuilder)[arguments]: Likewise.
* gnu/packages/disk.scm (udevil)[arguments]: Likewise.
* gnu/packages/enlightenment.scm (efl, enlightenment)
[arguments]: Likewise.
* gnu/packages/gnome.scm (gdm, gnome-control-center)
[arguments]: Likewise.
* gnu/packages/linux.scm (singularity)[arguments]: Likewise.
* gnu/packages/lxde.scm (spacefm)[arguments]: Likewise.
* gnu/packages/monitoring.scm (zabbix-agentd)[arguments]: Likewise.
* gnu/packages/virtualization.scm (ganeti)[arguments]: Likewise.
* gnu/packages/xdisorg.scm (xsecurelock)[arguments]: Likewise.
* gnu/services/dbus.scm (dbus-configuration-directory): Likewise.
* gnu/services/ganeti.scm (%default-ganeti-environment-variables):
Likewise.
* gnu/services/monitoring.scm (zabbix-agent-shepherd-service): Likewise.
* gnu/tests/ldap.scm (marionette): Likewise.
* gnu/tests/monitoring.scm (os): Likewise.
2024-08-11 02:00:00 +02:00
Oleg Pykhalov
26638b8e81
services: containerd: Provision separately from docker service.
containerd can operate independently without relying on Docker for its
configuration.

* gnu/services/docker.scm (docker-configuration): Deprecate containerd field.
(containerd-configuration, containerd-service-type): New variables.
(docker-shepherd-service): Use containerd-configuration.  Delete duplicated
variable binding.  Allow to configure environment variables.
(docker-service-type): Delete extension with containerd-service-type.
* gnu/tests/docker.scm (%docker-os, %oci-os): Add containerd service.
(run-docker-test, run-docker-system-test, run-oci-container-test): Run
containerd service.
* doc/guix.texi (Miscellaneous Services): Document containerd-service-type.

Change-Id: Ife0924e50a3e0aa2302d6592dae51ed894600004
2024-08-04 11:54:50 +03:00
Liliana Marie Prikler
f8364fabbd
gnu: Add system test for Emacs.
* gnu/tests/emacs.scm: New file.
2024-07-21 09:42:13 +02:00
Ludovic Courtès
a9d8ad6595
tests: base: Compare all the service provisions, not just canonical names.
* gnu/tests/base.scm (run-basic-test)["shepherd services"]: Use
‘append-map’ on live service provisions to match what
‘operating-system-shepherd-service-names’ does.

Change-Id: Ie54082eed6c7b8d37d3428711e71c11e80940235
2024-07-18 17:31:18 +02:00
Efraim Flashner
7a70532dd8
tests: libvirt-test: Give the libvirt service time to start.
* gnu/tests/virtualization.scm (run-libvirt-test): Sleep for 1 second
after starting the libvirtd service but before running the tests against
it.

Change-Id: I4d17a42ff7f0f2decc12c8e33991259c330a78f4
2024-06-17 08:36:12 +03:00
Andrew Tropin
eac5171246
Revert "services: home: Use pairs instead of lists."
This reverts commit dbeef44f3c.

Despite the more semantically correct data type, it doesn't follow the style
of the most services and also breaks user-facing API.

Change-Id: Ib4ef4e9cd2f53ac853a5b7c7c90e57c35c99a5ea
2024-06-02 15:06:16 +04:00
Andrew Tropin
dbeef44f3c
services: home: Use pairs instead of lists.
* gnu/services/guix.scm: Use pairs instead of lists.
* doc/guix.texi: Update accordingly.
* gnu/tests/guix.scm: Update accordingly.

Change-Id: I0b8d3fa5b214add89bdb84a11fa20d1b319435f0
2024-06-02 13:38:52 +04:00
Efraim Flashner
4c39f6edeb
tests: install: Use a default qemu machine for arm architectures.
* gnu/tests/install.scm (qemu-command*): Adjust qemu command when run on
armhf-linux or aarch64-linux to include a machine type.
(run-install): Same.

Change-Id: I32f85183cd8ec39c6a2e66624954743fd5983582
2024-05-27 10:26:24 +03:00
Efraim Flashner
f2bfe1d065
tests: install: Add support for aarch64 UEFI tests.
* gnu/tests/install.scm (uefi-firmware): Add case for aarch64.

Change-Id: I77a506f792790954a289eda5a7a395a2b37c19c7
2024-05-27 10:26:24 +03:00
Efraim Flashner
c0610dfb1a
gnu: Use new ovmf firmware packages.
* doc/guix.texi (Invoking guix system): Update qemu command to use
ovmf-x86-64.
* gnu/packages/virtualization.scm (xen)[inputs]: Replace ovmf with
ovmf-i686.
* gnu/tests/install.scm (uefi-firmware): Use system appropriate ovmf
firmware.

Change-Id: Ia2ff76eaf766c8d4fb0be4a7cc7b8941574433d0
2024-05-27 10:26:24 +03:00
Giacomo Leidi
be868f69aa
gnu: Add tests for oci-container-service-type.
* gnu/tests/docker.scm (run-oci-container-test): New variable;
(%test-oci-container): new variable.

Change-Id: Idefc3840bdc6e0ed4264e8f27373cd9a670f87a0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-25 15:34:57 +02:00
Richard Sent
59bb53823e
services: Add the Guix Home service.
This patch adds a Guix Home service, which allows for configuring/deploying an
operating-system declaration with an associated home-environment.

* gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service
* gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when
the system shepherd runs guix-home-<user>
* doc/guix.texi: Add documentation for guix-home-service
* gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to
activate a home environment

Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-17 12:13:03 +02:00
Richard Sent
027419626f
gnu: tests: Add system test for sddm.
Create a basic suite of tests to verify the display manager starts.

* gnu/tests/sddm.scm: New file.

Change-Id: Ia84926e9aab42c6781430c22aae0f892387d1a29
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-04-15 09:52:44 +01:00
Ludovic Courtès
a7f15c9ecf
reconfigure: /run/current-system points to generation.
* guix/scripts/system/reconfigure.scm (switch-system-program): Set
‘GUIX_NEW_SYSTEM’ to GENERATION rather than OS, for consistency with
what ‘boot-system’ does.
* gnu/tests/reconfigure.scm (run-switch-to-system-test)
["script activated the new generation"]: Adjust accordingly.

Change-Id: I57b693606a41b8c952df32bbdc2b9120c6dbfd6a
2024-04-08 00:05:48 +02:00
Carlo Zancanaro
85083527dd
gnu: tests: Fix prosody system test.
The test was failing because the sasl module no longer accepts PLAIN auth on
insecure connections.

* gnu/tests/messaging.scm (%test-prosody): Configure test prosody to allow all
auth types on insecure connections.

Change-Id: I142f3b6ccbdde4bdde86ce0698fea7d5509fc200
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2024-03-17 12:53:21 +01:00
Oleg Pykhalov
fa222331bd
tests: install: Fix encrypted-root-not-boot-os test.
Fix build failure caused by lack of free disk space.

* gnu/tests/install.scm (%test-encrypted-root-not-boot-os): Increase the root
partition to 1600 MiB.

Change-Id: I9f8378c37743ae8e59a72228b9e8bdbad93b4473
2024-02-21 15:20:07 +03:00
Ludovic Courtès
9edbb2d7a4
services: Add ‘virtual-build-machine’ service.
* gnu/services/virtualization.scm (<virtual-build-machine>): New record type.
(%build-vm-ssh-port, %build-vm-secrets-port, %x86-64-intel-cpu-models):
New variables.
(qemu-cpu-model-for-date, virtual-build-machine-ssh-port)
(virtual-build-machine-secrets-port): New procedures.
(%minimal-vm-syslog-config, %virtual-build-machine-operating-system):
New variables.
(virtual-build-machine-default-image):
(virtual-build-machine-account-name)
(virtual-build-machine-accounts)
(build-vm-shepherd-services)
(initialize-build-vm-substitutes)
(build-vm-activation)
(virtual-build-machine-offloading-ssh-key)
(virtual-build-machine-activation)
(virtual-build-machine-secret-root)
(check-vm-availability)
(build-vm-guix-extension): New procedures.
(initialize-hurd-vm-substitutes): Remove.
(hurd-vm-activation): Rewrite in terms of ‘build-vm-activation’.
* gnu/system/vm.scm (linux-image-startup-command): New procedure.
(operating-system-for-image): Export.
* gnu/tests/virtualization.scm (run-command-over-ssh): New procedure,
extracted from…
(run-childhurd-test): … here.
[test]: Adjust accordingly.
(%build-vm-os): New variable.
(run-build-vm-test): New procedure.
(%test-build-vm): New variable.
* doc/guix.texi (Virtualization Services)[Virtual Build Machines]: New
section.
(Build Environment Setup): Add cross-reference.

Change-Id: I0a47652a583062314020325aedb654f11cb2499c
2024-02-10 23:21:07 +01:00
Wilko Meyer
10a1935963
gnu: Remove linux-libre 4.14.
* gnu/packages/linux.scm (linux-libre-4.14-version,
linux-libre-4.14-gnu-revision, deblob-scripts-4.14,
linux-libre-4.14-pristine-source, linux-libre-4.14-source,
linux-libre-headers-4.14, linux-libre-4.14, linux-libre-arm-generic-4.14,
linux-libre-arm-omap2plus-4.14): Remove variables.
* gnu/packages/aux-files/linux-libre/4.14-arm.conf,
gnu/packages/aux-files/linux-libre/4.14-i686.conf,
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf: Delete files.
* Makefile.am (AUX_FILES): Remove aforementioned .conf files.
* gnu/tests/base.scm (%test-linux-libre-4.14): Remove variable.

Change-Id: I40393b5f46b989848d569c929f1d9c986736553e
2024-01-22 13:24:20 -05:00
Tomas Volf
0aec4e7b70
tests: install: Fix encrypted-home-os, encrypted-home-os-key-file tests.
The installation no longer fits into the 1.6G, leading to a warning while
running the test:

    guix system: warning: at least 1526.8 MB needed but only 1408.4 MB available in /mnt

Followed by a failure:

     93% [####################################################################     ]note: build failure may have been caused by lack of free disk space
    builder for `/gnu/store/8wl8q8nc1za0vlyv21jpzwgml45njgk2-module-import-compiled.drv' failed with exit code 1

This commit increases the root partition to 2G, making the test pass again.

* gnu/tests/install.scm (%encrypted-root-installation-script): Increase the
root partition to 2G.
(%test-encrypted-home-os), (%test-encrypted-home-os-key-file): Increase the
target size to 3G to accommodate for the larger root partition.

Change-Id: I0f7092f7b7fc9992d3f895a1eaecf1f2065b7360
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-14 23:00:03 +01:00
Tomas Volf
2bfff0da33
tests: install: Fix encrypted-root-os test.
The installation no longer fits into the 1.6G, leading to a warning while
running the test:

    guix system: warning: at least 1526.8 MB needed but only 1408.4 MB available in /mnt

Followed by a failure:

     93% [####################################################################     ]note: build failure may have been caused by lack of free disk space
    builder for `/gnu/store/8wl8q8nc1za0vlyv21jpzwgml45njgk2-module-import-compiled.drv' failed with exit code 1

This commit increases the root partition to 2G, making the test pass again.

* gnu/tests/install.scm (%encrypted-root-installation-script): Increase the
root partition to 2G.

Change-Id: I4cc5c78cfbd93ab2ae92ec77603ce6fee0289843
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-14 23:00:03 +01:00
Tomas Volf
a355131ba8
tests: install: Use the smallest possible iteration time for LUKS.
For testing that installation works, there is no need to spent 2000ms (the
default) iterating while generating the encryption key.  This commit therefore
sets the iteration time to the lowest possible value, 1(ms).

* gnu/tests/install.scm (%encrypted-root-installation-script):
(%encrypted-home-installation-script):
(%encrypted-root-not-boot-installation-script): Pass -i 1 to luksFormat
invocation.

Change-Id: Iab79459b48bebe4d293b18290a236c6414fb27fc
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-14 23:00:03 +01:00