mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
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>
This commit is contained in:
parent
fc650babdd
commit
7d4db1a37c
2 changed files with 40 additions and 1 deletions
|
|
@ -685,7 +685,11 @@ a `service-extension', as used by `set-xorg-configuration'."
|
|||
(configuration-record
|
||||
(inherit config)
|
||||
(xorg-configuration
|
||||
(merge-xorg-configurations xorg-configurations)))))))))
|
||||
(merge-xorg-configurations
|
||||
(cons ((record-accessor (record-type-descriptor config)
|
||||
'xorg-configuration)
|
||||
config)
|
||||
xorg-configurations))))))))))
|
||||
|
||||
(define (xorg-server-profile-service config)
|
||||
;; XXX: profile-service-type only accepts <package> objects.
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue