Bug 38635

Summary: В пакет включены fixes for ALT Linux Bugzilla, которые ломают кодировку
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: perl-TemplateAssignee: viy <viy>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: at, cas, crux, ender, lav, ldv, mcpain, mike, qa_viy, rider, shaba, viy, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   
URL: https://github.com/abw/Template2

Description Vitaly Lipatov 2020-06-24 15:28:32 MSK
Сборки, начиная с
* Tue Mar 24 2020 Oleg Solovyov <mcpain@altlinux.org> 3.007-alt2
- Fixes for ALT Linux Bugzilla:
  + do not use an uninitialized variable
  + do not use rel2abs, it taints variables
  + encode to utf8 before matching

имеют проблему: двойное перекодирование (примерно из iso8859-1 в utf8) некоторых текстов в интерфейсе багзиллы.

Изменение было такое:
+-    'collapse'        => sub { for ($_[0]) { s/^\s+//; s/\s+$//; s/\s+/ /g };
++    'collapse'        => sub { for ($_[0]) { utf8::encode($_); s/^\s+//; s/\s+$//; s/\s+/ /g; utf8::decode($_); };

В пакете ноль тестов, поэтому доказывать что-либо сложно.

Но вносить в общеиспользуемый пакет какие-то хаки для багзиллы (к слову, в других инстансах без этого патча всё хорошо работает) не очень правильно.

Для багов в пакете есть апстрим:
https://github.com/abw/Template2
Comment 1 viy 2020-06-30 21:54:21 MSK
гм. а mcpain@ то и не было в подписчиках.

Олег, как вы прокомментируете этот баг?
Comment 2 viy 2020-09-02 13:27:16 MSK
Олег не прокоментировал, поэтому сделал ручку для включения патчей Олега.

в новой версии его патчи отключил по умолчанию, 
а для себя он сможет собирать с --with-altbugzilla .
Comment 3 Anton Farygin 2020-09-02 13:29:53 MSK
@mcpain вернётся к базгилле после окончание текущей задачи и обязательно посмотри и это тоже.
Comment 4 Repository Robot 2020-09-02 13:47:21 MSK
perl-Template-3.009-alt1 -> sisyphus:

 Wed Sep 02 2020 Igor Vlasenko <viy@altlinux.ru> 3.009-alt1
 - new version
 - mcpain@'s alt bugzilla patches made optional (closes: #38635)
Comment 5 Vitaly Lipatov 2020-10-18 15:39:38 MSK
(Ответ для Anton Farygin на комментарий #3)
> @mcpain вернётся к базгилле после окончание текущей задачи и обязательно
> посмотри и это тоже.

Посмотрел в /proc/PID/environ для httpd2 — там LANG=POSIX

Добавил в /etc/sysconfig/httpd2
LANG=ru_RU.UTF-8

и LANG в environ появился и проблема ушла.

Точнее, пришлось установить LANG=en_US.UTF-8, потому что некоторые числовые поля стали выводиться в русской локали (с запятой), а это вызвало несовместимость.

Вот тут ещё пишут, что это в багзилле локаль неверно задана:
https://stackoverflow.com/questions/37750947/wide-character-in-substition-messages-from-linguaensentence

Таким образом, проблему которую пытались решить повторным перекодированием в невиноватом пакете, была вызвана некорректной локалью для запущенного инстанса багзиллы.