Allow users to override language settings in environment

Resolves: #2170474
This commit is contained in:
Ray Strode 2023-05-31 10:34:35 -04:00
parent f4ea07aeee
commit 580556223a
2 changed files with 72 additions and 1 deletions

View File

@ -0,0 +1,63 @@
From a42ccfa0e8be2e658d081c3637ff0f43e2b38d3c Mon Sep 17 00:00:00 2001
From: Takao Fujiwara <tfujiwar@redhat.com>
Date: Tue, 22 Oct 2019 20:44:04 +0900
Subject: [PATCH] gnome-session: avoid setting LC_ unless LANG and region
disagree
At the moment, gnome-session explicitly sets the various LC_ variables
to the user configured region.
That's unnecessary, though. If the LC_ variables are unset,
applications know to use LANG. Furthermore, setting the LC_ variables
makes it so you can't override them with LANG anymore.
This commit makes sure the LC_ variables only get set when absolutely
necesary. That is, when they are different than LANG.
https://gitlab.gnome.org/GNOME/gnome-session/issues/37
---
gnome-session/gnome-session.in | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
index 7d967d34..90566f1d 100755
--- a/gnome-session/gnome-session.in
+++ b/gnome-session/gnome-session.in
@@ -1,25 +1,29 @@
#!/bin/sh
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
[ -n "$SHELL" ]; then
if [ "$1" != '-l' ]; then
exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
else
shift
fi
fi
SETTING=$(gsettings get org.gnome.system.locale region)
REGION=${SETTING#\'}
REGION=${REGION%\'}
if [ -n "$REGION" ]; then
- export LC_TIME=$REGION
- export LC_NUMERIC=$REGION
- export LC_MONETARY=$REGION
- export LC_MEASUREMENT=$REGION
- export LC_PAPER=$REGION
+ 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.41.0.rc2

View File

@ -9,7 +9,7 @@
Name: gnome-session Name: gnome-session
Version: 3.28.1 Version: 3.28.1
Release: 20%{?dist} Release: 21%{?dist}
Summary: GNOME session manager Summary: GNOME session manager
License: GPLv2+ License: GPLv2+
@ -56,6 +56,10 @@ Patch20001: 0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1877997 # https://bugzilla.redhat.com/show_bug.cgi?id=1877997
Patch30001: 0001-main-only-log-check-accelerated-errors-when-debuggin.patch Patch30001: 0001-main-only-log-check-accelerated-errors-when-debuggin.patch
# Allow user to override language settings
# https://bugzilla.redhat.com/show_bug.cgi?id=2170474
Patch40001: 0001-gnome-session-avoid-setting-LC_-unless-LANG-and-regi.patch
BuildRequires: meson BuildRequires: meson
BuildRequires: gcc BuildRequires: gcc
BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(egl)
@ -224,6 +228,10 @@ dconf update
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
%changelog %changelog
* Wed May 31 2023 Ray Strode <rstrode@redhat.com> - 3.28.1-21
- Allow users to override language settings in environment
Resolves: #2170474
* Wed Mar 01 2023 Ray Strode <rstrode@redhat.com> - 3.28.1-20 * Wed Mar 01 2023 Ray Strode <rstrode@redhat.com> - 3.28.1-20
- Work around dconf log spew by renaming dconf profile - Work around dconf log spew by renaming dconf profile
Related: 2070976 Related: 2070976