summaryrefslogtreecommitdiff
path: root/0001-gnome-session-don-t-validate-shell-before-using-it.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-gnome-session-don-t-validate-shell-before-using-it.patch')
-rw-r--r--0001-gnome-session-don-t-validate-shell-before-using-it.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/0001-gnome-session-don-t-validate-shell-before-using-it.patch b/0001-gnome-session-don-t-validate-shell-before-using-it.patch
new file mode 100644
index 0000000..d39e8cf
--- /dev/null
+++ b/0001-gnome-session-don-t-validate-shell-before-using-it.patch
@@ -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
+