This implements https://pagure.io/setup/issue/51. The "upstream" is only used to build the package in our dist-git, so we can reduce the total amount of work by moving files downstream and maintaining them there. The package after the rebuild is identical, except for intentional changes (removal of Group, updating of Url, bumping of the Version): $ rpmdiff -iT noarch/setup-2.14.5-2.fc41.noarch.rpm noarch/setup-2.15.0-1.fc41.noarch.rpm S.5..... GROUP S.5..... URL removed REQUIRES config(setup) = 2.14.5-2.fc41 added REQUIRES config(setup) = 2.15.0-1.fc41 removed PROVIDES config(setup) = 2.14.5-2.fc41 removed PROVIDES setup = 2.14.5-2.fc41 added PROVIDES config(setup) = 2.15.0-1.fc41 added PROVIDES setup = 2.15.0-1.fc41
109 lines
3.3 KiB
Tcsh
109 lines
3.3 KiB
Tcsh
# /etc/profile.d/lang.csh - exports environment variables, and provides fallback
|
|
# for CJK languages that can't be displayed in console.
|
|
# Resets the locale if unavailable.
|
|
|
|
unset LANG_backup
|
|
|
|
# If unavailable, reset to the default. Do this before reading in any
|
|
# explicit user configuration. We simply check if locale emits any
|
|
# warnings, and assume that the settings are invalid if it does.
|
|
set locale_error=`(/usr/bin/locale >/dev/null) |& cat`
|
|
if ("${locale_error}" != "") then
|
|
if (${?LANG}) then
|
|
setenv LANG C.UTF-8
|
|
endif
|
|
unsetenv LC_ALL
|
|
setenv LC_CTYPE C.UTF-8
|
|
setenv LC_NUMERIC C.UTF-8
|
|
setenv LC_TIME C.UTF-8
|
|
setenv LC_COLLATE C.UTF-8
|
|
setenv LC_MONETARY C.UTF-8
|
|
setenv LC_MESSAGES C.UTF-8
|
|
setenv LC_PAPER C.UTF-8
|
|
setenv LC_NAME C.UTF-8
|
|
setenv LC_ADDRESS C.UTF-8
|
|
setenv LC_TELEPHONE C.UTF-8
|
|
setenv LC_MEASUREMENT C.UTF-8
|
|
setenv LC_IDENTIFICATION C.UTF-8
|
|
else
|
|
if (${?LANG}) then
|
|
set LANG_backup=${LANG}
|
|
endif
|
|
endif
|
|
|
|
foreach config (/etc/locale.conf "${HOME}/.i18n")
|
|
if (-f "${config}") then
|
|
# NOTE: We are using eval & sed here to avoid invoking of any commands & functions from those files.
|
|
eval `/usr/bin/sed -r -e 's/^[[:blank:]]*([[:upper:]_]+)=([[:print:][:digit:]\._-]+|"[[:print:][:digit:]\._-]+")/setenv \1 \2;/;t;d' ${config}`
|
|
endif
|
|
end
|
|
|
|
if (${?LANG_backup}) then
|
|
setenv LANG "${LANG_backup}"
|
|
endif
|
|
|
|
unset LANG_backup config locale_error
|
|
|
|
# ----------------------------------------------
|
|
|
|
# The LC_ALL is not supposed to be set in /etc/locale.conf according to 'man 5 locale.conf'.
|
|
# If it is set, then we expect it is user's explicit override (most likely from ~/.i18n file).
|
|
# See 'man 7 locale' for more info about LC_ALL.
|
|
if (${?LC_ALL}) then
|
|
if (${?LANG}) then
|
|
if (${LC_ALL} != ${LANG}) then
|
|
setenv LC_ALL
|
|
else
|
|
unsetenv LC_ALL
|
|
endif
|
|
else
|
|
unsetenv LC_ALL
|
|
endif
|
|
endif
|
|
|
|
# The ${LANG} manipulation is necessary only in virtual terminal (a.k.a. console - /dev/tty*):
|
|
set in_console=`/usr/bin/tty | /usr/bin/grep -vc -e '/dev/tty'`
|
|
|
|
if (${?LANG} && ${?TERM}) then
|
|
if (${TERM} == 'linux' && $in_console == 0) then
|
|
set utf8_used=`echo ${LANG} | /usr/bin/grep -vc -E -i -e '^.+\.utf-?8$'`
|
|
|
|
if (${utf8_used} == 0) then
|
|
switch (${LANG})
|
|
case en_IN*:
|
|
breaksw
|
|
case ja*:
|
|
case ko*:
|
|
case si*:
|
|
case zh*:
|
|
case ar*:
|
|
case fa*:
|
|
case he*:
|
|
case *_IN*:
|
|
setenv LANG en_US.UTF-8
|
|
breaksw
|
|
endsw
|
|
else
|
|
switch (${LANG})
|
|
case en_IN*:
|
|
breaksw
|
|
case ja*:
|
|
case ko*:
|
|
case si*:
|
|
case zh*:
|
|
case ar*:
|
|
case fa*:
|
|
case he*:
|
|
case *_IN*:
|
|
setenv LANG en_US
|
|
breaksw
|
|
endsw
|
|
endif
|
|
|
|
# NOTE: We are not exporting the ${LANG} here again on purpose.
|
|
# If user starts GUI session from console manually, then
|
|
# the previously set LANG should be okay to use.
|
|
endif
|
|
endif
|
|
|
|
unset in_console utf8_used
|