all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dariqq <dariqq@posteo.net>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: 73859@debbugs.gnu.org
Subject: bug#73859: lightdm-service-type is almost unusable
Date: Wed, 23 Oct 2024 18:15:19 +0000	[thread overview]
Message-ID: <7f748427-5276-40e9-b44a-56e9bc445ec3@posteo.net> (raw)
In-Reply-To: <87ldyezxgm.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2967 bytes --]

Hi Maxim

On 23.10.24 16:48, Maxim Cournoyer wrote:
> Hi Dariqq,
> 
> Dariqq <dariqq@posteo.net> writes:
> 
>> Hi Guix,
>>
>> This is to report some of the issues and workarounds when trying to
>> setup lightdm-service-type.
> 
> Thank you for taking the time to report these detailed findings!
> 
>>
>> 1. Unable to choose a session (https://issues.guix.gnu.org/68055)
>>
>> This appearently never worked: https://issues.guix.gnu.org/57168#0
> 
> Indeed.  This definitely makes the session manager much less useful.
> I'd really like to find a solution to that; I think the issue is
> reported upstream here:
> https://github.com/Xubuntu/lightdm-gtk-greeter/issues/105.
> 
> Just a hunch: perhaps something in the  environment the greeter
> runs is missing to have d-bus communication properly working?
> 
Found all these while trying to switch from xfce to mate on a 32 bit 
machine (plus skipping some tests in mates dependency tree to get it to 
build) and spent way to much time trying to understand how to change the 
default session.

Remotivated by your response I looked into how the greeter actually 
finds the session:

1. The menu just calls out to lightdm_get_sessions
https://github.com/Xubuntu/lightdm-gtk-greeter/blob/master/src/lightdm-gtk-greeter.c#L3186

2. This eventually reaches update_sessions
https://github.com/canonical/lightdm/blob/main/liblightdm-gobject/session.c#L181

Could it just be that it is using the "wrong" values for the session dir 
and not the ones we specified in the lightdm config?
 From what config files (if any) are we reading here?


If this is indeed the issue can we set sysconfdir to /etc and let it 
read the lightdm config file from /etc/lightdm/lightdm.conf (via 
config_load_from_standard_locations)?

I tried something like this (diff attached) and seems to work. I was 
able to choose between xfce and mate and log into either of them.
(only slightly awkward thing is that wed need to overwrite sysconfdir 
for 'make install' and should probably rename the 
lightdm-configuration->greeters-config-dir function).



>> This means one currently has to specify the default session with
>> something like
>>
>> (service lightdm-service-type
>> 	 (lightdm-configuration
>> 	  (seats
>> 	   (list
>> 	    (lightdm-seat-configuration
>> 	     (name "*")
>> 	     (user-session "xfce"))))))
>>
> 
> [...]
> 
>> This might be fixed by making the lightdm-activiation snippet actually
>> useful: It currently searches for a file named "directory" to fix
>> permissions rather than the content of the variable 'directory'.
>>
>> (find-files "directory"  #:directories? #t) vs
>> (find-files directory  #:directories? #t)
>>
>> here
>> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/lightdm.scm#n527
> 
> Fixed.
> 
>> 4. tigervnnc
>>
>> default tigervnc is (file-append tigervnc-server "bin/Xvnc") rather
>> than (file-append tigervnc-server "/bin/Xvnc")
> 
> Also fixed (see commit e4e1e16bc1).
> 

Thanks :)

[-- Attachment #2: lightdm.diff --]
[-- Type: text/x-patch, Size: 2286 bytes --]

diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 5152eb6479..b210b11bc6 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -385,6 +385,7 @@ (define-public lightdm
       #:parallel-tests? #f             ; fails when run in parallel
       #:configure-flags
       #~(list "--localstatedir=/var"
+              "--sysconfdir=/etc"
               "--enable-gtk-doc"
               ;; Otherwise the test suite fails on such a warning.
               "CFLAGS=-Wno-error=missing-prototypes")
@@ -412,7 +413,11 @@ (define-public lightdm
                 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
               ;; Avoid printing locale warnings, which trip up the text
               ;; matching tests.
-              (unsetenv "LC_ALL"))))))
+              (unsetenv "LC_ALL")))
+          (replace 'install
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "install" (string-append "sysconfdir=" #$output "/etc")
+                    make-flags))))))
     (inputs
      (list audit
            bash-minimal                 ;for cross-compilation
diff --git a/gnu/services/lightdm.scm b/gnu/services/lightdm.scm
index 798c106563..9dff263854 100644
--- a/gnu/services/lightdm.scm
+++ b/gnu/services/lightdm.scm
@@ -401,10 +401,11 @@ (define (lightdm-configuration->greeters-config-dir config)
   "Return a directory containing all the serialized greeter configurations
 from CONFIG, a <lightdm-configuration> object."
   (file-union "etc-lightdm"
-              (append-map (lambda (g)
-                            `((,(greeter-configuration->conf-name g)
-                               ,(greeter-configuration->file g))))
-                          (lightdm-configuration-greeters config))))
+              (cons `("lightdm.conf" ,(lightdm-configuration-file config))
+               (append-map (lambda (g)
+                             `((,(greeter-configuration->conf-name g)
+                                ,(greeter-configuration->file g))))
+                           (lightdm-configuration-greeters config)))))
 
 (define (lightdm-configuration->packages config)
   "Return all the greeter packages and their assets defined in CONFIG, a

  reply	other threads:[~2024-10-23 18:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-18  9:23 bug#73859: lightdm-service-type is almost unusable Dariqq
2024-10-23 14:48 ` Maxim Cournoyer
2024-10-23 18:15   ` Dariqq [this message]
2024-10-24  0:51 ` bug#73859: lightdm Feng Shu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7f748427-5276-40e9-b44a-56e9bc445ec3@posteo.net \
    --to=dariqq@posteo.net \
    --cc=73859@debbugs.gnu.org \
    --cc=maxim.cournoyer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.