Commit 8d3889ba authored by Yifan J's avatar Yifan J Committed by Ray Strode

daemon/gdm-manager.c: quit plymouth when xdmcp is the only allowed connection.

gdm is responsible to kill plymouth by spawning the "plymouth quit"
subprocesses in gdm-manager.c. The current code pathes of quiting
plymouth can never be reached when xdmcp is the only connection
allowed. Consequently in the case of

    !show_local_greeter && xdmcp_enabled

the plymouth-quit-wait.service will never quit and the login prompt
will not popup without manual interference. This issue could be
more obviously observed when a downstream like openSUSE which
allows a customized sysconfig to switch the corresponding two
options on a headless server (s390), where the setup is usually:

    DISPLAYMANAGER_REMOTE_ACCESS="yes"
    DISPLAYMANAGER_STARTS_XSERVER="no"

The proposed patch handles this edge case by quit plymouth immediately
when the condition is detected.

https://bugzilla.gnome.org/show_bug.cgi?id=795120
parent 6b5c3691
......@@ -2510,6 +2510,13 @@ gdm_manager_start (GdmManager *manager)
#ifdef HAVE_LIBXDMCP
/* Accept remote connections */
if (manager->priv->xdmcp_enabled) {
#ifdef WITH_PLYMOUTH
/* Quit plymouth if xdmcp is the only display */
if (!manager->priv->show_local_greeter && manager->priv->plymouth_is_running) {
plymouth_quit_with_transition ();
manager->priv->plymouth_is_running = FALSE;
}
#endif
if (manager->priv->xdmcp_factory != NULL) {
g_debug ("GdmManager: Accepting XDMCP connections...");
gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->xdmcp_factory));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment