Bug 41023

Summary: Поле Packager должно совпадать с тем, кто делал тэг на сборку (или src.rpm)
Product: Infrastructure Reporter: Anton Farygin <rider>
Component: girarAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: Andrey Cherepanov <cas>
Severity: major    
Priority: P5 CC: aen, glebfm, iv, ldv, rider, vseleznv
Version: unspecified   
Hardware: x86_64   
OS: Linux   
Bug Depends on:    
Bug Blocks: 41544, 41942, 43772, 49104, 40765, 41684    

Description Anton Farygin 2021-09-28 14:55:28 MSK
Виталий Липатов собирал пакет, в котором в поле Packager написан qa@packages.altlinux.org

Соответственно возникает вывод, что кто угодно можно собрать какой-то произвольный пакет и написать в поле Packager не имеющего никакого к этому отношения человека, вплоть до вообще не существующего ментейнера ?

Выглядит, по крайней мере, не очень красиво.

$ rpm -qp --qf '%{PACKAGER}\n' http://git.altlinux.org/tasks/archive/done/_276/283196/build/100/x86_64/srpm/gdal-3.0.4-alt1.5.src.rpm
ALT QA Team <qa@packages.altlinux.org>

Предлагаю зафиксировать в проверке что в поле Packager если что-то и будет прописано, то оно должно полностью соответствовать тому, кто отправляет задание на сборку.

Ну или, в идеале, запретить поле Packager - оно сейчас неплохо формируется само на основании gpg подписи отправившего пакет человека.
Comment 1 Dmitry V. Levin 2021-09-28 14:58:50 MSK
Я раньше добавлял поле Packager в пакеты, которым делал NMU, потому что не хотел попадать в packager'ы, которых считают мантейнерами.
Comment 2 Anton Farygin 2021-09-28 15:07:19 MSK
Очень сложно понятие - кого считать сопровождающим пакета.
Вот ещё один пример, в котором настоящий ментейнер не соответствует содержимому поля Packager:
rpm -qp --qf '%{PACKAGER}\n' --changelog http://git.altlinux.org/tasks/archive/done/_279/286036/build/100/x86_64/srpm/python3-module-google-auth-library-python-2.2.0-alt1.src.rpm

Т.е. понятно что поле Packager в этом случае надо считать не как 'ответственный за пакет' а как 'человек, последний раз собравший данный пакет'. В этом случае попадание в это поле не означает ничего страшного.

А сопровождающего пакет можно вычислить по changelog, используя для этого не очень сложную формулу.
Comment 3 Anton Farygin 2021-09-30 16:37:29 MSK
Так какой вердикт ?
С этим полем есть, на мой взгляд, весьма серьёзная проблема - например у нас Стас Иевлев сопровождает 49 пакетов в Sisyphus. Регулярно. Сам этого не подозревая.

Помимо моральной стороны дела тут может вылезти и юридическая. На мой взгляд требуется вносить изменения безотлагательно.
Comment 4 Vladimir D. Seleznev 2021-09-30 17:50:45 MSK
(In reply to Anton Farygin from comment #2)
> Т.е. понятно что поле Packager в этом случае надо считать не как
> 'ответственный за пакет' а как 'человек, последний раз собравший данный
> пакет'.

Согласен.

> В этом случае попадание в это поле не означает ничего страшного.
Comment 5 Dmitry V. Levin 2021-09-30 19:50:19 MSK
Надеюсь, я смогу подумать на эту тему на следующей неделе.
Comment 6 Anton Farygin 2021-10-12 21:01:04 MSK
Я примерно посмотрел по количеству пакетов, в которых прописан Packager - это 6669.

А вот с числом пакетов, в которых Packager не совпадает с %changelog начинается совсем интересное - много кто пишет в %changelog совсем не ту же запись, которая есть в %packager. У кого-то просто отличается домен (altlinux.ru vs altlinux.org), а кто-то в Packager называет себя одним образом, а в %changelog другим.

Плюс ещё есть группы - что-то вроде kernel team, у пакетов которых в Packager прописано  Kernel Maintainers Team <kernel@packages.altlinux.org>
и который на самом деле вообще не имеет никакого смысла, т.к. врятли кем-то читаем и вместо этого имени можно было бы написать placeholder.

В итоге я разными манипуляциями получил примерно около пары тысяч пакетов, в которых packager и last change всё-таки не совпадает.

Но можно пойти чуть дальше и просто на уровне girar писать в Packager last changelog entry, валидируя последнюю на соотвествие каким-то базовы правилам.

Многие из тех разработчиков, с которыми я пообщался вообще не обращают внимания на эту запись, а кто-то её использует вредным образом, отказываясь принимать на себя поддержку фактически поддерживаемому пакету (например, 389-ds)
Но в целом все за то, что бы были понятные правила использования данного тэга rpm.
Comment 7 Anton Farygin 2021-10-18 08:30:12 MSK
Но есть некоторые пакеты, в которых совершенно не хочется становиться Packager'ом.

Например, handbrake

Выручает NMU: - если встречается NMU, то можно игнорировать эту changelog entry и переходить к следующией и так до тех пор, пока не будет выяснен истинный Packager.
Comment 8 Anton Farygin 2021-11-27 12:29:01 MSK
Дима, удалось подумать над этой проблемой ?

Мы добавили отображение пакетов мейнтейнера по ACL, но это всё равно не покрывает всех возможных случаев, когда настоящий мейнтейнер не соответствует ни записи в ACL, ни тэгу Packager.

https://beta.packages.altlinux.org/ru/sisyphus/maintainers/ldv/srpms?by_acl=nick

Точнее говоря ACL вообще может не соответствовать действительности и это может быть правильным (так задумано).

Я, честно говоря, и сам переодически забываю удалять поле Packager, подхватывая пакеты с @nobody.

Самый явный пример таких подхваченных пакетов можно наблюдать тут:
https://beta.packages.altlinux.org/ru/sisyphus/maintainers/real/srpms?order_by=-buildtime
Comment 9 Ivan A. Melnikov 2024-01-18 09:56:32 MSK
(In reply to Anton Farygin from comment #0)
> Виталий Липатов собирал пакет, в котором в поле Packager написан
> qa@packages.altlinux.org

(In reply to Anton Farygin from comment #6)
> Плюс ещё есть группы - что-то вроде kernel team, у пакетов которых в
> Packager прописано  Kernel Maintainers Team <kernel@packages.altlinux.org>
> и который на самом деле вообще не имеет никакого смысла, т.к. врятли кем-то
> читаем и вместо этого имени можно было бы написать placeholder.

При попытке найти документацию на тег Packager, я нашёл такое:
https://www.altlinux.org/Packager_Teams

Мне кажется нормальным, что пакет поддерживается группой. Мне кажется печальным, что у нас практически не сложилось такой практики.

Конечно важно,
- чтобы группа существовала
- чтобы указанный e-mail работал (kernel@packages.altlinux.org вроде работает)
- что qa@, everybody@ и nobody@ не поддерживают пакеты, так что packager'ами быть не могут.