В rpm 4.0.4 проблему замены каталогов на симлинки и симлинков на каталоги можно было обойти %pre-скриптом. rpm 4.x проверяет замену каталогов на симлинки заранее (до %pre) и отказывается начинать транзакцию. Пользователи rpm 4.x для решения этой задачи используют %pretrans, который не реализован в нашем rpm-build.
Так-то оно так, но гораздо лучше было бы реализовать корректную замену каталогов на симлинки и симлинков на каталоги непосредственно в rpm 4.x, тогда и грязные хаки в %pre/%pretrans были бы менее востребованы.
(In reply to comment #0) > В rpm 4.0.4 проблему замены каталогов на симлинки и симлинков на каталоги можно > было обойти %pre-скриптом. rpm 4.x проверяет замену каталогов на симлинки > заранее (до %pre) и отказывается начинать транзакцию. О как. То есть, старое решение из спека в сизифных пакетах можно смело убирать, по-старому уже и не вернётся? В принципе, если изменение было в p8, или ранее, то в Сизифе может и не надо, но в будущем-то тоже явно необходимость у кого-то возникнет...
не надо убирать, не спешите. Дима как раз пишет про то, что возможен алгоритм обновления с помощью старого rpm.
Проблема добралась до пакета, который есть почти у каждого: https://bugzilla.altlinux.org/43806 О резоне добавления %pretrans написал здесь: https://bugzilla.altlinux.org/show_bug.cgi?id=34619#c30
(In reply to Dmitry V. Levin from comment #1) > Так-то оно так, но гораздо лучше было бы реализовать корректную замену > каталогов на симлинки и симлинков на каталоги непосредственно в rpm 4.x, > тогда и грязные хаки в %pre/%pretrans были бы менее востребованы. Так-то оно так, но, к сожалению, не всё, что лучше, реализуемо за конечное время.
(In reply to Dmitry V. Levin from comment #1) > корректную замену каталогов на симлинки и симлинков на каталоги > непосредственно в rpm 4.x 1. В апстриме это не реализовано? 2. Это не решаемая задача или простая задача, которую всем лень сделать?
(In reply to Vitaly Chikunov from comment #6) > (In reply to Dmitry V. Levin from comment #1) > > корректную замену каталогов на симлинки и симлинков на каталоги > > непосредственно в rpm 4.x > > 1. В апстриме это не реализовано? Нет, в апстриме это не реализовано, см. handleRemovalConflict(). > 2. Это не решаемая задача или простая задача, которую всем лень сделать? Видимо, это очень сложная задача.
(In reply to Dmitry V. Levin from comment #7) > (In reply to Vitaly Chikunov from comment #6) > > 2. Это не решаемая задача или простая задача, которую всем лень сделать? > > Видимо, это очень сложная задача. Даже постановка задачи является непростой задачей.
rpm-build-4.0.4.185-alt1 -> sisyphus: Tue Oct 11 2022 Vitaly Chikunov <vt@altlinux> 4.0.4.185-alt1 - Backport packaging '%pretrans' Lua scriptlets (ALT#36628).
Виталий, спасибо! Уже можно использовать ? Есть примеры ?
(In reply to Anton Farygin from comment #10) > Виталий, спасибо! Уже можно использовать ? Есть примеры ? Можно попробовать. Примеры тут https://docs.fedoraproject.org/en-US/packaging-guidelines/Directory_Replacement/