summaryrefslogtreecommitdiff
path: root/tests/services
diff options
context:
space:
mode:
authorIan Eure <ian@retrospec.tv>2025-12-31 10:07:23 -0800
committerEfraim Flashner <efraim@flashner.co.il>2026-01-01 13:26:02 +0200
commit7d4db1a37c39019c0840fe074f90df0b7be3c120 (patch)
treef933e200ce5fb5c00d396856af937007ab03fd71 /tests/services
parentfc650babdd064e57ccf6b6ea13b24e4162bab893 (diff)
gnu: services: Fix xorg configuration merging.
A bug in #21 causes the default configuration to be omitted from the xorg merging process. This can cause users not using set-xorg-configuration or service extensions to end up with a broken configuration. Fixes #5267. * tests/services/xorg.scm: Add a regression test. * gnu/services/xorg.scm (handle-xorg-configuration): Include the xorg-configuration record from config in merges. Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'tests/services')
-rw-r--r--tests/services/xorg.scm35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/services/xorg.scm b/tests/services/xorg.scm
index 0bb4a3e14cf..d778d0c269b 100644
--- a/tests/services/xorg.scm
+++ b/tests/services/xorg.scm
@@ -24,6 +24,8 @@
#:use-module (gnu bootloader grub)
#:use-module (gnu services)
#:use-module (gnu services base)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services lightdm)
#:use-module (gnu services xorg)
#:use-module (gnu system)
#:use-module (gnu system keyboard)
@@ -229,4 +231,37 @@
(xorg-configuration (drivers %drivers-custom-1))
(xorg-configuration (drivers %drivers-custom-2))))))
+;; regression tests.
+
+;; https://codeberg.org/guix/guix/issues/5267
+(test-equal "https://codeberg.org/guix/guix/issues/5267"
+ (xorg-configuration-keyboard-layout %config-xorg-keyboard-layout-1)
+ (let ((os (operating-system
+ (host-name "test")
+ (bootloader
+ (bootloader-configuration
+ (bootloader grub-bootloader)
+ (targets '("/dev/sdX"))))
+ (file-systems
+ (cons
+ (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext4"))
+ %base-file-systems))
+ (services
+ (cons*
+ (service lightdm-service-type
+ (lightdm-configuration
+ (xorg-configuration
+ %config-xorg-keyboard-layout-1)))
+ (modify-services %desktop-services
+ (delete gdm-service-type)))))))
+ (xorg-configuration-keyboard-layout
+ (lightdm-configuration-xorg-configuration
+ (service-value
+ (fold-services
+ (operating-system-services os)
+ #:target-type lightdm-service-type))))))
+
(test-end "merge-xorg-configurations")