Usrmerge/FurtherOptions: различия между версиями
(Новая страница: «Заранее приношу извинения, набирал текст второпях; надеюсь, не допустил фактических ошибок. -- arseny@ === Статус === Сейчас у нас в пакете usrmerge есть скрипт, способный аккуратно перенести файлы и каталоги из unmerged-legacy-каталогов под /usr. Возможно, в нём потребуетс...») |
(нет различий)
|
Версия от 12:52, 18 октября 2023
Заранее приношу извинения, набирал текст второпях; надеюсь, не допустил фактических ошибок. -- arseny@
Статус
Сейчас у нас в пакете usrmerge есть скрипт, способный аккуратно перенести файлы и каталоги из unmerged-legacy-каталогов под /usr. Возможно, в нём потребуется переработать обработку уже существующих симлинков не вида /$x/$y <-> /usr/$x/$y. Симлинки указанного вида он восстанавливать умеет; в коде они обнаруживаются, и для них запрограммировано явное действие.
Требует дискуссии
В процессе подготовки базовой сборочной среды, в которой /bin, /sbin и /lib* являются симлинками внутрь /usr, обнаружилось, что:
- пакеты имеют зависимости на файлы в этих каталогах, например, Requires: /bin/awk;
- пути в /bin и проч. прописываются в hashbang генерируемых скриптов, и это не только /bin/sh;
... Стало понятно, что для ручного исправления всего этого хозяйства потребуется очень много усилий, и нужно максимально автоматизировать переход.
Можно выделить два тактических направления движения вперёд:
- Запатчить rpm, чтобы тот при установке/обновлении/удалении пакетов определял, будет ли установлен, обновлён или удалён файл вида /usr/$d/$x, и в этом случае проводил аналогичное действие с /$d/$x, если это необходимо (автор идеи: legion@)
- Попытаться соорудить вспомогательную логику на макросах, и включить её в состав rpm-build. В репозиториях без поддержки unmerged-usr эти макросы будут раскрываться в то, что нужно включить в %install, %files, %post (автор идеи: iv@; я считаю, что мы не потянем ручные правки такого масштаба в спеках) Ваня счёл, что пакетов, где нужно будет это сделать, немного: лишь те, которые удовлетворяют зависимостям на unmerged-usr-пути. Этим путём пошли SuSE, но у них можно глобально на уровне сборочницы переключать ряд макросов. glebfm@ заявил, что мы можем так же: нам ничто не мешает переключать макросы в пакете rpm-build.