Bug 49547

Summary: Обеспечить возможность установки пакетов с файлами в /*bin на все иерархии
Product: Sisyphus Reporter: Arseny Maslennikov <arseny>
Component: rpm-buildAssignee: obirvalger <obirvalger>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: aen, arseny, glebfm, imz, ldv, obirvalger, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 49544    
Bug Blocks: 46738    

Description Arseny Maslennikov 2024-02-28 12:28:40 MSK
Вместо того, чтобы менять несколько десятков спеков и делать их несовместимыми либо с merged-usr, либо с unmerged-usr, предлагаю автоматически (например, в brp-модуле) изменять состав пакетов, где что-то ставится и под prefix (/usr/*bin), и вне prefix (/*bin), так, чтобы они ставились на все иерархии, желательно независимо от split-usr.

Есть способ этого достичь: во всех таких пакетах, где раньше тем или иным способом (симлинки, ...) по путям, в будущем конфликтующим, класть копии одного и того же файла. Жёсткие ссылки не установятся в конфигурацию, где /* и /usr/* на разных ФС.

Некоторые такие пакеты уже были исправлены индивидуально в силу их особенностей и того, что их таких немного:
https://lore.altlinux.org/devel/ZcOoVacL1MN05Sop@cello/
Comment 1 Arseny Maslennikov 2024-02-28 12:33:23 MSK
...Таким образом, бо́льшую часть таких пакетов потребуется всего лишь пересобрать, причём в разных транзакциях (т. е. быстрее)
Comment 2 Arseny Maslennikov 2024-03-13 13:55:07 MSK
https://packages.altlinux.org/en/tasks/327286/

Это все оставшиеся такие пакеты, которые ранее конфликтовали сами с собой по файлам в {,/usr}/{,s}bin, кроме vim, про который заведена bug 49541.

В Sisyphus останутся только будущие межпакетные конфликты по путям под bin и sbin.
Вот их список (перечислены пары вида: путь, содержащие его пакеты):
[('bin/bsh', {'ash', 'bsh'}),
 ('bin/ksh', {'ksh', 'pdksh'}),
 ('bin/mail', {'mailutils', 'mailx'}),
 ('sbin/halt', {'shepherd', 'systemd-sysvinit', 'sysvinit'}),
 ('sbin/reboot', {'shepherd', 'systemd-sysvinit', 'sysvinit'}),
 ('sbin/shutdown', {'shepherd', 'systemd-sysvinit', 'sysvinit'})]

Это случаи, где пакеты и так вынуждены конфликтовать, и они не мешают нам продолжать.
Comment 3 Arseny Maslennikov 2024-03-13 13:55:44 MSK
(In reply to Arseny Maslennikov from comment #1)
> ...Таким образом, бо́льшую часть таких пакетов потребуется всего лишь
> пересобрать, причём в разных транзакциях (т. е. быстрее)

Эту бо́льшую часть пересобирать вовсе не потребуется.
Comment 4 Arseny Maslennikov 2024-04-02 18:03:40 MSK
(In reply to Arseny Maslennikov from comment #2)
> https://packages.altlinux.org/en/tasks/327286/
> 
> Это все оставшиеся такие пакеты, которые ранее конфликтовали сами с собой по
> файлам в {,/usr}/{,s}bin, кроме vim, про который заведена bug 49541.
> 

Ещё https://git.altlinux.org/tasks/343748. Всё это уже готово, просто стоит обозначить для истории и догоняющих сборочниц.