summaryrefslogtreecommitdiff
path: root/gnu/tests
AgeCommit message (Collapse)Author
2025-11-03installer: Add KDE Plasma desktop environment.Rutherther
* 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-02gnu: tests: Fix gitile.Mathieu Othacehe
* gnu/tests/version-control.scm (%gitile-os): Disable strict owner validation as /srv/git is root-owned. Change-Id: I25457d2b333ec355822141f81d861087b719f782
2025-10-26tests: samba: Add delay in some tests.Efraim Flashner
* 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-25tests: nar-herder: Test the control port.Christopher Baines
* 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-21tests: guix-daemon: Check that build processes can chown to “kvm”.Ludovic Courtès
* gnu/tests/base.scm (guix-daemon-test-cases)[chown-snippet]: New variable. ["kvm GID mapped"]: New test. Change-Id: I0ce7a9250539766628eb2459d60abce7c05a36ee
2025-10-21tests: debian-install: Install the ‘uidmap’ package.Ludovic Courtès
* 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-20tests: Update Archlinux image for foreign install test.Rodion Goritskov
* 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-20tests: Update Debian image for foreign install test to Debian 13.Rodion Goritskov
* 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-17tests: install: Expand the default partition size to 2GiB.Efraim Flashner
* 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-06mapped-devices/luks: Support extra options.45mg
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-09-28gnu: Merge (gnu packages openbox) with (gnu packages wm).Anderson Torres
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-26services: Add miniflux-service-type.Rodion Goritskov
* 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-18Reapply "Update Maxim's email address."Maxim Cournoyer
This reverts commit a7db92d9b389cbe565395523882c34c6eff2c21a, 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-18Revert "Update Maxim's email address."Maxim Cournoyer
This reverts commit d0d87a744d724b7e7d5ac013c586039652087bb3. Oops! This caused a world rebuild. Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18Update Maxim's email address.Maxim Cournoyer
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-14gnu: Remove Tailon services and documentation.Ian Eure
The tailon package was removed in 63023deaf96bd0d90aba262b194bf1445ec5a0b6, 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-08-30services: hurd-vm: Support different hurd types.Yelninei
* 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-25Revert "tests: Use lower-oci-image-state in container tests."Giacomo Leidi
This reverts commit cc07ecd7ccc52540113414eaebafc0fb218ef9ff, which breaks 'guix pull', for to-be-investigated reasons. Fixes: #2252 Change-Id: Idd02dd2e0cd93034e636030845996a9ab3748839 Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25tests: Use lower-oci-image-state in container tests.Giacomo Leidi
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-25services: Add oci-service-type.Giacomo Leidi
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-25tests: oci-container: Set explicit timeouts.Giacomo Leidi
* 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-03services: mosquitto: Add test suite.Evgeny Pisemsky
* gnu/tests/messaging.scm (%test-mosquitto): New variable. Change-Id: Ia84291576b9417ce678df3e0ed18caa6ce27b759 Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-07-24gnu: tests: Replace deprecated dhcp client service.Gabriel Wicki
* 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-19services: Add rabbitmq service.wrobell
* 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-18mapped-devices: luks: Adjust to support extra arguments.Ludovic Courtès
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-18tests: foreign: Add ‘archlinux-install’ test.Ludovic Courtès
* gnu/tests/foreign.scm (archlinux-qcow2, %test-archlinux-install): New variables. Co-authored-by: Ivan Popovych <ivan@ipvych.com> Change-Id: I2fce962a2eafa58fafaf2bdff25fc23df28fd687
2025-07-18tests: foreign: Parameterize root partition device.Ludovic Courtès
* gnu/tests/foreign.scm (run-foreign-install-test): Add #:device parameter and honor it. Change-Id: I68bddaa25e9ba4131fc10366efed6772a3586a31
2025-07-18tests: foreign: Forcefully delete /bin/{wget,gpg}.Ludovic Courtès
* gnu/tests/foreign.scm (run-foreign-install-test)[build]: Attempt to delete /bin/{wget,gpg} before recreating them. Change-Id: I5260cae7f706ce9a492a86b1859591c8446e04a3
2025-07-18tests: foreign: Preserve distro image size.Ludovic Courtès
* 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-18tests: foreign: Catch failure to mount distro image.Ludovic Courtès
* gnu/tests/foreign.scm (qcow-image-with-marionette)[build]: Call ‘error’ when ‘mount’ exits with a non-zero code. Change-Id: I7c608e0aa7dff1447c9df778951d7a5256e47255
2025-07-01tests: Fix the gui installation tests.Mathieu Othacehe
This is a follow-up of: 4c017ccfe56a8887bf26faaea62d60501d7cc4f6. 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-01tests: Support basic tests extension with an extra-tests argument.Mathieu Othacehe
* gnu/tests/base.scm (run-basic-test)[extra-tests]: New argument. Change-Id: Ia3595638309738d3361c583c93a66e0a872adabe
2025-07-01tests: Really test the etc-bashrc-d-service-type service.Mathieu Othacehe
Follow-up of: 4c017ccfe56a8887bf26faaea62d60501d7cc4f6. 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-06-30gnu: installer: Remove enlightenment desktop option.Efraim Flashner
* 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-05-26services: Modernize and test nftables service.Maxim Cournoyer
* 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-26system: Factorize bashrc default configuration.Maxim Cournoyer
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-26services: Add etc-bashrc-d-service-type.Maxim Cournoyer
* gnu/services.scm (files->bashrc-d-directory) New procedure. (etc-bashrc-d-service-type): New service type. * doc/guix.texi (Service Reference): Document it. * gnu/tests/base.scm (test-basic-os): Test it. Change-Id: Ibbb0f684de7aee296adedbce5b1192786d661af2
2025-05-26services: Add etc-profile-d-service-type.Maxim Cournoyer
* gnu/services.scm (make-files->etc-directory) (files->profile-d-entries): New procedures. (etc-profile-d-service-type): New service type. * doc/guix.texi (Service Reference): Document it. * gnu/tests/base.scm (run-basic-test): Test it. Change-Id: I45dde43a1b9603c3384b933ebd1d6e45dba146b9
2025-05-18home: services: Add readymedia.Sughosha
* gnu/home/services/upnp.scm: New file. * gnu/local.mk: Register it. * gnu/services/upnp.scm: Export readymedia-activation and readymedia-shepherd-service. (<readymedia-configuration>)[home-service?]: New field. [cache-directory]: Adjust value depending on 'for-home?'. [log-directory]: Ditto. (readymedia-shepherd-service): Adjust 'requirement' and 'start' according to 'home-service?'. (readymedia-activation): Adjust creating 'media-directories' with permissions according to 'home-service?'. * gnu/tests/upnp.scm (%readymedia-configuration-test): Configure port with %readymedia-default-port. * doc/guix.texi (Miscellaneous Home Services): Document Readymedia Service. (Miscellaneous Services): Add cross-reference. Change-Id: I5c48595d84a815d98e03c7f68a716f048903720c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-16services: dnsmasq: Add stats and reload shepherd actions.Alexey Abramov
* gnu/services/dns.scm (dnsmasq-service-reload-action): New function. Implements SIGHUP handling for reloading configurations. (dnsmasq-service-stats-action): New function. Implements SIGUSR1 handling for dumping statistics. (dnsmasq-shepherd-service): Use new actions. * doc/guix.texi: Document new actions with examples. * gnu/tests/networking.scm (%test-dnsmasq): Add tests to verify the functionality of new actions. Change-Id: I31f0eb4b26a582e95f7bfdb240110c139f0e16cc Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-14services: udev: Also create subsystem nodes at boot.Maxim Cournoyer
This is a more correct fix to CDROM/DVDROM events/auto-mounting than was made in the now-reverted commit 670724edcfe7d ("gnu: eudev: Fix optical discs detection/auto-mounting.") This changes causes the 60-block.rules udev rules file shipped with eudev to correctly set the default polling period to 2000 ms on block devices, which is necessary for kernel events to be fired for CDROM drives for example. To validate it is set: # cat /sys/module/block/parameters/events_dfl_poll_msecs 2000 Before, it would return 0. * gnu/services/base.scm (udev-shepherd-service): <#:start>: Add a 'udevadm trigger --change=add --type=subsystems' invocation, so that it also creates subsystem nodes, as done in Void Linux or LinuxFromScratch init scripts for example. * gnu/tests/base.scm (run-basic-test): Add test. Fixes: <https://issues.guix.gnu.org/35584> Change-Id: Idc0eb5640163b27e41b72cc0c1885412a60805c1
2025-05-06tests: Fix (gnu tests base.scm) module indentation.Maxim Cournoyer
* gnu/tests/base.scm: Fix indentation. Change-Id: I3432fafa2f5c2853a14b5d125cf9377786ca6594
2025-05-06tests: Fix indentation of (gnu tests base).Maxim Cournoyer
* gnu/tests/base.scm: Fix indentation. Change-Id: I84ae82a8ce85ff0113a3eb1215b11c191d3929d6
2025-05-02services: postgresql-role: Add support for password files.Giacomo Leidi
This commit adds a password-file to the postgresql-role field. It allows users to provision Postgres roles with a set password. * gnu/services/databases.scm (postgresql-role): Add password-file field. (postgresql-role-configuration): Add requirement field. (postgresql-create-roles): Add support for setting passwords from a file without leaking passwords to the command line. (postgresql-role-shepherd-service): Add support for customizable requirements. (postgresql-role-service-type): Pass on postgresql-role-configuration fields values by default, this way user configured fields are not lost. * gnu/tests/databases.scm: Test it. * doc/guix.texi: Document the new field and fix the extension point example. Change-Id: I3aabaa10b0c5e826c5aa874e5649e25a3508a585 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-25tests: elogind: Adjust expected output for new version.Maxim Cournoyer
* gnu/tests/desktop.scm (run-elogind-test): Adjust expected output of loginctl commands. Change-Id: I10c131872909ac18a85b8244327883549c76eac0
2025-04-22tests: Fix failing 'guix-system-tests' derivation during 'guix pull'.Maxim Cournoyer
I have no idea why using specifications->packages in a system test OS breaks this derivation; it'd be nice to find out. * gnu/tests/messaging.scm (%pounce-os): Do not use `specifications->packages'. Reported-by: Ada Stevenson <adanskana@gmail.com> Reported-by: Ian Eure <ian@retrospec.tv> Change-Id: Iea727bedecff7a140f895e456ef01503ad11dad0
2025-04-22services: pounce: New service.Maxim Cournoyer
* gnu/services/messaging.scm (pounce-serialize-boolean): (pounce-serialize-string, pounce-serialize-list-of-strings) (pounce-serialize-pair, power-of-two?) (pounce-serialize-number, pounce-serialize-power-of-two) (pounce-serialize-port, pounce-serialize-maybe-boolean) (pounce-serialize-maybe-number, pounce-serialize-maybe-pair) (pounce-serialize-maybe-port, pounce-serialize-maybe-port (pounce-maybe-power-of-two, pounce-serialize-maybe-string) (pounce-serialize-maybe-list-of-strings): New procedures. (pounce-configuration): New configuration. (pounce-activation): New procedure. (serialize-pounce-configuration, pounce-wrapper): Likewise. (pounce-service-type): New service type. * gnu/tests/messaging.scm (ngircd-tls-cert-service-type): New variable. (%pounce-os): Likewise. (run-pounce-test): New procedure. (%test-pounce): New test. * doc/guix.texi (Messaging Services): Document it. Change-Id: I4bbd2bc4821072a93c2c4017b86df329c4b240cb Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-04-20services: guix: Allow ‘guix-daemon’ to run without root privileges.Ludovic Courtès
* gnu/services/base.scm (run-with-writable-store) (guix-ownership-change-program): New procedures. (<guix-configuration>)[privileged?]: New field. (guix-shepherd-service): Rename to… (guix-shepherd-services): … this. Add the ‘guix-ownership’ service. Change ‘guix-daemon’ service to depend on it; when unprivileged, prefix ‘daemon-command’ by ‘run-with-writable-store’ and omit ‘--build-users-group’; adjust socket activation endpoints. (guix-accounts): When unprivileged, create the “guix-daemon” user and group in addition to the others. (guix-service-type)[extensions]: Adjust to name change. * gnu/tests/base.scm (run-guix-daemon-test): Add ‘name’ parameter. (%test-guix-daemon): Adjust accordingly. (%test-guix-daemon-unprivileged): New test. * doc/guix.texi (Base Services): Document ‘privileged?’. (Migrating to the Unprivileged Daemon): Explain that this is automatic on Guix System. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I28a9a22e617416c551dccb24e43a253b544ba163
2025-04-20tests: guix-daemon: Wait for the ‘guix-daemon’ service to be up.Ludovic Courtès
* gnu/tests/base.scm (run-guix-daemon-test): Add “guix-daemon service is up” test. Change-Id: I4d44a1248599fec45c854c285d4da201c30eb00c
2025-04-20tests: guix-daemon: Send system log output to /dev/console.Ludovic Courtès
* gnu/tests/base.scm (%daemon-os): New variable. (%test-guix-daemon): Use it. Change-Id: Iea31808cc59e94971ea4cbc12d565c94348bf7a4