Package: guix;
Reported by: Dariqq <dariqq <at> posteo.net>
Date: Fri, 18 Oct 2024 09:25:01 UTC
Severity: normal
Tags: patch
Merged with 68055
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Cc: tracker <at> debbugs.gnu.org Subject: bug#68055: closed (lightdm and lightdm-gtk-greeter do not show session menu in guix.) Date: Mon, 16 Dec 2024 02:38:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 16 Dec 2024 11:35:57 +0900 with message-id <87y10guzg2.fsf <at> gmail.com> and subject line Re: [PATCH 0/2] lightdm: Fix empty session list. has caused the debbugs.gnu.org bug report #73859, regarding lightdm and lightdm-gtk-greeter do not show session menu in guix. to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 73859: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73859 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Feng Shu <tumashu <at> 163.com> To: "guix-bug" <bug-guix <at> gnu.org> Subject: lightdm and lightdm-gtk-greeter do not show session menu in guix. Date: Wed, 27 Dec 2023 15:14:15 +0800See previous info: https://issues.guix.gnu.org/57168 > It works fine, but there are a few gotchas: > 1. The session selection menu doesn't show the items. I don't know why. > Perhaps a regresssion with newer GTK+. I use below code to test: 1. lightdm-gtk-greeter code: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > /* Session menu */ > > g_debug ("XXXX: Call lightdm_get_sessions functions from main"); > > items = lightdm_get_sessions (); > > g_debug ("XXXX: Session menuitem create start."); > > if (gtk_widget_get_visible (session_menuitem)) > > { > > GSList *sessions = NULL; > > > > if (gtk_icon_theme_has_icon (icon_theme, "document-properties-symbolic")) > > session_badge = gtk_image_new_from_icon_name ("document-properties-symbolic", GTK_ICON_SIZE_MENU); > > else > > session_badge = gtk_image_new_from_icon_name ("document-properties", GTK_ICON_SIZE_MENU); > > gtk_widget_show (session_badge); > > gtk_container_add (GTK_CONTAINER (session_menuitem), session_badge); > > > > items = lightdm_get_sessions (); > > for (item = items; item; item = item->next) > > { > > LightDMSession *session = item->data; > > GtkWidget *radiomenuitem; > > > > g_debug ("XXXX: Session items: %s", lightdm_session_get_key (session)); > > > > radiomenuitem = gtk_radio_menu_item_new_with_label (sessions, lightdm_session_get_name (session)); > > g_object_set_data (G_OBJECT (radiomenuitem), SESSION_DATA_KEY, (gpointer) lightdm_session_get_key (session)); > > sessions = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (radiomenuitem)); > > g_signal_connect (G_OBJECT (radiomenuitem), "activate", G_CALLBACK (session_selected_cb), NULL); > > gtk_menu_shell_append (GTK_MENU_SHELL (session_menu), radiomenuitem); > > gtk_widget_show (GTK_WIDGET (radiomenuitem)); > > } > > > > set_session (NULL); > > } > > > > g_debug ("XXXX: Session menuitem create stop."); > > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > 2. liblightdm_gobject code: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > /** > > * lightdm_get_sessions: > > * > > * Get the available sessions. > > * > > * Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession > > **/ > > GList * > > lightdm_get_sessions (void) > > { > > g_debug ("Run lightdm_get_session function."); > update_sessions (); > > return local_sessions; > > } > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > In my debian machine, it will show the below log, and I find that lightdm_get_session will be called successfully. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > DEBUG-Message: 10:51:53.859: XXXX: Call lightdm_get_sessions functions from main > > DEBUG-Message: 10:51:53.859: Run lightdm_get_session function. > > DEBUG-Message: 10:51:53.859: Sessions_dir /usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions > > DEBUG-Message: 10:51:53.859: Run lightdm_session_class_init. > > DEBUG-Message: 10:51:53.859: Run lightdm_session_init. > > DEBUG-Message: 10:51:53.859: Loaded session /usr/share/xsessions/lightdm-xsession.desktop (Default Xsession, ) > > DEBUG-Message: 10:51:53.860: Run lightdm_session_init. > > DEBUG-Message: 10:51:53.860: Loaded session /usr/share/xsessions/xfce.desktop (Xfce 会话, 使用此会话将 Xfce 作为您的桌面环境运行) > > DEBUG-Message: 10:51:53.860: Run lightdm_session_init. > > DEBUG-Message: 10:51:53.860: Loaded session /usr/share/xsessions/icewm-session.desktop (IceWM Session, 此会话使您登录到 IceWM) > > DEBUG-Message: 10:51:53.861: Run lightdm_session_init. > > DEBUG-Message: 10:51:53.861: Loaded session /usr/share/wayland-sessions/weston.desktop (Weston, The reference Wayland server) > > DEBUG-Message: 10:51:53.861: XXXX: Session menuitem create start. > > DEBUG-Message: 10:51:53.864: Run lightdm_get_session function. > > DEBUG-Message: 10:51:53.864: XXXX: Session items: lightdm-xsession > > DEBUG-Message: 10:51:53.864: XXXX: Session items: icewm-session > > DEBUG-Message: 10:51:53.864: XXXX: Session items: weston > > DEBUG-Message: 10:51:53.864: XXXX: Session items: xfce > > DEBUG-Message: 10:51:53.864: XXXX: Call lightdm_get_sessions functions from set_session, argument: (null) > > DEBUG-Message: 10:51:53.864: Run lightdm_get_session function. > > DEBUG-Message: 10:51:53.864: XXXX: Call lightdm_get_sessions functions from set_session, argument: xfce > > DEBUG-Message: 10:51:53.864: Run lightdm_get_session function. > > DEBUG-Message: 10:51:53.864: XXXX: Session menuitem create stop. > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > But in guix, lightdm_get_sessions seem to not be called, for I can not find string "Run lightdm_get_session function. " in log file, just like the below: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > DEBUG-Message: 10:51:53.859: XXXX: Call lightdm_get_sessions functions from main > > DEBUG-Message: 10:51:53.861: XXXX: Session menuitem create start. > > DEBUG-Message: 10:51:53.864: XXXX: Session menuitem create stop. > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > liblightdm-gobject shared library seem to be loaded, for when I remove this lib, gtk-greeter will not show. but why lightdm_get_sessions function do not be called while liblightdm-gobject is loaded? --
[Message part 3 (message/rfc822, inline)]
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Dariqq <dariqq <at> posteo.net> Cc: 73859-done <at> debbugs.gnu.org Subject: Re: [PATCH 0/2] lightdm: Fix empty session list. Date: Mon, 16 Dec 2024 11:35:57 +0900Hi Dariqq, Dariqq <dariqq <at> posteo.net> writes: [...] > Dariqq (2): > gnu: lightdm: Use global sysconfdir. > gnu: lightdm-service-type: Add lightdm.conf to /etc/lightdm. Finally pushed to master (see commits b9d7e15f9f and 3a8e19a61d), after I had some time to properly review and test it. I've adjusted the commit messages a bit, and used this Scheme trick to reuse more of the install phase arguments: --8<---------------cut here---------------start------------->8--- ;; matching tests. - (unsetenv "LC_ALL")))))) + (unsetenv "LC_ALL"))) + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys #:rest args) + ;; Override the sysconfdir flag only for the installation phase, + ;; as it attempts to write the sample config files to /etc and + ;; fail otherwise. + (define make-flags* + (append make-flags (list (string-append "sysconfdir=" + #$output "/etc")))) + (apply (assoc-ref %standard-phases 'install) + (append args (list #:make-flags make-flags*)))))))) (inputs --8<---------------cut here---------------end--------------->8--- Closing. -- Thanks, Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.