| Summary: | initscripts-5.49-ipl31mdk: incorrect RPM_INSTALL_LANG | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Sergey Vlasov <vsu> |
| Component: | rootfiles | Assignee: | placeholder <placeholder> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P4 | CC: | glebfm, ldv, placeholder, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Я сейчас использую другой подход: в файле /root/.i18n изменена последняя строка на eval `/bin/egrep -s \'^(SYSFONT|RPM_INSTALL_LANG)\' /etc/sysconfig/i18n` ||: Думаю именно этот вариант поместить в очередную версию пакета rootfiles. Соображения? Я сейчас использую другой подход: в файле /root/.i18n изменена последняя строка на eval `/bin/egrep -s \'^(SYSFONT|RPM_INSTALL_LANG)\' /etc/sysconfig/i18n` ||: Думаю именно этот вариант поместить в очередную версию пакета rootfiles. Соображения? Раз /root/.i18n входит в пакет rootfiles, в принципе можно и так. Однако это создаст проблемы в следующей ситуации: - Пользователь создал в домашнем каталоге файл .i18n, в котором не вписал RPM_INSTALL_LANG. В результате у него RPM_INSTALL_LANG установится по LANGUAGE. - Этот пользователь дает команду su без \'-\' (или su -c \'rpm -Uvh ....\', или sudo...). Вообще RPM_INSTALL_LANG по своему эффекту более общесистемная переменная, чем LANGUAGE/LC_*. Возможно, имеет смысл требовать ее перекрытия в ~/.i18n в явном виде, а при отсутствии использовать общесистемное значение. Раз /root/.i18n входит в пакет rootfiles, в принципе можно и так. Однако это создаст проблемы в следующей ситуации: - Пользователь создал в домашнем каталоге файл .i18n, в котором не вписал RPM_INSTALL_LANG. В результате у него RPM_INSTALL_LANG установится по LANGUAGE. - Этот пользователь дает команду su без \'-\' (или su -c \'rpm -Uvh ....\', или sudo...). Вообще RPM_INSTALL_LANG по своему эффекту более общесистемная переменная, чем LANGUAGE/LC_*. Возможно, имеет смысл требовать ее перекрытия в ~/.i18n в явном виде, а при отсутствии использовать общесистемное значение. Может быть, ее вообще не надо устанавливать, если она явно не выставлена в одном из i18n-файлов? Может быть, ее вообще не надо устанавливать, если она явно не выставлена в одном из i18n-файлов? Может быть. В этом случае поставится все подряд, но это не так плохо, как неожиданное отсутствие файлов локализации. И, естественно, поменять /root/.i18n, чтобы там все-таки она ставилась. Может быть. В этом случае поставится все подряд, но это не так плохо, как неожиданное отсутствие файлов локализации. И, естественно, поменять /root/.i18n, чтобы там все-таки она ставилась. Fixed in: rootfiles-alt-alt4 initscripts-5.49-ipl32mdk Fixed in: rootfiles-alt-alt4 initscripts-5.49-ipl32mdk |
В /etc/profile.d/lang.sh есть следующий фрагмент: # some ugly back compatibility... should be removed in the future if [ -z \"$RPM_INSTALL_LANG\" ]; then if [ -n \"$LANGUAGE\" ]; then if [ -n \"$LINGUAS\" ]; then RPM_INSTALL_LANG=\"$LANGUAGE:$LINGUAS\" else RPM_INSTALL_LANG=\"$LANGUAGE\" fi else if [ -n \"$LINGUAS\" ]; then RPM_INSTALL_LANG=\"$LINGUAS\" else Unset RPM_INSTALL_LANG fi fi fi В сочетании с /root/.i18n, в котором LANGUAGE=LANG=LC_ALL=LINGUAS=POSIX, это приводит к установке RPM_INSTALL_LANG=POSIX, в результате чего при установке пакетов не устанавливаются файлы локализации. Предлагается заменить этот кусок на: if [ -z \"$RPM_INSTALL_LANG\" ]; then eval `/bin/grep -s ^RPM_INSTALL_LANG /etc/sysconfig/i18n` fi Т.е. при отсутствии явной установки RPM_INSTALL_LANG в ~/.i18n брать его из общесистемной конфигурации, а не из других настроек локализации. --- ---