Bug 49547 - Обеспечить возможность установки пакетов с файлами в /*bin на все иерархии
Summary: Обеспечить возможность установки пакетов с файлами в /*bin на все иерархии
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: obirvalger@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 49544
Blocks: 46738
  Show dependency tree
 
Reported: 2024-02-28 12:28 MSK by Arseny Maslennikov
Modified: 2024-04-02 18:03 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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. Всё это уже готово, просто стоит обозначить для истории и догоняющих сборочниц.