diff --git a/_service b/_service
new file mode 100644
index 0000000..4e92723
--- /dev/null
+++ b/_service
@@ -0,0 +1,19 @@
+
+
+
+ git
+ https://gitlab.gnome.org/GNOME/gdm.git
+ 46.0
+ @PARENT_TAG@+@TAG_OFFSET@
+ (.*)\+0
+ \1
+
+
+
+
+ *.tar
+ zst
+
+
+
+
diff --git a/gdm-45.0.1.tar.xz b/gdm-45.0.1.tar.xz
deleted file mode 100644
index 46f0aef..0000000
--- a/gdm-45.0.1.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6572578c05e3c6569d6ed269f7de2aaf3a035657654586d8243907bb7a6ffa85
-size 855004
diff --git a/gdm-46.0.obscpio b/gdm-46.0.obscpio
new file mode 100644
index 0000000..9d9c7c3
--- /dev/null
+++ b/gdm-46.0.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd3e5b06119393b441c86c3b928bd55efd4c07d68de582b5da41b8c625f806da
+size 8416269
diff --git a/gdm-default-wm.patch b/gdm-default-wm.patch
index 6258659..06de3cf 100644
--- a/gdm-default-wm.patch
+++ b/gdm-default-wm.patch
@@ -1,15 +1,17 @@
---- a/daemon/gdm-session.c
-+++ b/daemon/gdm-session.c
-@@ -43,6 +43,8 @@
- #include
- #include
+Index: gdm-46.rc/daemon/gdm-session.c
+===================================================================
+--- gdm-46.rc.orig/daemon/gdm-session.c
++++ gdm-46.rc/daemon/gdm-session.c
+@@ -47,6 +47,8 @@
+
+ #include
+#include "gdm-sysconfig.h"
+
#include "gdm-session.h"
#include "gdm-session-glue.h"
#include "gdm-dbus-util.h"
-@@ -589,6 +591,14 @@ get_fallback_session_name (GdmSession *s
+@@ -618,6 +620,14 @@ get_fallback_session_name (GdmSession *s
}
}
diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch
index 6c94370..d41c90e 100644
--- a/gdm-sysconfig-settings.patch
+++ b/gdm-sysconfig-settings.patch
@@ -1,5 +1,7 @@
+Index: gdm-46.alpha/common/gdm-settings-system-backend.c
+===================================================================
--- /dev/null
-+++ b/common/gdm-settings-system-backend.c
++++ gdm-46.alpha/common/gdm-settings-system-backend.c
@@ -0,0 +1,372 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -373,8 +375,10 @@
+
+ return GDM_SETTINGS_BACKEND (object);
+}
+Index: gdm-46.alpha/common/gdm-settings-system-backend.h
+===================================================================
--- /dev/null
-+++ b/common/gdm-settings-system-backend.h
++++ gdm-46.alpha/common/gdm-settings-system-backend.h
@@ -0,0 +1,56 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -432,8 +436,10 @@
+G_END_DECLS
+
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
---- a/common/gdm-settings.c
-+++ b/common/gdm-settings.c
+Index: gdm-46.alpha/common/gdm-settings.c
+===================================================================
+--- gdm-46.alpha.orig/common/gdm-settings.c
++++ gdm-46.alpha/common/gdm-settings.c
@@ -38,6 +38,7 @@
#include "gdm-settings.h"
@@ -453,8 +459,10 @@
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
if (backend)
settings->backends = g_list_prepend (settings->backends, backend);
+Index: gdm-46.alpha/common/gdm-sysconfig.c
+===================================================================
--- /dev/null
-+++ b/common/gdm-sysconfig.c
++++ gdm-46.alpha/common/gdm-sysconfig.c
@@ -0,0 +1,484 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -726,7 +734,7 @@
+}
+
+static gchar *
-+get_value (const gchar **lines, const gchar *key)
++get_value (gchar **lines, const gchar *key)
+{
+ gchar *value = NULL;
+ gchar *key_normal;
@@ -832,7 +840,7 @@
+}
+
+gboolean
-+gdm_sysconfig_save_file (const gchar *file_name, const gchar **sysconfig)
++gdm_sysconfig_save_file (const gchar *file_name, gchar **sysconfig)
+{
+ g_return_val_if_fail (file_name != NULL, FALSE);
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
@@ -846,7 +854,7 @@
+ g_return_val_if_fail (sysconfig != NULL, NULL);
+ g_return_val_if_fail (key != NULL, NULL);
+
-+ return get_value (sysconfig, key);
++ return get_value ((gchar **)sysconfig, key);
+}
+
+gboolean
@@ -862,33 +870,33 @@
+gboolean
+gdm_sysconfig_get_value_boolean (const gchar **sysconfig, const gchar *key, gboolean *value)
+{
-+ char *val;
-+ gboolean val_bool;
++ char *val;
++ gboolean val_bool;
+
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
+ g_return_val_if_fail (key != NULL, FALSE);
+
-+ val = get_value (sysconfig, key);
-+ if (val == NULL) {
-+ return FALSE;
-+ }
++ val = get_value ((gchar **)sysconfig, key);
++ if (val == NULL) {
++ return FALSE;
++ }
+
+ if (!strcasecmp (val, "yes")) {
-+ val_bool = TRUE;
-+ } else if (!strcasecmp (val, "no")) {
-+ val_bool = FALSE;
-+ } else {
-+ g_free (val);
-+ return FALSE;
-+ }
++ val_bool = TRUE;
++ } else if (!strcasecmp (val, "no")) {
++ val_bool = FALSE;
++ } else {
++ g_free (val);
++ return FALSE;
++ }
+
-+ g_free (val);
++ g_free (val);
+
-+ if (value != NULL) {
-+ *value = val_bool;
-+ }
++ if (value != NULL) {
++ *value = val_bool;
++ }
+
-+ return TRUE;
++ return TRUE;
+}
+
+gboolean
@@ -940,8 +948,10 @@
+ g_strfreev (lines);
+ return result;
+}
+Index: gdm-46.alpha/common/gdm-sysconfig.h
+===================================================================
--- /dev/null
-+++ b/common/gdm-sysconfig.h
++++ gdm-46.alpha/common/gdm-sysconfig.h
@@ -0,0 +1,43 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -972,7 +982,7 @@
+G_BEGIN_DECLS
+
+gchar **gdm_sysconfig_load_file (const gchar *file_name);
-+gboolean gdm_sysconfig_save_file (const gchar *file_name, const gchar **sysconfig);
++gboolean gdm_sysconfig_save_file (const gchar *file_name, gchar **sysconfig);
+
+gchar *gdm_sysconfig_get_value (const gchar **sysconfig, const gchar *key);
+gboolean gdm_sysconfig_set_value (gchar **sysconfig, const gchar *key, const gchar *value);
@@ -986,8 +996,10 @@
+G_END_DECLS
+
+#endif /* __GDM_SYSCONFIG_H */
---- a/data/gdm.conf-custom.in
-+++ b/data/gdm.conf-custom.in
+Index: gdm-46.alpha/data/gdm.conf-custom.in
+===================================================================
+--- gdm-46.alpha.orig/data/gdm.conf-custom.in
++++ gdm-46.alpha/data/gdm.conf-custom.in
@@ -1,4 +1,7 @@
# GDM configuration storage
+#
@@ -996,8 +1008,10 @@
[daemon]
# Uncomment the line below to force the login screen to use Xorg
---- a/common/meson.build
-+++ b/common/meson.build
+Index: gdm-46.alpha/common/meson.build
+===================================================================
+--- gdm-46.alpha.orig/common/meson.build
++++ gdm-46.alpha/common/meson.build
@@ -5,9 +5,11 @@ libgdmcommon_src = files(
'gdm-profile.c',
'gdm-settings-backend.c',
diff --git a/gdm-xvnc-start-session-failed.patch b/gdm-xvnc-start-session-failed.patch
index 6c13786..7de9f69 100644
--- a/gdm-xvnc-start-session-failed.patch
+++ b/gdm-xvnc-start-session-failed.patch
@@ -12,13 +12,13 @@ same Xorg/Xvnc server), otherwise, the vncserver would be closed.
daemon/gdm-session.c | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index 09b6ce52e..a4c4b2dcf 100644
---- a/daemon/gdm-session.c
-+++ b/daemon/gdm-session.c
-@@ -3648,6 +3648,11 @@ gdm_session_get_display_mode (GdmSession *self)
- self->is_program_session? "yes" : "no",
- self->display_seat_id);
+Index: gdm-46.rc/daemon/gdm-session.c
+===================================================================
+--- gdm-46.rc.orig/daemon/gdm-session.c
++++ gdm-46.rc/daemon/gdm-session.c
+@@ -3671,6 +3671,11 @@ gdm_session_get_display_mode (GdmSession
+ return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
+ }
+ if (self->display_seat_id == NULL &&
+ g_strcmp0 (self->session_type, "wayland") != 0) {
@@ -28,6 +28,3 @@ index 09b6ce52e..a4c4b2dcf 100644
if (g_strcmp0 (self->display_seat_id, "seat0") != 0) {
return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED;
}
---
-GitLab
-
diff --git a/gdm.changes b/gdm.changes
index 1d44307..f11dacb 100644
--- a/gdm.changes
+++ b/gdm.changes
@@ -1,3 +1,46 @@
+-------------------------------------------------------------------
+Tue Mar 19 07:49:19 UTC 2024 - Dominique Leuenberger
+
+- Update to version 46.0:
+ + PAM improvements.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Mar 4 08:17:19 UTC 2024 - Dominique Leuenberger
+
+- Update to version 46.rc:
+ + Support for killing conflicting sessions at login time.
+ + XDMCP fix.
+ + Use wayland by default on certain server chips.
+ + Fix pam extension size computation.
+ + Introspection fix.
+ + Fix for homed users.
+ + Updated translations.
+- Rebase gdm-default-wm.patch and
+ gdm-xvnc-start-session-failed.patch.
+
+-------------------------------------------------------------------
+Mon Mar 4 03:02:11 UTC 2024 - Xiaoguang Wang
+
+- Rebase gdm-sysconfig-settings.patch: to fix build with GCC 14.
+
+-------------------------------------------------------------------
+Mon Mar 4 02:20:49 UTC 2024 - Dominique Leuenberger
+
+- Update to version 46.alpha:
+ + Support remote login from gnome-remote-desktop (and hopefuly
+ nicedcv in the future).
+ + Support new JSON pam extension.
+ + Fix build with user-display-server=false.
+ + Minor clean ups.
+ + Move private D-Bus sockets to private directory.
+ + Build goo fixes.
+ + Warning fixes.
+ + Updated translations.
+- Rebase gdm-default-wm.patch.
+- Add pkgconfig(json-glib-1.0) BuildRequires: new dependency.
+- Convert to source service for easier updating.
+
-------------------------------------------------------------------
Mon Mar 4 01:24:06 UTC 2024 - Xiaoguang Wang
diff --git a/gdm.obsinfo b/gdm.obsinfo
new file mode 100644
index 0000000..e14f5ee
--- /dev/null
+++ b/gdm.obsinfo
@@ -0,0 +1,4 @@
+name: gdm
+version: 46.0
+mtime: 1710790580
+commit: a5b591cd8d1db5c5d1ebe67d10ec3fe57b9bbded
diff --git a/gdm.spec b/gdm.spec
index 27f9886..86fb4cc 100644
--- a/gdm.spec
+++ b/gdm.spec
@@ -27,14 +27,14 @@
%endif
Name: gdm
-Version: 45.0.1
+Version: 46.0
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/45/%{name}-%{version}.tar.xz
+Source0: %{name}-%{version}.tar.zst
Source1: gdm.pamd
Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd
@@ -112,6 +112,7 @@ BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 2.91.1
BuildRequires: pkgconfig(gudev-1.0) >= 232
BuildRequires: pkgconfig(iso-codes)
+BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libcanberra-gtk3) >= 0.4
BuildRequires: pkgconfig(libkeyutils)
BuildRequires: pkgconfig(libsystemd)
@@ -384,6 +385,7 @@ dconf update
%config %{_sysconfdir}/gdm/[IPXl]*
%{_sbindir}/gdm
%{_bindir}/gdm
+%{_bindir}/gdm-config
%{_bindir}/gdm-screenshot
%dir %{_datadir}/dconf
%dir %{_datadir}/dconf/profile