From 44a0d17c3bdfbffc2ba244063364b67d7c7098848a8ac024d50705e7d2ba4b42 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 5 Aug 2019 09:58:27 +0000 Subject: [PATCH] Accepting request 720728 from GNOME:Next OBS-URL: https://build.opensuse.org/request/show/720728 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=428 --- _service | 16 ++++ _servicedata | 4 + gdm-3.32.0+2.obscpio | 3 + gdm-3.32.0.tar.xz | 3 - ...on-to-disable-starting-X-server-as-u.patch | 20 ++--- gdm-fails-to-restart-gnome-shell.patch | 7 +- gdm-kill-user-session.patch | 76 +++++++++---------- gdm-remove-duplicate-sessions.patch | 24 +++--- gdm-switch-to-tty1.patch | 10 +-- gdm.changes | 11 +++ gdm.obsinfo | 5 ++ gdm.spec | 8 +- 12 files changed, 112 insertions(+), 75 deletions(-) create mode 100644 _service create mode 100644 _servicedata create mode 100644 gdm-3.32.0+2.obscpio delete mode 100644 gdm-3.32.0.tar.xz create mode 100644 gdm.obsinfo 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