diff --git a/_service b/_service
new file mode 100644
index 0000000..58f7c28
--- /dev/null
+++ b/_service
@@ -0,0 +1,16 @@
+
+
+ git
+ https://gitlab.gnome.org/GNOME/gdm.git
+ gnome-3-32
+ @PARENT_TAG@+@TAG_OFFSET@
+ enable
+
+
+
+ *.tar
+ xz
+
+
+
+
diff --git a/_servicedata b/_servicedata
new file mode 100644
index 0000000..bfc02ef
--- /dev/null
+++ b/_servicedata
@@ -0,0 +1,4 @@
+
+
+ https://gitlab.gnome.org/GNOME/gdm.git
+ 0e31d869aa20e13b346af6ef6aa11cf72ba2e833
\ No newline at end of file
diff --git a/gdm-3.32.0+2.obscpio b/gdm-3.32.0+2.obscpio
new file mode 100644
index 0000000..1081f89
--- /dev/null
+++ b/gdm-3.32.0+2.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0cc3a6ed7b243b359dd7a478eab7c511958230a37e331c25e5432b05a22498cc
+size 7465997
diff --git a/gdm-3.32.0.tar.xz b/gdm-3.32.0.tar.xz
deleted file mode 100644
index ce00d71..0000000
--- a/gdm-3.32.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:643db0c8c5089a96282b4c259b8823ca6dfad1ead6f2d0025d1c1211d36fd78b
-size 1262344
diff --git a/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch b/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
index b4d3b87..e6f6412 100644
--- a/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
+++ b/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
@@ -9,9 +9,10 @@ X server will be started under root. The same way as if gdm was built with
This allows system to run X server under root if and only-if necessary.
---
-diff -urp gdm-3.32.0.orig/daemon/gdm-local-display-factory.c gdm-3.32.0/daemon/gdm-local-display-factory.c
---- gdm-3.32.0.orig/daemon/gdm-local-display-factory.c 2019-03-05 09:10:56.000000000 -0600
-+++ gdm-3.32.0/daemon/gdm-local-display-factory.c 2019-03-19 11:31:18.093838985 -0500
+Index: gdm-3.32.0+2/daemon/gdm-local-display-factory.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-local-display-factory.c
++++ gdm-3.32.0+2/daemon/gdm-local-display-factory.c
@@ -231,11 +231,12 @@ gdm_local_display_factory_create_transie
g_debug ("GdmLocalDisplayFactory: Creating transient display");
@@ -47,10 +48,11 @@ diff -urp gdm-3.32.0.orig/daemon/gdm-local-display-factory.c gdm-3.32.0/daemon/g
display = gdm_local_display_new ();
if (session_type != NULL) {
g_object_set (G_OBJECT (display), "session-type", session_type, NULL);
-diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
---- gdm-3.32.0.orig/daemon/gdm-session.c 2019-03-05 09:10:56.000000000 -0600
-+++ gdm-3.32.0/daemon/gdm-session.c 2019-03-19 10:42:39.493665629 -0500
-@@ -371,7 +371,11 @@ get_system_session_dirs (GdmSession *sel
+Index: gdm-3.32.0+2/daemon/gdm-session.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-session.c
++++ gdm-3.32.0+2/daemon/gdm-session.c
+@@ -373,7 +373,11 @@ get_system_session_dirs (GdmSession *sel
#ifdef ENABLE_WAYLAND_SUPPORT
if (!self->ignore_wayland) {
#ifdef ENABLE_USER_DISPLAY_SERVER
@@ -63,7 +65,7 @@ diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
for (i = 0; system_data_dirs[i]; i++) {
gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
-@@ -3258,8 +3262,10 @@ gdm_session_get_display_mode (GdmSession
+@@ -3276,8 +3280,10 @@ gdm_session_get_display_mode (GdmSession
* right now. It will die with an error if logind devices
* are paused when handed out.
*/
@@ -76,7 +78,7 @@ diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
#ifdef ENABLE_WAYLAND_SUPPORT
/* Wayland sessions are for now assumed to run in a
-@@ -3270,7 +3276,6 @@ gdm_session_get_display_mode (GdmSession
+@@ -3288,7 +3294,6 @@ gdm_session_get_display_mode (GdmSession
}
#endif
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
diff --git a/gdm-fails-to-restart-gnome-shell.patch b/gdm-fails-to-restart-gnome-shell.patch
index eace585..f5ae0b1 100644
--- a/gdm-fails-to-restart-gnome-shell.patch
+++ b/gdm-fails-to-restart-gnome-shell.patch
@@ -1,6 +1,7 @@
-diff -urp gdm-3.32.0.orig/daemon/gdm-display.c gdm-3.32.0/daemon/gdm-display.c
---- gdm-3.32.0.orig/daemon/gdm-display.c 2019-03-05 09:10:56.000000000 -0600
-+++ gdm-3.32.0/daemon/gdm-display.c 2019-03-18 17:17:12.220630463 -0500
+Index: gdm-3.32.0+2/daemon/gdm-display.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-display.c
++++ gdm-3.32.0+2/daemon/gdm-display.c
@@ -696,7 +696,7 @@ gdm_display_unmanage (GdmDisplay *self)
}
diff --git a/gdm-kill-user-session.patch b/gdm-kill-user-session.patch
index 5e5243b..39d782c 100644
--- a/gdm-kill-user-session.patch
+++ b/gdm-kill-user-session.patch
@@ -1,7 +1,7 @@
-diff --git a/daemon/gdm-display-store.c b/daemon/gdm-display-store.c
-index fd24334..8c1ae25 100644
---- a/daemon/gdm-display-store.c
-+++ b/daemon/gdm-display-store.c
+Index: gdm-3.32.0+2/daemon/gdm-display-store.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-display-store.c
++++ gdm-3.32.0+2/daemon/gdm-display-store.c
@@ -136,6 +136,35 @@ typedef struct
gpointer user_data;
} FindClosure;
@@ -38,11 +38,11 @@ index fd24334..8c1ae25 100644
static gboolean
find_func (const char *id,
StoredDisplay *stored_display,
-diff --git a/daemon/gdm-display-store.h b/daemon/gdm-display-store.h
-index 0aff8ee..cd69518 100644
---- a/daemon/gdm-display-store.h
-+++ b/daemon/gdm-display-store.h
-@@ -86,6 +86,8 @@ GdmDisplay * gdm_display_store_find (GdmDisplayStore
+Index: gdm-3.32.0+2/daemon/gdm-display-store.h
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-display-store.h
++++ gdm-3.32.0+2/daemon/gdm-display-store.h
+@@ -86,6 +86,8 @@ GdmDisplay * gdm_display_store_fi
GdmDisplayStoreFunc predicate,
gpointer user_data);
@@ -51,11 +51,11 @@ index 0aff8ee..cd69518 100644
G_END_DECLS
-diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
-index cb9f662..a971ba3 100644
---- a/daemon/gdm-manager.c
-+++ b/daemon/gdm-manager.c
-@@ -2703,9 +2703,7 @@ unexport_display (const char *id,
+Index: gdm-3.32.0+2/daemon/gdm-manager.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-manager.c
++++ gdm-3.32.0+2/daemon/gdm-manager.c
+@@ -2735,9 +2735,7 @@ unexport_display (const char *id,
}
static void
@@ -66,7 +66,7 @@ index cb9f662..a971ba3 100644
{
gdm_display_stop_greeter_session (display);
if (gdm_display_get_status (display) == GDM_DISPLAY_MANAGED)
-@@ -2717,6 +2715,7 @@ static void
+@@ -2749,6 +2747,7 @@ static void
gdm_manager_dispose (GObject *object)
{
GdmManager *manager;
@@ -74,7 +74,7 @@ index cb9f662..a971ba3 100644
g_return_if_fail (object != NULL);
g_return_if_fail (GDM_IS_MANAGER (object));
-@@ -2758,9 +2757,11 @@ gdm_manager_dispose (GObject *object)
+@@ -2790,9 +2789,11 @@ gdm_manager_dispose (GObject *object)
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (manager));
}
@@ -89,10 +89,10 @@ index cb9f662..a971ba3 100644
gdm_display_store_clear (manager->priv->display_store);
-diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
-index 06e5a6a..07642cd 100644
---- a/daemon/gdm-session-worker.c
-+++ b/daemon/gdm-session-worker.c
+Index: gdm-3.32.0+2/daemon/gdm-session-worker.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-session-worker.c
++++ gdm-3.32.0+2/daemon/gdm-session-worker.c
@@ -34,6 +34,7 @@
#include
#include
@@ -118,21 +118,21 @@ index 06e5a6a..07642cd 100644
};
static void gdm_session_worker_class_init (GdmSessionWorkerClass *klass);
-@@ -2455,6 +2459,13 @@ gdm_session_worker_set_is_reauth_session (GdmSessionWorker *worker,
- worker->priv->is_reauth_session = is_reauth_session;
+@@ -2456,6 +2460,13 @@ gdm_session_worker_set_is_reauth_session
}
-+static void
+ static void
+gdm_session_worker_set_main_loop (GdmSessionWorker *worker,
+ GMainLoop *main_loop)
+{
+ worker->priv->main_loop = main_loop;
+}
+
- static void
++static void
gdm_session_worker_set_property (GObject *object,
guint prop_id,
-@@ -2472,6 +2483,9 @@ gdm_session_worker_set_property (GObject *object,
+ const GValue *value,
+@@ -2472,6 +2483,9 @@ gdm_session_worker_set_property (GObject
case PROP_IS_REAUTH_SESSION:
gdm_session_worker_set_is_reauth_session (self, g_value_get_boolean (value));
break;
@@ -142,7 +142,7 @@ index 06e5a6a..07642cd 100644
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -2495,6 +2509,9 @@ gdm_session_worker_get_property (GObject *object,
+@@ -2495,6 +2509,9 @@ gdm_session_worker_get_property (GObject
case PROP_IS_REAUTH_SESSION:
g_value_set_boolean (value, self->priv->is_reauth_session);
break;
@@ -152,7 +152,7 @@ index 06e5a6a..07642cd 100644
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -2764,6 +2781,16 @@ do_open_session (GdmSessionWorker *worker)
+@@ -2764,6 +2781,16 @@ do_open_session (GdmSessionWorker *worke
worker->priv->pending_invocation = NULL;
}
@@ -169,7 +169,7 @@ index 06e5a6a..07642cd 100644
static void
do_start_session (GdmSessionWorker *worker)
{
-@@ -2773,6 +2800,9 @@ do_start_session (GdmSessionWorker *worker)
+@@ -2773,6 +2800,9 @@ do_start_session (GdmSessionWorker *work
error = NULL;
res = gdm_session_worker_start_session (worker, &error);
if (res) {
@@ -179,7 +179,7 @@ index 06e5a6a..07642cd 100644
gdm_dbus_worker_complete_start_program (GDM_DBUS_WORKER (worker),
worker->priv->pending_invocation,
worker->priv->child_pid);
-@@ -3471,6 +3501,13 @@ gdm_session_worker_class_init (GdmSessionWorkerClass *klass)
+@@ -3471,6 +3501,13 @@ gdm_session_worker_class_init (GdmSessio
"is reauth session",
FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
@@ -193,7 +193,7 @@ index 06e5a6a..07642cd 100644
}
static void
-@@ -3561,13 +3598,15 @@ gdm_session_worker_finalize (GObject *object)
+@@ -3561,13 +3598,15 @@ gdm_session_worker_finalize (GObject *ob
GdmSessionWorker *
gdm_session_worker_new (const char *address,
@@ -210,10 +210,10 @@ index 06e5a6a..07642cd 100644
NULL);
return GDM_SESSION_WORKER (object);
-diff --git a/daemon/gdm-session-worker.h b/daemon/gdm-session-worker.h
-index 5603e80..24979e4 100644
---- a/daemon/gdm-session-worker.h
-+++ b/daemon/gdm-session-worker.h
+Index: gdm-3.32.0+2/daemon/gdm-session-worker.h
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/gdm-session-worker.h
++++ gdm-3.32.0+2/daemon/gdm-session-worker.h
@@ -51,6 +51,7 @@ typedef struct
GType gdm_session_worker_get_type (void);
@@ -223,10 +223,10 @@ index 5603e80..24979e4 100644
+ GMainLoop *main_loop) G_GNUC_MALLOC;
G_END_DECLS
#endif /* GDM_SESSION_WORKER_H */
-diff --git a/daemon/session-worker-main.c b/daemon/session-worker-main.c
-index 4a3a8eb..da3e7c6 100644
---- a/daemon/session-worker-main.c
-+++ b/daemon/session-worker-main.c
+Index: gdm-3.32.0+2/daemon/session-worker-main.c
+===================================================================
+--- gdm-3.32.0+2.orig/daemon/session-worker-main.c
++++ gdm-3.32.0+2/daemon/session-worker-main.c
@@ -64,12 +64,6 @@ is_debug_set (void)
return debug;
}
diff --git a/gdm-remove-duplicate-sessions.patch b/gdm-remove-duplicate-sessions.patch
index 155309f..5ba9206 100644
--- a/gdm-remove-duplicate-sessions.patch
+++ b/gdm-remove-duplicate-sessions.patch
@@ -1,8 +1,8 @@
-diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
-index afbc5c0..30eaa14 100644
---- a/libgdm/gdm-sessions.c
-+++ b/libgdm/gdm-sessions.c
-@@ -111,14 +111,6 @@ key_file_is_relevant (GKeyFile *key_file)
+Index: gdm-3.32.0+2/libgdm/gdm-sessions.c
+===================================================================
+--- gdm-3.32.0+2.orig/libgdm/gdm-sessions.c
++++ gdm-3.32.0+2/libgdm/gdm-sessions.c
+@@ -111,14 +111,6 @@ key_file_is_relevant (GKeyFile *key_
return TRUE;
}
@@ -17,7 +17,7 @@ index afbc5c0..30eaa14 100644
static void
load_session_file (const char *id,
const char *path)
-@@ -126,7 +118,7 @@ load_session_file (const char *id,
+@@ -126,7 +118,7 @@ load_session_file (const char
GKeyFile *key_file;
GError *error;
gboolean res;
@@ -26,7 +26,7 @@ index afbc5c0..30eaa14 100644
key_file = g_key_file_new ();
-@@ -162,13 +154,6 @@ load_session_file (const char *id,
+@@ -162,13 +154,6 @@ load_session_file (const char
session->translated_name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Name", NULL, NULL);
session->translated_comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL);
@@ -40,7 +40,7 @@ index afbc5c0..30eaa14 100644
g_hash_table_insert (gdm_available_sessions_map,
g_strdup (id),
session);
-@@ -176,6 +161,29 @@ load_session_file (const char *id,
+@@ -176,6 +161,29 @@ load_session_file (const char
g_key_file_free (key_file);
}
@@ -70,7 +70,7 @@ index afbc5c0..30eaa14 100644
static void
collect_sessions_from_directory (const char *dirname)
{
-@@ -230,6 +238,7 @@ collect_sessions_from_directory (const char *dirname)
+@@ -230,6 +238,7 @@ collect_sessions_from_directory (const c
static void
collect_sessions (void)
{
@@ -78,8 +78,8 @@ index afbc5c0..30eaa14 100644
GArray *xorg_search_array = NULL;
GArray *wayland_search_array = NULL;
gchar *session_dir = NULL;
-@@ -242,6 +251,8 @@ collect_sessions (void)
- NULL
+@@ -241,6 +250,8 @@ collect_sessions (void)
+ DATADIR "/xsessions/",
};
+ names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
@@ -87,7 +87,7 @@ index afbc5c0..30eaa14 100644
xorg_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
const gchar * const *system_data_dirs = g_get_system_data_dirs ();
-@@ -294,6 +305,9 @@ collect_sessions (void)
+@@ -292,6 +303,9 @@ collect_sessions (void)
g_array_free (wayland_search_array, TRUE);
#endif
diff --git a/gdm-switch-to-tty1.patch b/gdm-switch-to-tty1.patch
index 43f74aa..3e42e5c 100644
--- a/gdm-switch-to-tty1.patch
+++ b/gdm-switch-to-tty1.patch
@@ -1,7 +1,7 @@
-Index: gdm-3.26.2.1/daemon/main.c
+Index: gdm-3.32.0+2/daemon/main.c
===================================================================
---- gdm-3.26.2.1.orig/daemon/main.c
-+++ gdm-3.26.2.1/daemon/main.c
+--- gdm-3.32.0+2.orig/daemon/main.c
++++ gdm-3.32.0+2/daemon/main.c
@@ -61,6 +61,31 @@ static GdmSettings *settings =
static uid_t gdm_uid = -1;
static gid_t gdm_gid = -1;
@@ -47,7 +47,7 @@ Index: gdm-3.26.2.1/daemon/main.c
static gboolean
on_sighup_cb (gpointer user_data)
{
-@@ -396,6 +427,7 @@ main (int argc,
+@@ -395,6 +426,7 @@ main (int argc,
g_main_loop_run (main_loop);
g_debug ("GDM finished, cleaning up...");
@@ -55,7 +55,7 @@ Index: gdm-3.26.2.1/daemon/main.c
g_clear_object (&manager);
g_clear_object (&settings);
-@@ -403,6 +435,10 @@ main (int argc,
+@@ -402,6 +434,10 @@ main (int argc,
gdm_settings_direct_shutdown ();
gdm_log_shutdown ();
diff --git a/gdm.changes b/gdm.changes
index a6be383..400a512 100644
--- a/gdm.changes
+++ b/gdm.changes
@@ -1,3 +1,14 @@
+-------------------------------------------------------------------
+Fri Aug 02 19:05:30 UTC 2019 - bjorn.lie@gmail.com
+
+- Update to version 3.32.0+2:
+ + Remove erroneous NULL from session search directories.
+- Switch to git checkout via source service, upstream is lacking in
+ stable releases. In the future we will use a stable tag when
+ possible, but when upstream slacks off, we will use a checkout of
+ the stable branch.
+- Refresh patches with quilt.
+
-------------------------------------------------------------------
Thu May 23 08:40:18 UTC 2019 - Dominique Leuenberger
diff --git a/gdm.obsinfo b/gdm.obsinfo
new file mode 100644
index 0000000..65da379
--- /dev/null
+++ b/gdm.obsinfo
@@ -0,0 +1,5 @@
+name: gdm
+version: 3.32.0+2
+mtime: 1552499029
+commit: 820f90f5a78b81b2e4610da14627266c2135c8b0
+
diff --git a/gdm.spec b/gdm.spec
index 4c72e91..16d4158 100644
--- a/gdm.spec
+++ b/gdm.spec
@@ -20,13 +20,14 @@
# FIXME: need to check what should be done to enable this (at least adapt the pam files). See bnc#699999
%define enable_split_authentication 0
Name: gdm
-Version: 3.32.0
+Version: 3.32.0+2
Release: 0
Summary: The GNOME Display Manager
License: GPL-2.0-or-later
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Projects/GDM
-Source0: https://download.gnome.org/sources/gdm/3.32/%{name}-%{version}.tar.xz
+# We are using source services, so no download url for source
+Source0: %{name}-%{version}.tar.xz
Source1: gdm.pamd
Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd
@@ -221,9 +222,6 @@ cp %{SOURCE8} .
%endif
%patch14 -p1
-# TODO: Hack still needed until https://gitlab.gnome.org/GNOME/gdm/issues/424 gets fixed and released.
-#rm data/61-gdm.rules
-
# SLE-only patches start at 1000
%if !0%{?is_opensuse}
%patch1000 -p1