Bug 38951 - нечитаемый текст предупреждения /etc/X11/xinit/xrootwarn* в локали UTF-8
Summary: нечитаемый текст предупреждения /etc/X11/xinit/xrootwarn* в локали UTF-8
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: xinitrc (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL: http://www.opennet.ru/openforum/vsluh...
Keywords: usability
Depends on:
Blocks:
 
Reported: 2020-09-16 23:54 MSK by Michael Shigorin
Modified: 2022-08-03 22:58 MSK (History)
5 users (show)

See Also:


Attachments
Патч (389 bytes, patch)
2022-08-03 22:56 MSK, Nikolay Burykin
no flags Details | Diff
Сообщение в неправильной кодировке (71.95 KB, image/jpeg)
2022-08-03 22:57 MSK, Nikolay Burykin
no flags Details
Сообщение, в "первозданном" виде (44.08 KB, image/jpeg)
2022-08-03 22:58 MSK, Nikolay Burykin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2020-09-16 23:54:16 MSK
Пишут, что: "делаю startx: там оранжевый фон и на нём какая-то ошибка, полученная путём преобразования UTF-8 в ASCII, то есть нечитаемый текст, в котором букв в два раза больше, чем надо".
Comment 1 Nikolay Burykin 2022-08-03 22:55:39 MSK
Волей случая столкнулся с этой ошибкой, и возможно могу предложить решение проблемы.
Само решение оформил отдельным патчем. Если не будет возражений, могу сам же его и применить к пакету в рамках NMU.

[ "$LANG" = POSIX -o "$LANGUAGE" = POSIX ] &&
       SourceIfNotEmpty /etc/sysconfig/i18n ||:

В момент запуска скрипта xrootwarn отрабатывает условие, указанное выше. В результате чего языковые переменные LC оказываются выставлены в ru_RU.UTF-8, что и является причиной отображения предупреждения в неправильной кодировке. Если оставить значения переменных как POSIX, или выставить в en_US.UTF-8, то в этом случае сообщение с предупреждением показывается в том виде, в котором и ожидается. 

Предлагаю внутри скрипта экспортировать переменную LC_MESSAGES="en_US.UTF-8", которая будет действительна только в рамках запущенного скриптом процесса, и соответственно никак не повляет на дальнейшую работу системы с локалями в целом.

В прикладываемом патче я ограничился только добавлением экспорта переменной LC_MESSAGES, но как мне кажется имеет смысл удалить полностью указанное условие. Не столько из за влияния на появление ошибки (по правде говоря не так уже много людей, в здравом уме хотят залогиниться рутом в GUI), сколько по причине дублирования аналогичного функционала, выполняющегося на этапе применения скриптов из /etc/profiles.d, и от которого пользователь всё равно никуда не денется даже логинясь под рутом.
Comment 2 Nikolay Burykin 2022-08-03 22:56:26 MSK
Created attachment 11272 [details]
Патч
Comment 3 Nikolay Burykin 2022-08-03 22:57:30 MSK
Created attachment 11273 [details]
Сообщение в неправильной кодировке
Comment 4 Nikolay Burykin 2022-08-03 22:58:08 MSK
Created attachment 11274 [details]
Сообщение, в "первозданном" виде