Bug 13004

Summary: [fix 21] pam: change date format
Product: [ROSA-based products] ROSA Fresh Reporter: Grigorev Andrey <survolog>
Component: Packages from MainAssignee: ROSA Linux Bugs <bugs>
Status: VERIFIED FIXED QA Contact: ROSA Linux Bugs <bugs>
Severity: normal    
Priority: Normal CC: a.proklov, m.novosyolov, pastordidi, survolog, v.potapov
Version: AllFlags: v.potapov: qa_verified+
a.proklov: published+
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Platform: --- ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:

Description Grigorev Andrey 2022-12-08 18:56:51 MSK
Advisory: Fix last login date format in ru gdm.

Tarball have .gmo and .po, but compiler repack .gmo to .mo w/o see to .po, so unpack .mo to .po, edit it and pack back to .mo.

pam 1.5.1-4
https://abf.io/build_lists/4183502
https://abf.io/build_lists/4183500
https://abf.io/build_lists/4183501
https://abf.io/build_lists/4183503
https://abf.io/build_lists/4183504
Comment 1 Mikhail Novosyolov 2022-12-08 22:52:51 MSK
Написал бы комментарием в спеке, что на что меняется, не разберешь же без квасу
Comment 2 Grigorev Andrey 2022-12-09 09:22:16 MSK
man date
Он не сложный.
Comment 3 Mikhail Novosyolov 2022-12-09 09:29:30 MSK
sed -i "/msgstr/ s/ \x25a \x25b \x25e \x25H:\x25M:\x25S \x25Z \x25Y/ \x25a, \x25e \x25B \x25H:\x25M/" Linux-PAM.po

Вот это очень "понятно"
Сколько времени нужно потратить, чтобы расшифровать?
Зачем заставлять людей тратить это время?
Можешь, пожалуйста, вставить комментарий, что на что заменяется?
Например:
# change %Y-%x to %Z-%m
А еще лучше оставить символы через %, не кодируя их в вот такую абракадабру, но вместо одного знака % написать два (%%), чтобы экранировать в rpm, чтоб он не считал это макросами.
Думаю, на ровном месте настолько усложнять разбор полетов в спеке неуместно, обязательно нужно уважить себя и других людей и привести конструкцию к упрощению ее понимания.
Comment 4 Mikhail Novosyolov 2022-12-09 09:31:58 MSK
А еще я бы сделал скриншоты gdm до и после правки, залил их на файлостор и комментариями вставил бы ссылки. Сейчас пос ловесному описанию непонятно, зачем это всё нужно, какое-то там время меняется, а где, что и т.д. непонятно.
Может, это вообще сломает что-нибудь где-нибудь еще, я не могу сейчас подумать, нормальное ли изменение или нет, потому что непонятно, что на что меняется и зачем.
Comment 5 Mikhail Novosyolov 2022-12-09 09:33:00 MSK
Соответственно, в следующей платформе при обновлении PAM уберу эту абракадабру, если не смогу ее расшифровать и если PAM буду я обновлять.
Comment 6 Mikhail Novosyolov 2022-12-09 09:35:41 MSK
И, кстати, выпуском Linux PAM занимается русскоговорящий человек (https://github.com/linux-pam/linux-pam/releases), если считаешь, что в переводе ошибка, то сообщи о ней, пожалуйста, в апстрим (https://github.com/linux-pam/linux-pam/issues) и вставь в спек ссылку комментарием.
Comment 7 Mikhail Novosyolov 2022-12-09 09:38:37 MSK
(In reply to Mikhail Novosyolov from comment #4)
> А еще я бы сделал скриншоты gdm до и после правки, залил их на файлостор и
> комментариями вставил бы ссылки.

Скриншоты лучше сразу в баг-репорт, просто ссылки на него будет достаточно, чтобы сходить, почитать и разобраться в абракадабре.
Comment 8 Mikhail Novosyolov 2022-12-09 09:41:29 MSK
Спустя ночь и утро, только сейчас, я, наверное, догадался, в чем проблема.
Речь, наверное, о времени последнего входа в систему, которое в gdm показывается pam_lastlog после ввода пароля?
То, что даже мне, знакомому с Росой, потребовалось столько времени, чтобы понять, о чем идет речь, и то, не понять, а предположить, говорит о недопустимо низком качестве комментирования сути проблемы.
Понимаю, что не всем нравится писать много букв, но давайте уважать друг друга.
Comment 9 Mikhail Novosyolov 2022-12-09 09:42:05 MSK
(тогда возникает вопрос, причем тут, собственно, сам gdm, если речь о pam_lastlog...)
Comment 10 Grigorev Andrey 2022-12-09 09:46:49 MSK
Поведение hex-представления служебного символа заранее предсказуемо.
Оно прозрачно проверяется и за пределами спека.

Сравни
echo "a%b" |sed "s/a%%b/c/"
echo "a%b" |sed "s/a\x25b/c/"

Вдобавок даже rpmlint на % в комментарии не первый год чиним. Это не похоже на ровное место. Экранировать процент процентом в комментариях (особенно временных) - частая и пустая процедура.
Comment 11 Grigorev Andrey 2022-12-09 10:01:17 MSK
Если что-нибудь случайно опирается на парсинг русского перевода времени последнего входа, при изменении поведения полезно узнать источник. Найти его не слишком просто. За последнее время мне попалось 5 таких источников, хотя, по идее, источник должен бы быть один.
Причём текущий источник состоит из неиспользуемого кода и перепаковываемого бинарника из формата в формат. Не уверен, уместно ли тут сочетание слов "ошибка апстрима". Тут скорее что-то про необходимость рефакторинга впору писать. По-моему, такой апстрим лучше лишний раз не трогать.
Comment 12 Mikhail Novosyolov 2022-12-09 10:20:34 MSK
(In reply to Grigorev Andrey from comment #10)
> Поведение hex-представления служебного символа заранее предсказуемо.
> Оно прозрачно проверяется и за пределами спека.
> 
> Сравни
> echo "a%b" |sed "s/a%%b/c/"
> echo "a%b" |sed "s/a\x25b/c/"
> 
> Вдобавок даже rpmlint на % в комментарии не первый год чиним. Это не похоже
> на ровное место. Экранировать процент процентом в комментариях (особенно
> временных) - частая и пустая процедура.

Сократи, пожалуйста, необходимое для распарсивания твоих конструкций время до времени на прочтение текста, умноженное на 2.
Мне понятнее не стало.
Причем тут rpmlint, не знаю, вообще пофиг, елси поругается.
Comment 13 Grigorev Andrey 2022-12-09 11:20:25 MSK
Вставил комментарий, что \x25 - это %.
Таким образом сократил время на распарсивание конструкции.
Comment 14 Mikhail Novosyolov 2022-12-09 11:37:14 MSK
Сделал такой sed на git Linux-PAM, посмотрел git diff, понял, что изменено.
Добавил в спек пояснение: https://abf.io/import/pam/commit/75a5d842e0f167816664a0d4fe39f87abdd2becd
Выражаю большое спасибо тем, кто уважает труд коллег и не заставляет подтирать за собой.
Comment 15 Mikhail Novosyolov 2022-12-09 11:37:52 MSK
(In reply to Grigorev Andrey from comment #13)
> Вставил комментарий, что \x25 - это %.
> Таким образом сократил время на распарсивание конструкции.

Мне не помогло сократить
Comment 16 Dmitry Postnikov 2022-12-19 11:57:43 MSK
Я в чате Гном в ТГ писал, что надпись в gdm про последний вход в систему не "по-русски" пишет дату. В англоязычном формате. Андрей это правил, в gdm в "шапке", теперь в этой надписи. Видимо она оказалась из pam модуля.

Дискуссия закончилась между вами? Можно брать в работу или будут еще правки?
Comment 17 Mikhail Novosyolov 2022-12-19 12:04:14 MSK
Бери в работу
Comment 18 Dmitry Postnikov 2022-12-19 14:26:02 MSK
***************************
The update sent to testings
Comment 19 Grigorev Andrey 2022-12-20 08:38:32 MSK
Пускай пока так повисит. Вопрос довольно интересный.
Помимо sed в спеках бывает awk, lua, perl, может что-то ещё. Макросы есть, наконец.
Правильнее от такого "магического" кода в спеке избавляться, а не размножать его. Но в каком количестве избавляться - вопрос открытый.
Если я какую-то часть sed посчитал нормой, а в hex представлении и вовсе не сомневался, это без общего обсуждения, а то и обучения мало что меняет.
Наверное, лучше всего ориентироваться на поведение пользователя в терминале. А я честно не видел использования hex в терминале. Там дополнительных служебных символов нет, чтобы была тяга заменять их.
Comment 20 Grigorev Andrey 2022-12-20 08:40:07 MSK
В смысле опубликование поддерживаю. Спустя какое-то время вспомним вопрос - я об этом.
Comment 21 Vladimir Potapov 2022-12-26 18:02:28 MSK
pam-1.5.1-4
https://abf.io/build_lists/4183502
https://abf.io/build_lists/4183500
https://abf.io/build_lists/4183501
https://abf.io/build_lists/4183503
https://abf.io/build_lists/4183504
*************************** Advisory *************************
Fix last login date format in ru gdm.
**************************************************************
QA Verified