[Merge] ~3v1n0/ubuntu/+source/gdm3:ubuntu/master into ~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master

2018-10-18 Thread Iain Lane
The proposal to merge ~3v1n0/ubuntu/+source/gdm3:ubuntu/master into 
~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master has been updated.

Status: Needs review => Merged

For more details, see:
https://code.launchpad.net/~3v1n0/ubuntu/+source/gdm3/+git/gdm3/+merge/356861
-- 
Your team Ubuntu Desktop is requested to review the proposed merge of 
~3v1n0/ubuntu/+source/gdm3:ubuntu/master into 
~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master.

-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop


[Merge] ~3v1n0/ubuntu/+source/gdm3:ubuntu/master into ~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master

2018-10-17 Thread Treviño
Marco Trevisan (Treviño) has proposed merging 
~3v1n0/ubuntu/+source/gdm3:ubuntu/master into 
~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master.

Requested reviews:
  Ubuntu Desktop (ubuntu-desktop)
Related bugs:
  Bug #1794280 in gdm3 (Ubuntu): "gdm doesn't start on a fresh installation of 
Cosmic Desktop"
  https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1794280

For more details, see:
https://code.launchpad.net/~3v1n0/ubuntu/+source/gdm3/+git/gdm3/+merge/356861
-- 
Your team Ubuntu Desktop is requested to review the proposed merge of 
~3v1n0/ubuntu/+source/gdm3:ubuntu/master into 
~ubuntu-desktop/ubuntu/+source/gdm3:ubuntu/master.
diff --git a/debian/changelog b/debian/changelog
index 29491af..9b30904 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+gdm3 (3.30.1-1ubuntu4) UNRELEASED; urgency=medium
+
+  * d/p/u/gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch:
+- Wait for the first valid gdm device on pre-start (LP: #1794280)
++ debian/control:
+  - Add build-depends on libgudev-1.0-dev
+
+ -- Marco Trevisan (Treviño)   Tue, 16 Oct 2018 14:08:32 -0500
+
 gdm3 (3.30.1-1ubuntu3) cosmic; urgency=medium
 
   * Build-Depend on gjs so that we don't produce uninstallable packages
diff --git a/debian/patches/series b/debian/patches/series
index b7dd121..cab417d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -12,3 +12,4 @@ ubuntu_config_error_dialog.patch
 ubuntu_dont_set_language_env.patch
 ubuntu_prefer_ubuntu_session_fallback.patch
 ubuntu_revert_nvidia_wayland_blacklist.patch
+ubuntu/gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch
diff --git a/debian/patches/ubuntu/gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch b/debian/patches/ubuntu/gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch
new file mode 100644
index 000..b33510e
--- /dev/null
+++ b/debian/patches/ubuntu/gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch
@@ -0,0 +1,169 @@
+From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= 
+Date: Tue, 16 Oct 2018 20:59:23 +0200
+Subject: gdm3.service: wait for drm device before trying to start it
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1794280
+Forwarded: not-needed
+---
+ configure.ac |  1 +
+ data/Makefile.am |  1 +
+ data/gdm.service.in  |  4 +++
+ utils/Makefile.am|  9 +
+ utils/gdm-wait-for-drm.c | 85 
+ 5 files changed, 100 insertions(+)
+ create mode 100644 utils/gdm-wait-for-drm.c
+
+diff --git a/configure.ac b/configure.ac
+index f763632..37fa2ec 100644
+--- a/configure.ac
 b/configure.ac
+@@ -76,6 +76,7 @@ PKG_CHECK_MODULES(COMMON,
+ gobject-2.0 >= $GLIB_REQUIRED_VERSION
+ gio-2.0 >= $GLIB_REQUIRED_VERSION
+ gio-unix-2.0 >= $GLIB_REQUIRED_VERSION
++gudev-1.0
+ )
+ AC_SUBST(COMMON_CFLAGS)
+ AC_SUBST(COMMON_LIBS)
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 4aae042..f5b185a 100644
+--- a/data/Makefile.am
 b/data/Makefile.am
+@@ -208,6 +208,7 @@ systemdsystemunit =
+ gdm.service: $(srcdir)/gdm.service.in
+ 	$(AM_V_GEN)sed \
+ 		-e 's,[@]sbindir[@],$(sbindir),g' \
++		-e 's,[@]libexecdir[@],$(libexecdir),g' \
+ 		-e 's,[@]GDM_INITIAL_VT[@],$(GDM_INITIAL_VT),g' \
+ 		-e 's,[@]LANG_CONFIG_FILE[@],$(LANG_CONFIG_FILE),g' \
+ 		-e 's,[@]PLYMOUTH_QUIT_SERVICE[@],$(PLYMOUTH_QUIT_SERVICE),g' \
+diff --git a/data/gdm.service.in b/data/gdm.service.in
+index 446e173..89c0bbc 100644
+--- a/data/gdm.service.in
 b/data/gdm.service.in
+@@ -32,3 +32,7 @@ StandardError=inherit
+ EnvironmentFile=-@LANG_CONFIG_FILE@
+ ExecReload=/usr/share/gdm/generate-config
+ ExecReload=/bin/kill -SIGHUP $MAINPID
++ExecStartPre=@libexecdir@/gdm-wait-for-drm
++
++[Install]
++Alias=display-manager.service
+diff --git a/utils/Makefile.am b/utils/Makefile.am
+index babe890..3eb43c3 100644
+--- a/utils/Makefile.am
 b/utils/Makefile.am
+@@ -35,6 +35,7 @@ bin_PROGRAMS = \
+ 
+ libexec_PROGRAMS = \
+ 	gdm-disable-wayland	\
++	gdm-wait-for-drm	\
+ 	$(NULL)
+ 
+ gdmflexiserver_LDADD =		\
+@@ -63,6 +64,14 @@ gdm_disable_wayland_SOURCES =	\
+ 	gdm-disable-wayland.c	\
+ 	$(NULL)
+ 
++gdm_wait_for_drm_LDADD =	\
++	$(COMMON_LIBS)		\
++	$(NULL)
++
++gdm_wait_for_drm_SOURCES =	\
++	gdm-wait-for-drm.c	\
++	$(NULL)
++
+ CLEANFILES = 			\
+ 	$(NULL)
+ 
+diff --git a/utils/gdm-wait-for-drm.c b/utils/gdm-wait-for-drm.c
+new file mode 100644
+index 000..741134e
+--- /dev/null
 b/utils/gdm-wait-for-drm.c
+@@ -0,0 +1,85 @@
++#include 
++#include 
++
++static gboolean
++handle_device (GUdevDevice *device)
++{
++const gchar * const * tags;
++tags = g_udev_device_get_tags (device);
++g_debug ("%s\n", g_udev_device_get_name (device));
++if (g_strv_contains (tags, "master-of-seat"))
++{
++g_debug ("is seat master\n");
++return TRUE;
++}
++
++return FALSE;
++}
++
++sta