drop gdm fork #7
23
gdm/.gitattributes
vendored
23
gdm/.gitattributes
vendored
@@ -1,23 +0,0 @@
|
|||||||
## Default LFS
|
|
||||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
|
1
gdm/.gitignore
vendored
1
gdm/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
.osc
|
|
@@ -1,12 +0,0 @@
|
|||||||
gdm_vars() {
|
|
||||||
case "${DISPLAYMANAGER##*/}" in
|
|
||||||
gdm|GDM|Gnome|GNOME)
|
|
||||||
RELOADSIGNAL="-USR1"
|
|
||||||
DISPLAYMANAGER=/usr/sbin/gdm
|
|
||||||
PIDFILE=/run/gdm/gdm.pid
|
|
||||||
return 0 ;;
|
|
||||||
*) return 1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
19
gdm/_service
19
gdm/_service
@@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<services>
|
|
||||||
<service name="obs_scm" mode="manual">
|
|
||||||
<param name="scm">git</param>
|
|
||||||
<param name="url">https://gitlab.gnome.org/GNOME/gdm.git</param>
|
|
||||||
<param name="revision">48.0</param>
|
|
||||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
|
||||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
|
||||||
<param name="versionrewrite-replacement">\1</param>
|
|
||||||
<!-- <param name="changesgenerate">enable</param> -->
|
|
||||||
</service>
|
|
||||||
<service name="tar" mode="buildtime"/>
|
|
||||||
<service name="recompress" mode="buildtime">
|
|
||||||
<param name="file">*.tar</param>
|
|
||||||
<param name="compression">zst</param>
|
|
||||||
</service>
|
|
||||||
<service name="set_version" mode="manual" />
|
|
||||||
</services>
|
|
||||||
|
|
@@ -1,25 +0,0 @@
|
|||||||
load-module module-device-restore
|
|
||||||
load-module module-card-restore
|
|
||||||
load-module module-udev-detect
|
|
||||||
load-module module-native-protocol-unix
|
|
||||||
load-module module-default-device-restore
|
|
||||||
load-module module-always-sink
|
|
||||||
load-module module-intended-roles
|
|
||||||
load-module module-suspend-on-idle
|
|
||||||
load-module module-console-kit
|
|
||||||
load-module module-position-event-sounds
|
|
||||||
|
|
||||||
### unload driver modules for Bluetooth hardware
|
|
||||||
### this ensure Bluetooth headset are not stolen by gdm pulseaudio instance
|
|
||||||
.nofail
|
|
||||||
|
|
||||||
.ifexists module-bluetooth-policy.so
|
|
||||||
unload-module module-bluetooth-policy
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifexists module-bluetooth-discover.so
|
|
||||||
unload-module module-bluetooth-discover
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.fail
|
|
||||||
|
|
@@ -1,11 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
# GDM PAM configuration for autologin
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth required pam_permit.so
|
|
||||||
auth optional pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
account include common-account
|
|
||||||
password include common-password
|
|
||||||
session required pam_loginuid.so
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
session include common-session
|
|
@@ -1,14 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
# GDM PAM configuration for autologin
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth required pam_permit.so
|
|
||||||
auth optional pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
account substack common-account
|
|
||||||
account include postlogin-account
|
|
||||||
password substack common-password
|
|
||||||
password include postlogin-password
|
|
||||||
session required pam_loginuid.so
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
session substack common-session
|
|
||||||
session include postlogin-session
|
|
@@ -1,31 +0,0 @@
|
|||||||
Index: gdm-45.0.1/daemon/gdm-display.c
|
|
||||||
===================================================================
|
|
||||||
--- gdm-45.0.1.orig/daemon/gdm-display.c
|
|
||||||
+++ gdm-45.0.1/daemon/gdm-display.c
|
|
||||||
@@ -1622,6 +1622,9 @@ wants_initial_setup (GdmDisplay *self)
|
|
||||||
gboolean enabled = FALSE;
|
|
||||||
gboolean forced = FALSE;
|
|
||||||
|
|
||||||
+ g_autofree gchar *release_name = NULL;
|
|
||||||
+ release_name = g_get_os_info (G_OS_INFO_KEY_NAME);
|
|
||||||
+
|
|
||||||
priv = gdm_display_get_instance_private (self);
|
|
||||||
|
|
||||||
if (already_done_initial_setup ()) {
|
|
||||||
@@ -1658,6 +1661,16 @@ wants_initial_setup (GdmDisplay *self)
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (release_name == NULL) {
|
|
||||||
+ g_error ("GdmDisplay: Failed to parse os-release");
|
|
||||||
+ return enabled;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (g_str_has_prefix (release_name, "SLE")) {
|
|
||||||
+ g_debug ("GdmDisplay: Disable gnome-initial-setup on SLE");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,16 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
|
|
||||||
auth required pam_shells.so
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth requisite pam_faillock.so preauth
|
|
||||||
auth required pam_fprintd.so
|
|
||||||
auth optional pam_permit.so
|
|
||||||
auth [success=ok default=1] pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
|
|
||||||
account include common-account
|
|
||||||
|
|
||||||
password required pam_deny.so
|
|
||||||
|
|
||||||
session include common-session
|
|
||||||
session optional pam_gnome_keyring.so auto_start
|
|
@@ -1,18 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
|
|
||||||
auth required pam_shells.so
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth requisite pam_faillock.so preauth
|
|
||||||
auth required pam_fprintd.so
|
|
||||||
auth optional pam_permit.so
|
|
||||||
auth [success=ok default=1] pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
|
|
||||||
account substack common-account
|
|
||||||
account include postlogin-account
|
|
||||||
|
|
||||||
password required pam_deny.so
|
|
||||||
|
|
||||||
session substack common-session
|
|
||||||
session include postlogin-session
|
|
||||||
session optional pam_gnome_keyring.so auto_start
|
|
@@ -1,42 +0,0 @@
|
|||||||
From bf711cfd86536971404974a48c4db7298bda0e06 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alynx Zhou <alynx.zhou@gmail.com>
|
|
||||||
Date: Tue, 1 Apr 2025 11:18:05 +0800
|
|
||||||
Subject: [PATCH] gdm-config: Add missing "/" when building dconf paths
|
|
||||||
|
|
||||||
Closes #978
|
|
||||||
---
|
|
||||||
meson.build | 2 +-
|
|
||||||
utils/gdm-config.c | 4 ++--
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/meson.build b/meson.build
|
|
||||||
index eaa93a652..63be01011 100644
|
|
||||||
--- a/meson.build
|
|
||||||
+++ b/meson.build
|
|
||||||
@@ -222,7 +222,7 @@ endif
|
|
||||||
# dconf paths, we should fix dconf.pc to provide us more real data though
|
|
||||||
if dconf_dep.found()
|
|
||||||
dconf_prefix = dconf_dep.get_variable(pkgconfig: 'prefix')
|
|
||||||
- dconf_sysconfig = (dconf_prefix == '/usr') ? '/etc' : dconf_prefix + '/etc/'
|
|
||||||
+ dconf_sysconfig = (dconf_prefix == '/usr') ? '/etc' : dconf_prefix + '/etc'
|
|
||||||
dconf_datadir = dconf_prefix / 'share'
|
|
||||||
else
|
|
||||||
dconf_sysconfig = gdm_prefix / get_option('sysconfdir')
|
|
||||||
diff --git a/utils/gdm-config.c b/utils/gdm-config.c
|
|
||||||
index 70d5d4de9..82051a1b1 100644
|
|
||||||
--- a/utils/gdm-config.c
|
|
||||||
+++ b/utils/gdm-config.c
|
|
||||||
@@ -34,8 +34,8 @@
|
|
||||||
|
|
||||||
#include "gdm-common.h"
|
|
||||||
|
|
||||||
-#define DCONF_SYSCONFIG_PROFILES_PATH DCONF_SYSCONFIG "dconf/profile"
|
|
||||||
-#define DCONF_SYSCONFIG_DB_PATH DCONF_SYSCONFIG "dconf/db"
|
|
||||||
+#define DCONF_SYSCONFIG_PROFILES_PATH DCONF_SYSCONFIG "/dconf/profile"
|
|
||||||
+#define DCONF_SYSCONFIG_DB_PATH DCONF_SYSCONFIG "/dconf/db"
|
|
||||||
#define DCONF_SYSTEM_DB_PREFIX "system-db:"
|
|
||||||
#define DCONF_SYSTEM_DB_DEFAULT_NAME "gdm_auth_config"
|
|
||||||
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@@ -1,95 +0,0 @@
|
|||||||
Index: gdm-46.2/daemon/gdm-display.c
|
|
||||||
===================================================================
|
|
||||||
--- gdm-46.2.orig/daemon/gdm-display.c
|
|
||||||
+++ gdm-46.2/daemon/gdm-display.c
|
|
||||||
@@ -1538,12 +1538,12 @@ can_create_environment (const char *sess
|
|
||||||
return session_exists;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#define ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT GDM_RUN_DIR "/gdm.ran-initial-setup"
|
|
||||||
+#define BLOCK_INITIAL_SETUP LOCALSTATEDIR "/lib/gdm/block-initial-setup"
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
-already_done_initial_setup_on_this_boot (void)
|
|
||||||
+already_done_initial_setup (void)
|
|
||||||
{
|
|
||||||
- if (g_file_test (ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT, G_FILE_TEST_EXISTS))
|
|
||||||
+ if (g_file_test (BLOCK_INITIAL_SETUP, G_FILE_TEST_EXISTS))
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
@@ -1625,7 +1625,7 @@ wants_initial_setup (GdmDisplay *self)
|
|
||||||
|
|
||||||
priv = gdm_display_get_instance_private (self);
|
|
||||||
|
|
||||||
- if (already_done_initial_setup_on_this_boot ()) {
|
|
||||||
+ if (already_done_initial_setup ()) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: gdm-46.2/daemon/gdm-manager.c
|
|
||||||
===================================================================
|
|
||||||
--- gdm-46.2.orig/daemon/gdm-manager.c
|
|
||||||
+++ gdm-46.2/daemon/gdm-manager.c
|
|
||||||
@@ -62,7 +62,7 @@
|
|
||||||
#define GDM_MANAGER_DISPLAYS_PATH GDM_DBUS_PATH "/Displays"
|
|
||||||
|
|
||||||
#define INITIAL_SETUP_USERNAME "gnome-initial-setup"
|
|
||||||
-#define ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT GDM_RUN_DIR "/gdm.ran-initial-setup"
|
|
||||||
+#define BLOCK_INITIAL_SETUP LOCALSTATEDIR "/lib/gdm/block-initial-setup"
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
@@ -1847,6 +1847,7 @@ on_start_user_session (StartUserSessionO
|
|
||||||
gboolean fail_if_already_switched = TRUE;
|
|
||||||
GdmDisplay *display;
|
|
||||||
const char *session_id;
|
|
||||||
+ int fd = -1;
|
|
||||||
|
|
||||||
g_debug ("GdmManager: start or jump to session");
|
|
||||||
|
|
||||||
@@ -1889,22 +1890,21 @@ on_start_user_session (StartUserSessionO
|
|
||||||
"doing-initial-setup", &doing_initial_setup,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
+ fd = open(BLOCK_INITIAL_SETUP, O_RDONLY|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0644);
|
|
||||||
+ if (fd == -1 && errno != EEXIST) {
|
|
||||||
+ g_warning ("GdmDisplay: Could not write initial-setup-done marker to %s: %s",
|
|
||||||
+ BLOCK_INITIAL_SETUP,
|
|
||||||
+ strerror(errno));
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ close(fd);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
g_object_ref (display);
|
|
||||||
if (doing_initial_setup) {
|
|
||||||
- g_autoptr(GError) error = NULL;
|
|
||||||
|
|
||||||
g_debug ("GdmManager: closing down initial setup display in background");
|
|
||||||
g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_WAITING_TO_FINISH, NULL);
|
|
||||||
-
|
|
||||||
- if (!g_file_set_contents (ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT,
|
|
||||||
- "1",
|
|
||||||
- 1,
|
|
||||||
- &error)) {
|
|
||||||
- g_warning ("GdmDisplay: Could not write initial-setup-done marker to %s: %s",
|
|
||||||
- ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT,
|
|
||||||
- error->message);
|
|
||||||
- g_clear_error (&error);
|
|
||||||
- }
|
|
||||||
} else {
|
|
||||||
g_debug ("GdmManager: session has its display server, reusing our server for another login screen");
|
|
||||||
}
|
|
||||||
Index: gdm-46.2/daemon/meson.build
|
|
||||||
===================================================================
|
|
||||||
--- gdm-46.2.orig/daemon/meson.build
|
|
||||||
+++ gdm-46.2/daemon/meson.build
|
|
||||||
@@ -227,6 +227,7 @@ endif
|
|
||||||
|
|
||||||
gdm_daemon = executable('gdm',
|
|
||||||
[ gdm_daemon_sources, gdm_daemon_gen_sources ],
|
|
||||||
+ c_args: '-DLOCALSTATEDIR="'+get_option('localstatedir')+'"',
|
|
||||||
dependencies: gdm_daemon_deps,
|
|
||||||
include_directories: config_h_dir,
|
|
||||||
install: true,
|
|
@@ -1,7 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
# GDM PAM configuration used only for the greeter session
|
|
||||||
auth required pam_permit.so
|
|
||||||
account required pam_permit.so
|
|
||||||
password include common-password
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
session include common-session
|
|
@@ -1,13 +0,0 @@
|
|||||||
diff --git a/data/meson.build b/data/meson.build
|
|
||||||
index de8edd6..7a24d30 100644
|
|
||||||
--- a/data/meson.build
|
|
||||||
+++ b/data/meson.build
|
|
||||||
@@ -158,7 +158,7 @@ service_config.set('sbindir', gdm_prefix / get_option('sbindir'))
|
|
||||||
service_config.set('GDM_INITIAL_VT', get_option('initial-vt'))
|
|
||||||
service_config.set('LANG_CONFIG_FILE', lang_config_file)
|
|
||||||
if plymouth_dep.found()
|
|
||||||
- service_config.set('PLYMOUTH_QUIT_SERVICE', 'plymouth-quit.service')
|
|
||||||
+ service_config.set('PLYMOUTH_QUIT_SERVICE', 'plymouth-quit.service plymouth-quit-wait.service')
|
|
||||||
else
|
|
||||||
service_config.set('PLYMOUTH_QUIT_SERVICE', '')
|
|
||||||
endif
|
|
@@ -1,2 +0,0 @@
|
|||||||
setBadness('polkit-file-unauthorized', 100)
|
|
||||||
setBadness('dbus-file-digest-mismatch', 100)
|
|
@@ -1,10 +0,0 @@
|
|||||||
--- a/data/meson.build
|
|
||||||
+++ b/data/meson.build
|
|
||||||
@@ -77,7 +77,6 @@ gdm_gnome_session_required_components =
|
|
||||||
'org.gnome.SettingsDaemon.Sharing',
|
|
||||||
'org.gnome.SettingsDaemon.Smartcard',
|
|
||||||
'org.gnome.SettingsDaemon.Sound',
|
|
||||||
- 'org.gnome.SettingsDaemon.Wacom',
|
|
||||||
]
|
|
||||||
|
|
||||||
gdm_gnome_user_session_wanted_components = gdm_gnome_session_required_components
|
|
@@ -1,52 +0,0 @@
|
|||||||
From a5f9f274c9c902519336a489cfed0548206d2bca Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Mon, 27 Jan 2025 14:01:23 +0100
|
|
||||||
Subject: [PATCH] gdm-settings-utils: rename variable to fix build with gcc 15
|
|
||||||
|
|
||||||
In GNU23 C++, bool is a keyword. Rename the variable to avoid syntax error.
|
|
||||||
---
|
|
||||||
common/gdm-settings-utils.c | 8 ++++----
|
|
||||||
common/gdm-settings-utils.h | 2 +-
|
|
||||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/gdm-settings-utils.c b/common/gdm-settings-utils.c
|
|
||||||
index 636be3a9e..da4c7aefb 100644
|
|
||||||
--- a/common/gdm-settings-utils.c
|
|
||||||
+++ b/common/gdm-settings-utils.c
|
|
||||||
@@ -287,16 +287,16 @@ gdm_settings_parse_boolean_as_value (gboolean boolval)
|
|
||||||
/* adapted from GKeyFile */
|
|
||||||
gboolean
|
|
||||||
gdm_settings_parse_value_as_boolean (const char *value,
|
|
||||||
- gboolean *bool)
|
|
||||||
+ gboolean *boolval)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (value != NULL, FALSE);
|
|
||||||
- g_return_val_if_fail (bool != NULL, FALSE);
|
|
||||||
+ g_return_val_if_fail (boolval != NULL, FALSE);
|
|
||||||
|
|
||||||
if (g_ascii_strcasecmp (value, "true") == 0 || strcmp (value, "1") == 0) {
|
|
||||||
- *bool = TRUE;
|
|
||||||
+ *boolval = TRUE;
|
|
||||||
return TRUE;
|
|
||||||
} else if (g_ascii_strcasecmp (value, "false") == 0 || strcmp (value, "0") == 0) {
|
|
||||||
- *bool = FALSE;
|
|
||||||
+ *boolval = FALSE;
|
|
||||||
return TRUE;
|
|
||||||
} else {
|
|
||||||
return FALSE;
|
|
||||||
diff --git a/common/gdm-settings-utils.h b/common/gdm-settings-utils.h
|
|
||||||
index 4f2362ce7..734d625c7 100644
|
|
||||||
--- a/common/gdm-settings-utils.h
|
|
||||||
+++ b/common/gdm-settings-utils.h
|
|
||||||
@@ -44,7 +44,7 @@ gboolean gdm_settings_parse_schemas (const char *fil
|
|
||||||
GSList **list);
|
|
||||||
|
|
||||||
gboolean gdm_settings_parse_value_as_boolean (const char *value,
|
|
||||||
- gboolean *bool);
|
|
||||||
+ gboolean *boolval);
|
|
||||||
gboolean gdm_settings_parse_value_as_integer (const char *value,
|
|
||||||
int *intval);
|
|
||||||
gboolean gdm_settings_parse_value_as_double (const char *value,
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@@ -1,9 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
# GDM PAM standard configuration (with passwords)
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth include common-auth
|
|
||||||
account include common-account
|
|
||||||
password include common-password
|
|
||||||
session required pam_loginuid.so
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
session include common-session
|
|
@@ -1,16 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
|
|
||||||
auth requisite pam_faillock.so preauth
|
|
||||||
auth required pam_pkcs11.so wait_for_card card_only
|
|
||||||
auth required pam_shells.so
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth optional pam_permit.so
|
|
||||||
auth [success=ok default=1] pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
|
|
||||||
account include common-account
|
|
||||||
|
|
||||||
password required pam_deny.so
|
|
||||||
|
|
||||||
session include common-session
|
|
||||||
session optional pam_gnome_keyring.so auto_start
|
|
@@ -1,18 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
|
|
||||||
auth requisite pam_faillock.so preauth
|
|
||||||
auth required pam_pkcs11.so wait_for_card card_only
|
|
||||||
auth required pam_shells.so
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth optional pam_permit.so
|
|
||||||
auth [success=ok default=1] pam_gdm.so
|
|
||||||
auth optional pam_gnome_keyring.so
|
|
||||||
|
|
||||||
account substack common-account
|
|
||||||
account include postlogin-account
|
|
||||||
|
|
||||||
password required pam_deny.so
|
|
||||||
|
|
||||||
session substack common-session
|
|
||||||
session include postlogin-session
|
|
||||||
session optional pam_gnome_keyring.so auto_start
|
|
@@ -1,61 +0,0 @@
|
|||||||
diff --git a/data/Init.in b/data/Init.in
|
|
||||||
index ec6fd395..4b8ed8ce 100644
|
|
||||||
--- a/data/Init.in
|
|
||||||
+++ b/data/Init.in
|
|
||||||
@@ -1,4 +1,11 @@
|
|
||||||
#!/bin/sh
|
|
||||||
+
|
|
||||||
+if test -x /etc/X11/xdm/Xsetup; then
|
|
||||||
+ exec /etc/X11/xdm/Xsetup
|
|
||||||
+elif test -x /usr/etc/X11/xdm/Xsetup; then
|
|
||||||
+ exec /usr/etc/X11/xdm/Xsetup
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# Stolen from the debian kdm setup, aren't I sneaky
|
|
||||||
# Plus a lot of fun stuff added
|
|
||||||
# -George
|
|
||||||
diff --git a/data/PostSession.in b/data/PostSession.in
|
|
||||||
index c52d3c26..4d94b3e7 100755
|
|
||||||
--- a/data/PostSession.in
|
|
||||||
+++ b/data/PostSession.in
|
|
||||||
@@ -1,3 +1,9 @@
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
+if test -x /etc/X11/xdm/Xreset; then
|
|
||||||
+ exec /etc/X11/xdm/Xreset
|
|
||||||
+elif test -x /usr/etc/X11/xdm/Xreset; then
|
|
||||||
+ exec /usr/etc/X11/xdm/Xreset
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
exit 0
|
|
||||||
diff --git a/data/PreSession.in b/data/PreSession.in
|
|
||||||
index cfabee75..306a905e 100755
|
|
||||||
--- a/data/PreSession.in
|
|
||||||
+++ b/data/PreSession.in
|
|
||||||
@@ -6,4 +6,10 @@
|
|
||||||
#
|
|
||||||
# Note that output goes into the .xsession-errors file for easy debugging
|
|
||||||
#
|
|
||||||
+if test -x /etc/X11/xdm/Xstartup; then
|
|
||||||
+ exec /etc/X11/xdm/Xstartup
|
|
||||||
+elif test -x /usr/etc/X11/xdm/Xstartup; then
|
|
||||||
+ exec /usr/etc/X11/xdm/Xstartup
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
PATH="@X_PATH@:$PATH"
|
|
||||||
diff --git a/data/Xsession.in b/data/Xsession.in
|
|
||||||
index 9d79558c..bcefdd73 100755
|
|
||||||
--- a/data/Xsession.in
|
|
||||||
+++ b/data/Xsession.in
|
|
||||||
@@ -1,4 +1,11 @@
|
|
||||||
#!@XSESSION_SHELL@
|
|
||||||
+
|
|
||||||
+if test -x /etc/X11/xdm/Xsession; then
|
|
||||||
+ exec /etc/X11/xdm/Xsession $1 $GDM_LANG
|
|
||||||
+elif test -x /usr/etc/X11/xdm/Xsession; then
|
|
||||||
+ exec /usr/etc/X11/xdm/Xsession $1 $GDM_LANG
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
#
|
|
||||||
# This is SORT OF LIKE an X session, but not quite. You get a command as the
|
|
||||||
# first argument (it could be multiple words, so run it with "eval"). As a
|
|
@@ -1,66 +0,0 @@
|
|||||||
--- a/daemon/main.c
|
|
||||||
+++ b/daemon/main.c
|
|
||||||
@@ -61,6 +61,31 @@ static GdmSettings *settings =
|
|
||||||
static uid_t gdm_uid = -1;
|
|
||||||
static gid_t gdm_gid = -1;
|
|
||||||
|
|
||||||
+#define SHELLSCRIPT "\
|
|
||||||
+/bin/bash -c \
|
|
||||||
+\'PROCESS=\"X Xwayland plymouth\";\
|
|
||||||
+R=$(pidof $PROCESS);\
|
|
||||||
+while [ $? == 0 ];\
|
|
||||||
+do sleep 1;\
|
|
||||||
+ R=$(pidof $PROCESS);\
|
|
||||||
+done;\
|
|
||||||
+systemd-cat echo Switch to tty1 Successfully;\
|
|
||||||
+/usr/bin/chvt 1\'\
|
|
||||||
+"
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+jump_to_tty1 ()
|
|
||||||
+{
|
|
||||||
+ g_autoptr(GError) error = NULL;
|
|
||||||
+
|
|
||||||
+ g_debug ("Spawn jump to tty1 process");
|
|
||||||
+ g_spawn_command_line_async (SHELLSCRIPT,
|
|
||||||
+ &error);
|
|
||||||
+
|
|
||||||
+ if (error != NULL)
|
|
||||||
+ g_warning ("Error chvt to tty1: %s", error->message);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
timed_exit_cb (GMainLoop *loop)
|
|
||||||
{
|
|
||||||
@@ -263,6 +288,12 @@ on_shutdown_signal_cb (gpointer user_dat
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+on_signal_term_cb (int signal)
|
|
||||||
+{
|
|
||||||
+ g_debug ("Received SIGTERM again");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
on_sighup_cb (gpointer user_data)
|
|
||||||
{
|
|
||||||
@@ -387,6 +418,7 @@ main (int argc,
|
|
||||||
g_main_loop_run (main_loop);
|
|
||||||
|
|
||||||
g_debug ("GDM finished, cleaning up...");
|
|
||||||
+ signal (SIGTERM, on_signal_term_cb);
|
|
||||||
|
|
||||||
g_clear_object (&manager);
|
|
||||||
g_clear_object (&settings);
|
|
||||||
@@ -394,6 +426,10 @@ main (int argc,
|
|
||||||
gdm_settings_direct_shutdown ();
|
|
||||||
gdm_log_shutdown ();
|
|
||||||
|
|
||||||
+ jump_to_tty1 ();
|
|
||||||
+
|
|
||||||
+ g_debug ("GDM finished");
|
|
||||||
+
|
|
||||||
g_main_loop_unref (main_loop);
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,96 +0,0 @@
|
|||||||
diff --git a/common/gdm-common.c b/common/gdm-common.c
|
|
||||||
index 4f56a05..019971a 100644
|
|
||||||
--- a/common/gdm-common.c
|
|
||||||
+++ b/common/gdm-common.c
|
|
||||||
@@ -655,6 +655,8 @@ gdm_get_script_environment (const char *username,
|
|
||||||
|
|
||||||
if (display_hostname) {
|
|
||||||
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname));
|
|
||||||
+ } else {
|
|
||||||
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Runs as root */
|
|
||||||
@@ -1120,3 +1122,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_env_func,
|
|
||||||
gdm_load_env_dir (dir, load_env_func, expand_func, user_data);
|
|
||||||
g_object_unref (dir);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+char *
|
|
||||||
+gdm_gethostname (void)
|
|
||||||
+{
|
|
||||||
+ char localhost[HOST_NAME_MAX + 1] = "";
|
|
||||||
+ if (gethostname (localhost, HOST_NAME_MAX) == 0) {
|
|
||||||
+ return g_strdup (localhost);
|
|
||||||
+ } else {
|
|
||||||
+ return g_strdup ("localhost");
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
diff --git a/common/gdm-common.h b/common/gdm-common.h
|
|
||||||
index cffefe1..b769021 100644
|
|
||||||
--- a/common/gdm-common.h
|
|
||||||
+++ b/common/gdm-common.h
|
|
||||||
@@ -70,6 +70,7 @@ char *gdm_generate_random_bytes (gsize size,
|
|
||||||
|
|
||||||
gboolean gdm_get_login_window_session_id (const char *seat_id,
|
|
||||||
char **session_id);
|
|
||||||
+char *gdm_gethostname (void);
|
|
||||||
|
|
||||||
gboolean gdm_goto_login_session (GCancellable *cancellable,
|
|
||||||
GError **error);
|
|
||||||
diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c
|
|
||||||
index 291c163..9a4ed4a 100644
|
|
||||||
--- a/daemon/gdm-display-access-file.c
|
|
||||||
+++ b/daemon/gdm-display-access-file.c
|
|
||||||
@@ -432,13 +432,10 @@ _get_auth_info_for_display (GdmDisplayAccessFile *file,
|
|
||||||
*
|
|
||||||
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
|
|
||||||
*/
|
|
||||||
- char localhost[_POSIX_HOST_NAME_MAX + 1] = "";
|
|
||||||
*family = FamilyLocal;
|
|
||||||
- if (gethostname (localhost, _POSIX_HOST_NAME_MAX) == 0) {
|
|
||||||
- *address = g_strdup (localhost);
|
|
||||||
- } else {
|
|
||||||
- *address = g_strdup ("localhost");
|
|
||||||
- }
|
|
||||||
+ /* using the new function we create in the patch, to detect
|
|
||||||
+ * changes here, in the original code */
|
|
||||||
+ *address = gdm_gethostname ();
|
|
||||||
} else {
|
|
||||||
*family = FamilyWild;
|
|
||||||
gdm_display_get_remote_hostname (display, address, NULL);
|
|
||||||
diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
|
|
||||||
index bea2f93..18f8f5a 100644
|
|
||||||
--- a/daemon/gdm-launch-environment.c
|
|
||||||
+++ b/daemon/gdm-launch-environment.c
|
|
||||||
@@ -221,6 +221,11 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
|
|
||||||
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (launch_environment->x11_display_is_local) {
|
|
||||||
+ g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME");
|
|
||||||
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
|
|
||||||
|
|
||||||
/* Now populate XDG_DATA_DIRS from env.d if we're running initial setup; this allows
|
|
||||||
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
|
||||||
index 33dee76..e5a228e 100644
|
|
||||||
--- a/daemon/gdm-session.c
|
|
||||||
+++ b/daemon/gdm-session.c
|
|
||||||
@@ -2956,6 +2956,14 @@ set_up_session_environment (GdmSession *self)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (self->display_is_local) {
|
|
||||||
+ char *hostname = gdm_gethostname ();
|
|
||||||
+ gdm_session_set_environment_variable (self,
|
|
||||||
+ "XAUTHLOCALHOSTNAME",
|
|
||||||
+ hostname);
|
|
||||||
+ g_free (hostname);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (g_getenv ("WINDOWPATH") != NULL) {
|
|
||||||
gdm_session_set_environment_variable (self,
|
|
||||||
"WINDOWPATH",
|
|
6038
gdm/gdm.changes
6038
gdm/gdm.changes
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
|||||||
name: gdm
|
|
||||||
version: 48.0
|
|
||||||
mtime: 1742227635
|
|
||||||
commit: 2397f037d9075a6f98f43c6c2cbaacf923e82b6b
|
|
13
gdm/gdm.pamd
13
gdm/gdm.pamd
@@ -1,13 +0,0 @@
|
|||||||
#%PAM-1.0
|
|
||||||
# GDM PAM standard configuration (with passwords)
|
|
||||||
auth requisite pam_nologin.so
|
|
||||||
auth substack common-auth
|
|
||||||
auth include postlogin-auth
|
|
||||||
account substack common-account
|
|
||||||
account include postlogin-account
|
|
||||||
password substack common-password
|
|
||||||
password include postlogin-password
|
|
||||||
session required pam_loginuid.so
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
session substack common-session
|
|
||||||
session include postlogin-session
|
|
505
gdm/gdm.spec
505
gdm/gdm.spec
@@ -1,505 +0,0 @@
|
|||||||
#
|
|
||||||
# spec file for package gdm
|
|
||||||
#
|
|
||||||
# Copyright (c) 2025 SUSE LLC and contributors
|
|
||||||
#
|
|
||||||
# All modifications and additions to the file contributed by third parties
|
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
|
||||||
# upon. The license for this file, and modifications and additions to the
|
|
||||||
# file, is the same license as for the pristine package itself (unless the
|
|
||||||
# license for the pristine package is not an Open Source License, in which
|
|
||||||
# case the license is the MIT License). An "Open Source License" is a
|
|
||||||
# license that conforms to the Open Source Definition (Version 1.9)
|
|
||||||
# published by the Open Source Initiative.
|
|
||||||
|
|
||||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
%define enable_split_authentication 1
|
|
||||||
|
|
||||||
# special hack for SLE15/Leap 15: it does not yet know /usr/etc, and files in /etc should be %%config
|
|
||||||
%if 0%{?suse_version} >= 1550
|
|
||||||
%define _config_norepl %nil
|
|
||||||
%else
|
|
||||||
%define _pam_vendordir %{_sysconfdir}/pam.d
|
|
||||||
%define _config_norepl %config(noreplace)
|
|
||||||
%endif
|
|
||||||
|
|
||||||
Name: gdm
|
|
||||||
Version: 48.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: %{name}-%{version}.tar.zst
|
|
||||||
Source1: gdm.pamd
|
|
||||||
Source2: gdm-autologin.pamd
|
|
||||||
Source3: gdm-launch-environment.pamd
|
|
||||||
Source4: gdm-fingerprint.pamd
|
|
||||||
Source5: gdm-smartcard.pamd
|
|
||||||
# gdmflexiserver wrapper, to enable other display managers to abuse the gdmflexiserver namespace (like lightdm)
|
|
||||||
Source6: gdmflexiserver-wrapper
|
|
||||||
# /etc/xinit.d/xdm integration script
|
|
||||||
Source7: X11-displaymanager-gdm
|
|
||||||
# Use tmpfiles to create directories under /var to support transactional updates
|
|
||||||
Source9: gdm.tmpfiles
|
|
||||||
# Use reserveVT.conf to make autologin user session not to select tty1
|
|
||||||
Source10: reserveVT.conf
|
|
||||||
# Use sysusers to create gdm system user
|
|
||||||
Source11: gdm.sysusers
|
|
||||||
# PAM configuration files for SLE15 and older
|
|
||||||
Source12: gdm-sle.pamd
|
|
||||||
Source13: gdm-autologin-sle.pamd
|
|
||||||
Source14: gdm-fingerprint-sle.pamd
|
|
||||||
Source15: gdm-smartcard-sle.pamd
|
|
||||||
# Configuration for pulseaudio
|
|
||||||
Source20: default.pa
|
|
||||||
Source99: gdm-rpmlintrc
|
|
||||||
# WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-s390-not-require-g-s-d_wacom.patch bsc#1129412 yfjiang@suse.com -- Remove the runtime requirement of g-s-d Wacom plugin
|
|
||||||
Patch0: gdm-s390-not-require-g-s-d_wacom.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 bsc#919723 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager; note that accountsservice has a similar patch (accountsservice-sysconfig.patch)
|
|
||||||
Patch1: gdm-sysconfig-settings.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
|
||||||
Patch2: gdm-suse-xsession.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bnc#538064 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to current hostname when we authenticate, for local logins, to avoid issues in the session in case the hostname changes later one. See comment 24 in the bug.
|
|
||||||
Patch4: gdm-xauthlocalhostname.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 xwang@suse.com -- switch to tty1 when stopping gdm service
|
|
||||||
Patch5: gdm-switch-to-tty1.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-initial-setup-hardening.patch boo#1140851, glgo#GNOME/gnome-initial-setup#76 fezhang@suse.com -- Prevent gnome-initial-setup running if any regular user has perviously logged into the system
|
|
||||||
Patch6: gdm-initial-setup-hardening.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gdm-settings-utils_rename-variable.patch -- Rename variable to fix build with gcc 15
|
|
||||||
Patch7: gdm-settings-utils_rename-variable.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gdm-fix-wrong-path-gdm-config.patch bsc#1232669, glgo#GNOME/gdm!282 alynx.zhou@suse.com -- Add missing slash when gdm-config building dconf database path
|
|
||||||
Patch8: gdm-fix-wrong-path-gdm-config.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gdm-plymouth-quit-wait.patch bsc#1243439 xwang@suse.com -- Disable plymouth-quit-wait.service
|
|
||||||
Patch9: gdm-plymouth-quit-wait.patch
|
|
||||||
|
|
||||||
### NOTE: Keep please SLE-only patches at bottom (starting on 1000).
|
|
||||||
# PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 qzhao@suse.com -- Disable gnome-initial-setup runs before gdm, g-i-s will only serve for CJK people to choose the input-method after login.
|
|
||||||
Patch1000: gdm-disable-gnome-initial-setup.patch
|
|
||||||
|
|
||||||
BuildRequires: /usr/bin/dbus-run-session
|
|
||||||
BuildRequires: check-devel
|
|
||||||
# dconf and gnome-session-core are needed for directory ownership
|
|
||||||
BuildRequires: dconf
|
|
||||||
BuildRequires: fdupes
|
|
||||||
BuildRequires: gnome-session-core
|
|
||||||
BuildRequires: itstool
|
|
||||||
BuildRequires: meson >= 0.57
|
|
||||||
BuildRequires: pam-devel
|
|
||||||
BuildRequires: pkgconfig
|
|
||||||
BuildRequires: sysuser-shadow
|
|
||||||
BuildRequires: sysuser-tools
|
|
||||||
BuildRequires: tcpd-devel
|
|
||||||
BuildRequires: xorg-x11-server
|
|
||||||
BuildRequires: xorg-x11-server-extra
|
|
||||||
BuildRequires: pkgconfig(accountsservice) >= 0.6.35
|
|
||||||
BuildRequires: pkgconfig(audit)
|
|
||||||
BuildRequires: pkgconfig(check)
|
|
||||||
BuildRequires: pkgconfig(gio-2.0) >= 2.56.0
|
|
||||||
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.56.0
|
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.56.0
|
|
||||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.56.0
|
|
||||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.9.12
|
|
||||||
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(libkeyutils)
|
|
||||||
BuildRequires: pkgconfig(libsystemd)
|
|
||||||
BuildRequires: pkgconfig(ply-boot-client)
|
|
||||||
BuildRequires: pkgconfig(x11)
|
|
||||||
BuildRequires: pkgconfig(xau)
|
|
||||||
BuildRequires: pkgconfig(xcb)
|
|
||||||
BuildRequires: pkgconfig(xdmcp)
|
|
||||||
BuildRequires: pkgconfig(xi)
|
|
||||||
BuildRequires: pkgconfig(xinerama)
|
|
||||||
BuildRequires: pkgconfig(xrandr)
|
|
||||||
Requires: %{_bindir}/dbus-run-session
|
|
||||||
Requires: %{name}-branding = %{version}
|
|
||||||
Requires: gdmflexiserver
|
|
||||||
Requires: gnome-session-core
|
|
||||||
Requires: gnome-settings-daemon
|
|
||||||
Requires: gnome-shell
|
|
||||||
# xdm package ships systemd display-manager service and other common scripts
|
|
||||||
# between display managers (bsc#1084655)
|
|
||||||
Requires: (gdm-xdm-integration or gdm-systemd)
|
|
||||||
%if !0%{?is_opensuse} || 0%{?suse_version} <= 1600
|
|
||||||
Suggests: gdm-systemd
|
|
||||||
%else
|
|
||||||
Suggests: gdm-xdm-integration
|
|
||||||
%endif
|
|
||||||
Requires(post): dconf
|
|
||||||
Requires(pre): group(video)
|
|
||||||
Recommends: iso-codes
|
|
||||||
# accessibility
|
|
||||||
Recommends: orca
|
|
||||||
# smartcard login
|
|
||||||
Recommends: pam_pkcs11
|
|
||||||
DocDir: %{_defaultdocdir}
|
|
||||||
%ifnarch s390 s390x
|
|
||||||
BuildRequires: pkgconfig(xorg-server)
|
|
||||||
%endif
|
|
||||||
%sysusers_requires
|
|
||||||
|
|
||||||
%description
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
%package -n libgdm1
|
|
||||||
Summary: Client Library for Communicating with GDM Greeter Server
|
|
||||||
Group: System/Libraries
|
|
||||||
Requires: %{name}-schema
|
|
||||||
Recommends: gdm
|
|
||||||
|
|
||||||
%description -n libgdm1
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
%package -n typelib-1_0-Gdm-1_0
|
|
||||||
Summary: Introspection bindings for gdm
|
|
||||||
Group: System/Libraries
|
|
||||||
|
|
||||||
%description -n typelib-1_0-Gdm-1_0
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
This package provides the GObject Introspection bindings for
|
|
||||||
communicating with the GDM greeter server.
|
|
||||||
|
|
||||||
%package schema
|
|
||||||
Summary: Config schema for GDM
|
|
||||||
Group: System/Libraries
|
|
||||||
BuildArch: noarch
|
|
||||||
|
|
||||||
%description schema
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
%package devel
|
|
||||||
Summary: Libraries for GDM -- Development Files
|
|
||||||
Group: Development/Libraries/GNOME
|
|
||||||
Requires: libgdm1 = %{version}
|
|
||||||
Requires: typelib-1_0-Gdm-1_0 = %{version}
|
|
||||||
|
|
||||||
%description devel
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
%package branding-upstream
|
|
||||||
Summary: The GNOME Display Manager -- Upstream default configuration
|
|
||||||
Group: System/GUI/GNOME
|
|
||||||
Requires: %{name} = %{version}
|
|
||||||
Supplements: (%{name} and branding-upstream)
|
|
||||||
Conflicts: %{name}-branding
|
|
||||||
Provides: %{name}-branding = %{version}
|
|
||||||
BuildArch: noarch
|
|
||||||
#BRAND: Provide one file:
|
|
||||||
#BRAND: /etc/gdm/custom.conf
|
|
||||||
#BRAND: Default configuration of gdm
|
|
||||||
|
|
||||||
%description branding-upstream
|
|
||||||
The GNOME Display Manager is a system service that is responsible for
|
|
||||||
providing graphical log-ins and managing local and remote displays.
|
|
||||||
|
|
||||||
This package provides the upstream default configuration for gdm.
|
|
||||||
|
|
||||||
%package xdm-integration
|
|
||||||
Summary: GDM integration into the xdm wrapper script
|
|
||||||
Group: System/GUI/GNOME
|
|
||||||
Requires: gdm
|
|
||||||
Requires: xdm
|
|
||||||
Requires(post): update-alternatives
|
|
||||||
Requires(postun): update-alternatives
|
|
||||||
BuildArch: noarch
|
|
||||||
|
|
||||||
%description xdm-integration
|
|
||||||
GDM's XDM wrapper integration
|
|
||||||
By default openSUSE uses xdm which enables the DM based on sysconfig.
|
|
||||||
|
|
||||||
%package systemd
|
|
||||||
Summary: Systemd gdm.service file
|
|
||||||
Group: System/GUI/GNOME
|
|
||||||
Requires: gdm
|
|
||||||
# Upgrade xdm first if installed - to run systemd DM migration
|
|
||||||
Requires(pre): (xdm >= 1.1.17 if xdm)
|
|
||||||
BuildArch: noarch
|
|
||||||
|
|
||||||
%description systemd
|
|
||||||
GDM's systemd service file.
|
|
||||||
By default openSUSE uses xdm which enables the DM based on sysconfig.
|
|
||||||
This package is only needed if the system administrator wishes to use
|
|
||||||
'systemctl' instead of openSUSE's default 'update-alternatives' method.
|
|
||||||
|
|
||||||
%package -n gdmflexiserver
|
|
||||||
Summary: Compatibility Wrapper for Display Managers
|
|
||||||
Group: System/GUI/GNOME
|
|
||||||
Suggests: gdm
|
|
||||||
BuildArch: noarch
|
|
||||||
|
|
||||||
%description -n gdmflexiserver
|
|
||||||
The GDMFlexiServer tool interacts with the display manager to
|
|
||||||
enable fast user switching. This package contains a wrapper that
|
|
||||||
selects the correct Gdmflexiserver implementation, based on the
|
|
||||||
running display manager.
|
|
||||||
|
|
||||||
%lang_package
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%autosetup -N
|
|
||||||
### NON-SLE patches start from 0 to 999
|
|
||||||
%autopatch -p1 -m 1 -M 999
|
|
||||||
|
|
||||||
%ifarch s390 s390x
|
|
||||||
%patch -P 0 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
### SLE and Leap only patches start at 1000
|
|
||||||
%if !0%{?is_opensuse} || 0%{?suse_version} <= 1600
|
|
||||||
## Use this when there's no need to skip patches.
|
|
||||||
%autopatch -p1 -m 1000
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%build
|
|
||||||
%meson \
|
|
||||||
--libexecdir=%{_libexecdir}/gdm \
|
|
||||||
-Dat-spi-registryd-dir=%{_libexecdir}/at-spi \
|
|
||||||
-Dgdm-xsession=true \
|
|
||||||
-Dgnome-settings-daemon-dir=%{_libexecdir}/gnome-settings-daemon-3.0 \
|
|
||||||
-Dinitial-vt=7 \
|
|
||||||
-Dipv6=true \
|
|
||||||
-Dpam-mod-dir=%{_pam_moduledir} \
|
|
||||||
-Ddbus-sys=%{_datadir}/dbus-1/system.d \
|
|
||||||
-Ddistro=generic \
|
|
||||||
-Dplymouth=enabled \
|
|
||||||
-Drun-dir=/run/gdm \
|
|
||||||
%if %{enable_split_authentication}
|
|
||||||
-Dsplit-authentication=true \
|
|
||||||
%else
|
|
||||||
-Dsplit-authentication=false \
|
|
||||||
%endif
|
|
||||||
-Dudev-dir=%{_udevrulesdir} \
|
|
||||||
-Dwayland-support=true \
|
|
||||||
%if !0%{?is_opensuse} || 0%{?suse_version} <= 1600
|
|
||||||
-Dx11-support=false \
|
|
||||||
%endif
|
|
||||||
%nil
|
|
||||||
%meson_build
|
|
||||||
%sysusers_generate_pre %{SOURCE11} gdm gdm.conf
|
|
||||||
|
|
||||||
%install
|
|
||||||
%meson_install
|
|
||||||
## Install PAM files.
|
|
||||||
mkdir -p %{buildroot}%{_pam_vendordir}
|
|
||||||
# Pam config for the greeter session
|
|
||||||
cp %{SOURCE3} %{buildroot}%{_pam_vendordir}/gdm-launch-environment
|
|
||||||
%if 0%{?suse_version} >= 1550
|
|
||||||
# Generic pam config
|
|
||||||
cp %{SOURCE1} %{buildroot}%{_pam_vendordir}/gdm
|
|
||||||
# Pam config for autologin
|
|
||||||
cp %{SOURCE2} %{buildroot}%{_pam_vendordir}/gdm-autologin
|
|
||||||
%if %{enable_split_authentication}
|
|
||||||
# Pam config for fingerprint authentication
|
|
||||||
cp %{SOURCE4} %{buildroot}%{_pam_vendordir}/gdm-fingerprint
|
|
||||||
# Pam config for smartcard authentication
|
|
||||||
cp %{SOURCE5} %{buildroot}%{_pam_vendordir}/gdm-smartcard
|
|
||||||
%endif
|
|
||||||
%else
|
|
||||||
# Generic pam config
|
|
||||||
cp %{SOURCE12} %{buildroot}%{_pam_vendordir}/gdm
|
|
||||||
# Pam config for autologin
|
|
||||||
cp %{SOURCE13} %{buildroot}%{_pam_vendordir}/gdm-autologin
|
|
||||||
%if %{enable_split_authentication}
|
|
||||||
# Pam config for fingerprint authentication
|
|
||||||
cp %{SOURCE14} %{buildroot}%{_pam_vendordir}/gdm-fingerprint
|
|
||||||
# Pam config for smartcard authentication
|
|
||||||
cp %{SOURCE15} %{buildroot}%{_pam_vendordir}/gdm-smartcard
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
# The default gdm pam configuration is the one to be used as pam-password too
|
|
||||||
ln -s gdm %{buildroot}%{_pam_vendordir}/gdm-password
|
|
||||||
## Install other files
|
|
||||||
# Install PostLogin script.
|
|
||||||
mv %{buildroot}%{_sysconfdir}/gdm/PostLogin/Default.sample %{buildroot}%{_sysconfdir}/gdm/PostLogin/Default
|
|
||||||
# Move gdmflexiserver to libexecdir and replace it with the compatibility wrapper
|
|
||||||
mv %{buildroot}%{_bindir}/gdmflexiserver %{buildroot}%{_libexecdir}/gdm/gdmflexiserver
|
|
||||||
install -m 755 %{SOURCE6} %{buildroot}%{_bindir}/gdmflexiserver
|
|
||||||
sed -e 's-@LIBEXECDIR@-%{_libexecdir}-g' -i %{buildroot}%{_bindir}/gdmflexiserver
|
|
||||||
#Install /etc/xinit.d/xdm integration script
|
|
||||||
install -D -m 644 %{SOURCE7} %{buildroot}%{_prefix}/lib/X11/displaymanagers/gdm
|
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
|
||||||
touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
|
|
||||||
ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}%{_prefix}/lib/X11/displaymanagers/default-displaymanager
|
|
||||||
# Install other files
|
|
||||||
mkdir -p %{buildroot}/run/gdm
|
|
||||||
mkdir -p %{buildroot}%{_bindir}
|
|
||||||
ln -s ../sbin/gdm %{buildroot}%{_bindir}/gdm
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_tmpfilesdir}
|
|
||||||
install -m 644 %{SOURCE9} %{buildroot}%{_tmpfilesdir}/gdm.conf
|
|
||||||
%if !0%{?is_opensuse} || 0%{?suse_version} <= 1600
|
|
||||||
sed -e '#/var/lib/gdm/\.pulse#d' -i %{buildroot}%{_tmpfilesdir}/gdm.conf
|
|
||||||
%endif
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/systemd/logind.conf.d
|
|
||||||
install -m 644 %{SOURCE10} %{buildroot}%{_prefix}/lib/systemd/logind.conf.d/reserveVT.conf
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_sysusersdir}
|
|
||||||
install -m 644 %{SOURCE11} %{buildroot}%{_sysusersdir}/gdm.conf
|
|
||||||
|
|
||||||
%if 0%{?is_opensuse} && 0%{?suse_version} > 1600
|
|
||||||
install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.pulse/default.pa
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%find_lang %{name} %{?no_lang_C}
|
|
||||||
%fdupes -s %{buildroot}%{_datadir}/help
|
|
||||||
|
|
||||||
%check
|
|
||||||
%meson_test
|
|
||||||
|
|
||||||
%pre -f gdm.pre
|
|
||||||
if [ $1 -gt 1 ]; then
|
|
||||||
if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" -a -x /usr/sbin/update-alternatives ]; then
|
|
||||||
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/gdm" ]; then
|
|
||||||
touch /var/tmp/migrate_to_gdm
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
%post
|
|
||||||
%tmpfiles_create gdm.conf
|
|
||||||
|
|
||||||
%post xdm-integration
|
|
||||||
%{_sbindir}/update-alternatives --install %{_prefix}/lib/X11/displaymanagers/default-displaymanager \
|
|
||||||
default-displaymanager %{_prefix}/lib/X11/displaymanagers/gdm 25
|
|
||||||
|
|
||||||
%posttrans
|
|
||||||
# Create dconf database for gdm, to lockdown the gdm session
|
|
||||||
dconf update
|
|
||||||
|
|
||||||
%postun xdm-integration
|
|
||||||
[ -f %{_prefix}/lib/X11/displaymanagers/gdm ] || %{_sbindir}/update-alternatives \
|
|
||||||
--remove default-displaymanager %{_prefix}/lib/X11/displaymanagers/gdm
|
|
||||||
|
|
||||||
%pre systemd
|
|
||||||
%service_add_pre gdm.service
|
|
||||||
|
|
||||||
%post systemd
|
|
||||||
%service_add_post gdm.service
|
|
||||||
|
|
||||||
%preun systemd
|
|
||||||
%service_del_preun gdm.service
|
|
||||||
|
|
||||||
%postun systemd
|
|
||||||
%dnl do not restart gdm.service, as we might lose the graphical session we're in
|
|
||||||
%service_del_postun_without_restart gdm.service
|
|
||||||
|
|
||||||
%posttrans systemd
|
|
||||||
%dnl migrate a system that still uses xdm abstraction as display manager to gdm
|
|
||||||
%dnl part of https://en.opensuse.org/openSUSE:DisplayManagerRework
|
|
||||||
if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" ]; then
|
|
||||||
# display-manager is currently 'legacy mode' - if migration has already occured
|
|
||||||
# the above command would return 'disabled'
|
|
||||||
if [ -x /usr/sbin/update-alternatives ]; then
|
|
||||||
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/gdm" ] || [ -f /var/tmp/migrate_to_gdm ]; then
|
|
||||||
# the display-manager started by xdm is currently gdm - let's switch to the native service
|
|
||||||
# this only force-enables gdm whenever xdm was enabled AND it was uses as wrapper to start gdm
|
|
||||||
systemctl enable --force gdm.service
|
|
||||||
unlink /var/tmp/migrate_to_gdm
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
%ldconfig_scriptlets -n libgdm1
|
|
||||||
|
|
||||||
%files
|
|
||||||
%license COPYING
|
|
||||||
%doc AUTHORS NEWS README.md
|
|
||||||
%doc %{_datadir}/help/C/%{name}/
|
|
||||||
%dir %config %{_sysconfdir}/gdm
|
|
||||||
%config %{_sysconfdir}/gdm/[IPXl]*
|
|
||||||
%{_sbindir}/gdm
|
|
||||||
%{_bindir}/gdm
|
|
||||||
%{_bindir}/gdm-config
|
|
||||||
%dir %{_datadir}/dconf
|
|
||||||
%dir %{_datadir}/dconf/profile
|
|
||||||
%{_datadir}/dconf/profile/gdm
|
|
||||||
%if 0%{?is_opensuse} && 0%{?suse_version} > 1600
|
|
||||||
%dir %{_datadir}/factory/var
|
|
||||||
%dir %{_datadir}/factory/var/lib
|
|
||||||
%{_datadir}/factory/var/lib/gdm
|
|
||||||
%endif
|
|
||||||
%{_datadir}/gdm/
|
|
||||||
%{_datadir}/gnome-session/sessions/gnome-login.session
|
|
||||||
%{_pam_moduledir}/pam_gdm.so
|
|
||||||
%dir %{_libexecdir}/gdm
|
|
||||||
%{_libexecdir}/gdm/gdm-*
|
|
||||||
%{_libexecdir}/gdm/gdmflexiserver
|
|
||||||
%ghost %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
|
|
||||||
%if 0%{?is_opensuse} && 0%{?suse_version} > 1600
|
|
||||||
%attr(0700, gdm, gdm) %ghost %dir %{_localstatedir}/lib/gdm/.pulse
|
|
||||||
%attr(0600, gdm, gdm) %ghost %{_localstatedir}/lib/gdm/.pulse/default.pa
|
|
||||||
%endif
|
|
||||||
%ghost %attr(711,root,gdm) %dir %{_localstatedir}/log/gdm
|
|
||||||
%ghost %attr(1755,root,root) /var/cache/gdm
|
|
||||||
%ghost %attr(711,root,gdm) %dir /run/gdm
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm-autologin
|
|
||||||
%if %{enable_split_authentication}
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm-fingerprint
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm-smartcard
|
|
||||||
%endif
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm-password
|
|
||||||
%_config_norepl %{_pam_vendordir}/gdm-launch-environment
|
|
||||||
%{_datadir}/dbus-1/system.d/gdm.conf
|
|
||||||
%if 0%{?is_opensuse} && 0%{?suse_version} > 1600
|
|
||||||
%{_udevrulesdir}/61-gdm.rules
|
|
||||||
%endif
|
|
||||||
%{_datadir}/polkit-1/rules.d/20-gdm.rules
|
|
||||||
%{_tmpfilesdir}/gdm.conf
|
|
||||||
%{_sysusersdir}/gdm.conf
|
|
||||||
%dir %{_prefix}/lib/systemd/logind.conf.d
|
|
||||||
%{_prefix}/lib/systemd/logind.conf.d/reserveVT.conf
|
|
||||||
%dir %{_userunitdir}/gnome-session@gnome-login.target.d
|
|
||||||
%{_userunitdir}/gnome-session@gnome-login.target.d/session.conf
|
|
||||||
|
|
||||||
%files xdm-integration
|
|
||||||
# /etc/xinit.d/xdm integration
|
|
||||||
%dir %{_prefix}/lib/X11/displaymanagers
|
|
||||||
%{_prefix}/lib/X11/displaymanagers/default-displaymanager
|
|
||||||
%{_prefix}/lib/X11/displaymanagers/gdm
|
|
||||||
%ghost %{_sysconfdir}/alternatives/default-displaymanager
|
|
||||||
|
|
||||||
%files -n libgdm1
|
|
||||||
%{_libdir}/libgdm.so.*
|
|
||||||
|
|
||||||
%files -n typelib-1_0-Gdm-1_0
|
|
||||||
%{_libdir}/girepository-1.0/Gdm-1.0.typelib
|
|
||||||
|
|
||||||
%files schema
|
|
||||||
%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml
|
|
||||||
|
|
||||||
%files devel
|
|
||||||
%{_includedir}/gdm/
|
|
||||||
%{_libdir}/libgdm.so
|
|
||||||
%{_libdir}/pkgconfig/gdm.pc
|
|
||||||
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
|
||||||
%{_datadir}/gir-1.0/Gdm-1.0.gir
|
|
||||||
|
|
||||||
%files branding-upstream
|
|
||||||
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
|
|
||||||
|
|
||||||
%files systemd
|
|
||||||
%{_unitdir}/gdm.service
|
|
||||||
|
|
||||||
%files -n gdmflexiserver
|
|
||||||
%{_bindir}/gdmflexiserver
|
|
||||||
|
|
||||||
%files lang -f %{name}.lang
|
|
||||||
|
|
||||||
%changelog
|
|
@@ -1,3 +0,0 @@
|
|||||||
# Type Name ID GECOS Home
|
|
||||||
u gdm - "Gnome Display Manager daemon" /var/lib/gdm
|
|
||||||
m gdm video
|
|
@@ -1,6 +0,0 @@
|
|||||||
d /var/lib/gdm 0750 gdm gdm -
|
|
||||||
d /var/lib/gdm/.pulse 0700 gdm gdm -
|
|
||||||
C /var/lib/gdm/.pulse/default.pa 0600 gdm gdm - /usr/share/factory/var/lib/gdm/.pulse/default.pa
|
|
||||||
d /var/log/gdm 0711 root gdm -
|
|
||||||
d /var/cache/gdm 1755 root root -
|
|
||||||
d /run/gdm 0711 root gdm -
|
|
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test ! -x "${GDMFLEXISERVER:-@LIBEXECDIR@/gdm/gdmflexiserver}"; then
|
|
||||||
echo "No gdmflexiserver implementation found. Maybe install gdm?" >&2
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
exec "${GDMFLEXISERVER:-@LIBEXECDIR@/gdm/gdmflexiserver}"
|
|
||||||
fi
|
|
@@ -1,2 +0,0 @@
|
|||||||
[Login]
|
|
||||||
ReserveVT=1
|
|
Reference in New Issue
Block a user