GNU bug report logs - #68055
lightdm and lightdm-gtk-greeter do not show session menu in guix.

Previous Next

Package: guix;

Reported by: Feng Shu <tumashu <at> 163.com>

Date: Wed, 27 Dec 2023 07:15:02 UTC

Severity: normal

Tags: patch

Merged with 73859

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68055 in the body.
You can then email your comments to 68055 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#68055; Package guix. (Wed, 27 Dec 2023 07:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Feng Shu <tumashu <at> 163.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Wed, 27 Dec 2023 07:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

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 +0800

See 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? 


-- 





Information forwarded to bug-guix <at> gnu.org:
bug#68055; Package guix. (Wed, 27 Dec 2023 08:50:02 GMT) Full text and rfc822 format available.

Message #8 received at 68055 <at> debbugs.gnu.org (full text, mbox):

From: Feng Shu <tumashu <at> 163.com>
To: 68055 <at> debbugs.gnu.org
Subject: lightdm and lightdm-gtk-greeter in guix system do not show session
 menu.
Date: Wed, 27 Dec 2023 16:49:37 +0800
I have create a issue in lightdm github: https://github.com/canonical/lightdm/issues/333


-- 





Merged 68055 73859. Request was from Maxim Cournoyer <maxim.cournoyer <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 15 Dec 2024 14:34:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 13 Jan 2025 12:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 179 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.