Compare commits

...

No commits in common. 'i10c-beta' and 'c9' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/gnome-session-46.0.tar.xz
SOURCES/gnome-session-40.1.1.tar.xz

@ -1 +1 @@
60981c9e0aa44f1ff5d8705e2b4f5f4ce03587e0 SOURCES/gnome-session-46.0.tar.xz
497bcbe97f8d665618438d352c555373393f89d7 SOURCES/gnome-session-40.1.1.tar.xz

@ -0,0 +1,57 @@
From 63d74edc4b112669fdce14d88d37e2dd0315ff7e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 19 Nov 2019 09:29:16 -0500
Subject: [PATCH] gnome-session: don't validate shell before using it
Users sometimes set their shell to an invalid shell to prevent
login from proceeding.
GNOME on Wayland still allows login in these cases.
This commit makes the behavior match expectations by skipping
shell validity checks when deciding to run though a login shell.
---
gnome-session/gnome-session.in | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
index ddd1a591..b4b1f8fa 100755
--- a/gnome-session/gnome-session.in
+++ b/gnome-session/gnome-session.in
@@ -1,32 +1,29 @@
#!/bin/sh
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
- [ -n "$SHELL" ] &&
- grep -q "$SHELL" /etc/shells &&
- ! (echo "$SHELL" | grep -q "false") &&
- ! (echo "$SHELL" | grep -q "nologin"); then
+ [ -n "$SHELL" ]; then
if [ "$1" != '-l' ]; then
exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
else
shift
fi
fi
SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
REGION=${SETTING#\'}
REGION=${REGION%\'}
if [ -n "$REGION" ]; then
unset LC_TIME LC_NUMERIC LC_MONETARY LC_MEASUREMENT LC_PAPER
if [ "$LANG" != "$REGION" ] ; then
export LC_TIME=$REGION
export LC_NUMERIC=$REGION
export LC_MONETARY=$REGION
export LC_MEASUREMENT=$REGION
export LC_PAPER=$REGION
fi
fi
exec @libexecdir@/gnome-session-binary "$@"
--
2.32.0

@ -0,0 +1,126 @@
From 51949dd2b944604742406a7464eb945cb5b610e9 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Mon, 15 Nov 2021 14:56:14 +0100
Subject: [PATCH 1/2] main: Lower fallback warning when running in GDM
It is currently expected for the fallback to happen. So hide the errors,
but still log a single message to inform users about it.
---
gnome-session/main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/gnome-session/main.c b/gnome-session/main.c
index 443bc045..45ec6597 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -512,100 +512,103 @@ main (int argc, char **argv)
exit (1);
}
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
} else {
gsm_util_set_autostart_dirs (override_autostart_dirs);
/* Export the override autostart dirs parameter to the environment
* in case we are running on systemd. */
if (override_autostart_dirs) {
g_autofree char *autostart_dirs = NULL;
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
}
}
gsm_util_export_activation_environment (&error);
if (error) {
g_warning ("Failed to upload environment to DBus: %s", error->message);
g_clear_error (&error);
}
session_name = opt_session_name;
#ifdef HAVE_SYSTEMD
gsm_util_export_user_environment (&error);
- if (error) {
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
g_warning ("Failed to upload environment to systemd: %s", error->message);
g_clear_error (&error);
}
#endif
#ifdef ENABLE_SYSTEMD_SESSION
if (use_systemd && !systemd_service) {
g_autofree gchar *gnome_session_target;
const gchar *session_type;
session_type = g_getenv ("XDG_SESSION_TYPE");
/* We really need to resolve the session name at this point,
* which requires talking to GSettings internally. */
if (IS_STRING_EMPTY (session_name)) {
session_name = _gsm_manager_get_default_session (NULL);
}
/* Reset all failed units; we are going to start a lof ot things and
* really do not want to run into errors because units have failed
* in a previous session
*/
gsm_util_systemd_reset_failed (&error);
- if (error) {
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
g_warning ("Failed to reset failed state of units: %s", error->message);
g_clear_error (&error);
}
/* We don't escape the name (i.e. we leave any '-' intact). */
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
/* We started the unit, open fifo and sleep forever. */
systemd_leader_run ();
exit(0);
}
/* We could not start the unit, fall back. */
- g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
- g_clear_error (&error);
+ if (g_getenv ("RUNNING_UNDER_GDM"))
+ g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
+ else
+ g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
+ g_clear_error (&error);
}
#endif /* ENABLE_SYSTEMD_SESSION */
{
gchar *ibus_path;
ibus_path = g_find_program_in_path("ibus-daemon");
if (ibus_path) {
const gchar *p;
p = g_getenv ("QT_IM_MODULE");
if (!p || !*p)
p = "ibus";
gsm_util_setenv ("QT_IM_MODULE", p);
p = g_getenv ("XMODIFIERS");
if (!p || !*p)
p = "@im=ibus";
gsm_util_setenv ("XMODIFIERS", p);
}
g_free (ibus_path);
}
/* We want to use the GNOME menus which has the designed categories.
*/
gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-");
/* Talk to logind before acquiring a name, since it does synchronous
* calls at initialization time that invoke a main loop and if we
* already owned a name, then we would service too early during
--
2.35.1

@ -0,0 +1,115 @@
From d39c345191f83ba37d24c07a831c9bb91cdde079 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Sun, 17 Apr 2022 15:58:13 +0200
Subject: [PATCH 2/2] main: Also clear error when running under GDM
Commit 0349a77ad875 ("main: Lower fallback warning when running in GDM")
removed error logging when running under GDM. However, the error was not
cleared afterwards, leaking it to later operations and causing other
issues.
Closes: #105
---
gnome-session/main.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/gnome-session/main.c b/gnome-session/main.c
index 45ec6597..6a683ae0 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -512,88 +512,86 @@ main (int argc, char **argv)
exit (1);
}
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
} else {
gsm_util_set_autostart_dirs (override_autostart_dirs);
/* Export the override autostart dirs parameter to the environment
* in case we are running on systemd. */
if (override_autostart_dirs) {
g_autofree char *autostart_dirs = NULL;
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
}
}
gsm_util_export_activation_environment (&error);
if (error) {
g_warning ("Failed to upload environment to DBus: %s", error->message);
g_clear_error (&error);
}
session_name = opt_session_name;
#ifdef HAVE_SYSTEMD
gsm_util_export_user_environment (&error);
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
g_warning ("Failed to upload environment to systemd: %s", error->message);
- g_clear_error (&error);
- }
+ g_clear_error (&error);
#endif
#ifdef ENABLE_SYSTEMD_SESSION
if (use_systemd && !systemd_service) {
g_autofree gchar *gnome_session_target;
const gchar *session_type;
session_type = g_getenv ("XDG_SESSION_TYPE");
/* We really need to resolve the session name at this point,
* which requires talking to GSettings internally. */
if (IS_STRING_EMPTY (session_name)) {
session_name = _gsm_manager_get_default_session (NULL);
}
/* Reset all failed units; we are going to start a lof ot things and
* really do not want to run into errors because units have failed
* in a previous session
*/
gsm_util_systemd_reset_failed (&error);
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
g_warning ("Failed to reset failed state of units: %s", error->message);
- g_clear_error (&error);
- }
+ g_clear_error (&error);
/* We don't escape the name (i.e. we leave any '-' intact). */
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
/* We started the unit, open fifo and sleep forever. */
systemd_leader_run ();
exit(0);
}
/* We could not start the unit, fall back. */
if (g_getenv ("RUNNING_UNDER_GDM"))
g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
else
g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
g_clear_error (&error);
}
#endif /* ENABLE_SYSTEMD_SESSION */
{
gchar *ibus_path;
ibus_path = g_find_program_in_path("ibus-daemon");
if (ibus_path) {
const gchar *p;
p = g_getenv ("QT_IM_MODULE");
if (!p || !*p)
p = "ibus";
gsm_util_setenv ("QT_IM_MODULE", p);
p = g_getenv ("XMODIFIERS");
--
2.35.1

@ -0,0 +1,27 @@
[Desktop Entry]
Name[de]=Standard (X11 Anzeige-Server)
Name[es]=Estándar (servidor gráfico X11)
Name[fr]=Standard (serveur affichage X11)
Name[it]=Standard (server grafico X11)
Name[ja]=スタンダード (X11 ディスプレイサーバー)
Name[ko]=탠다드 (X11 디스플레이 서버)
Name[pt_BR]=Padrão (servidor de exibição X11)
Name[ru]=Стандартный (дисплейный сервер X11)
Name[zh_CN]=标准X11 显示服务器)
Name[zh_TW]=標準X11顯示服務器
Name=Standard (X11 display server)
Comment[de]=Diese Sitzung meldet Sie bei GNOME an
Comment[es]=Esta sesión accede a GNOME
Comment[fr]=Cette session vous connecte dans GNOME
Comment[it]=Questa sessione esegue l'accesso in GNOME
Comment[ja]=このセッションで GNOME にログインします
Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다
Comment[pt_BR]=Essa sessão o leva ao GNOME
Comment[ru]=Этот сеанс позволяет вам войти в GNOME
Comment[zh_CN]=此会话将您登录到 GNOME
Comment[zh_TW]=這個工作階段讓您登入 GNOME
Comment=This session logs you into GNOME
Exec=gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME

@ -0,0 +1,27 @@
[Desktop Entry]
Name[de]=Standard (Wayland Anzeige-Server)
Name[es]=Estándar (servidor gráfico Wayland)
Name[fr]=Standard (serveur affichage Wayland)
Name[it]=Standard (server grafico Wayland)
Name[ja]=スタンダード (Wayland ディスプレイサーバー)
Name[ko]=스탠다드 (Wayland 디스플레이 서버)
Name[pt_BR]=Padrão (servidor de exibição Wayland)
Name[ru]=Стандартный (дисплейный сервер Wayland)
Name[zh_CN]=标准Wayland 显示服务器)
Name[zh_TW]=標準Wayland顯示服務器
Name=Standard (Wayland display server)
Comment[de]=Diese Sitzung meldet Sie bei GNOME an
Comment[es]=Esta sesión accede a GNOME
Comment[fr]=Cette session vous connecte dans GNOME
Comment[it]=Questa sessione esegue l'accesso in GNOME
Comment[ja]=このセッションで GNOME にログインします
Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다
Comment[pt_BR]=Essa sessão o leva ao GNOME
Comment[ru]=Этот сеанс позволяет вам войти в GNOME
Comment[zh_CN]=此会话将您登录到 GNOME
Comment[zh_TW]=這個工作階段讓您登入 GNOME
Comment=This session logs you into GNOME
Exec=gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME

@ -0,0 +1,26 @@
From 523602887f92b448b497e99bf56d0b9f1ef376f7 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Mon, 6 Sep 2021 21:12:38 +0200
Subject: [PATCH] data: Require org.gnome.SettingsDaemon.Subscription
Make sure the gnome-settings-daemon subman plugin gets started on
session startup.
---
data/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/data/meson.build b/data/meson.build
index e02b80d3..1684a99e 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -24,6 +24,7 @@ required_components = {
'org.gnome.SettingsDaemon.Sharing',
'org.gnome.SettingsDaemon.Smartcard',
'org.gnome.SettingsDaemon.Sound',
+ 'org.gnome.SettingsDaemon.Subscription',
'org.gnome.SettingsDaemon.UsbProtection',
'org.gnome.SettingsDaemon.Wacom',
'org.gnome.SettingsDaemon.XSettings',
--
2.31.1

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save