Subject: [bug#61458] [PATCH] services: xorg-wrapper: Support xorg server input

From: Roman Scherer <[email-masked]>
Date: Fri, 10 Mar 2023 16:32:28 +0100

Hi 宋文武,

thanks for taking a look. I messed up my system, but will update the
patch once I got everyting working again.

Roman

宋文武 <[email-masked]> writes:

> Roman Scherer <[email-masked]> writes:
>
>> Hello Guix,
>>
>> I would like to replace the Mesa package in my Xorg configuration. I
>> tried to do this with the following snippet:
>>
>> ```
>> (modify-services %desktop-services
>>   (slim-service-type config =>
>>                      (slim-configuration
>>                       (inherit config)
>>                       (xorg-configuration
>>                        (xorg-configuration
>>                         (server (replace-mesa xorg-server)))))))
>> ```
>>
>> But this unfortunately does not work, because the xorg-wrapper uses
>> static paths for the mesa, xkbcomp and xkeyboard-config packages in the
>> derivation.
>>
>> The xserver starts now with the replaced mesa, but some paths still
>> point to the hard coded packages in Guix itself (and not the
>> replacement), which cause some things to not work.
>>
>> This patch changes this to lookup the paths from the inputs of the
>> server field of the xorg-configuration instead. That way the correct
>> paths are setup in the xor-wrapper script. If those inputs are not found
>> for some reason it falls back to the current behavior, using the
>> packages from Guix.
>>
>> Could you please review this?
>>
>> Thanks, Roman.
>
> Sorry for a long deley..
>>
>> From d035c99ed4703da0e3e9b62299c390560c074a17 Mon Sep 17 00:00:00 2001
>> From: r0man <[email-masked]>
>> Date: Sat, 11 Feb 2023 19:36:16 +0100
>> Subject: [PATCH] services: xorg-wrapper: Support xorg server input
>>  transformations.
>
> I think it's better add some explaination to commit message like:
> The xorg-wrapper uses [...]
> This patch [...]
>
> Should be good.
>>
>> * gnu/services/xorg.scm (xorg-wrapper): Support xorg server input transformations.
>> ---
>>  gnu/services/xorg.scm | 22 +++++++++++++++++++---
>>  1 file changed, 19 insertions(+), 3 deletions(-)
>>
>> diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
>> index 5f073d05d3..92735e6004 100644
>> --- a/gnu/services/xorg.scm
>> +++ b/gnu/services/xorg.scm
>> @@ -355,6 +355,21 @@ (define files
>>                                   files)
>>                         #t))))
>>
>> +(define (xorg-configuration-append-input config input default-input path)
>> +  (let ((server (xorg-configuration-server config)))
>> +    (file-append (or (lookup-package-direct-input server input) default-input)
>> +                 path)))
> I'm not sure about the procedure name, maybe add a docstring explain
> it's function?
>
>
> Otherwise, look good to me, thank you!