From 580556223ada1403ebb47ecbdc9e2a3c69c5a5c3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 31 May 2023 10:34:35 -0400 Subject: [PATCH] Allow users to override language settings in environment Resolves: #2170474 --- ...oid-setting-LC_-unless-LANG-and-regi.patch | 63 +++++++++++++++++++ gnome-session.spec | 10 ++- 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 0001-gnome-session-avoid-setting-LC_-unless-LANG-and-regi.patch diff --git a/0001-gnome-session-avoid-setting-LC_-unless-LANG-and-regi.patch b/0001-gnome-session-avoid-setting-LC_-unless-LANG-and-regi.patch new file mode 100644 index 0000000..72115c8 --- /dev/null +++ b/0001-gnome-session-avoid-setting-LC_-unless-LANG-and-regi.patch @@ -0,0 +1,63 @@ +From a42ccfa0e8be2e658d081c3637ff0f43e2b38d3c Mon Sep 17 00:00:00 2001 +From: Takao Fujiwara +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 + diff --git a/gnome-session.spec b/gnome-session.spec index 94737c5..37a31ab 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -9,7 +9,7 @@ Name: gnome-session Version: 3.28.1 -Release: 20%{?dist} +Release: 21%{?dist} Summary: GNOME session manager 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 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: gcc BuildRequires: pkgconfig(egl) @@ -224,6 +228,10 @@ dconf update %{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml %changelog +* Wed May 31 2023 Ray Strode - 3.28.1-21 +- Allow users to override language settings in environment + Resolves: #2170474 + * Wed Mar 01 2023 Ray Strode - 3.28.1-20 - Work around dconf log spew by renaming dconf profile Related: 2070976