Preparing... ################################################################################# [100%] 1: inn warning: /etc/news/inn.conf created as /etc/news/inn.conf.rpmnew ( 3%) error: unpacking of archive failed on file /usr/lib/inn/filter: cpio: rename failed - Is a directory E: Some errors occurred while running transaction
В /usr/lib/inn/filter были какие-то самописные файлы, которые не входили в пакет ?
Неа. Ошибка известная, проявляется как раз тогда, когда при обновлении вместо директории создаётся симлинк. Где-то было объяснение, почему так происходит. Решается удалением директории в %pre.
Понятно. У меня-то он, видимо, снёсся, когда я пакет без симлинка ставил на пробу... Кто править будет ? :-) И как. Может быть "mv, если не симлинк" ? Вдруг там у кого бакапы ценные...
http://git.altlinux.org/people/asy/packages/?p=inn.git;a=commitdiff;h=3a697ad115462a4dd9b6c932cb40a37d05801c5a
Кстати, а конструкция "%%defattr(-,root,root)" в спеке в секции %files зачем ? И "%_libdir/%name/" как-то непривычно смотрится, может "%_libdir/%name/*" сделать ?
(В ответ на комментарий №4) > http://git.altlinux.org/people/asy/packages/?p=inn.git;a=commitdiff;h=3a697ad115462a4dd9b6c932cb40a37d05801c5a OK (В ответ на комментарий №5) > Кстати, а конструкция "%%defattr(-,root,root)" в спеке в секции %files зачем ? Осталась с древних времён, когда inn собирали другие люди. > И "%_libdir/%name/" как-то непривычно смотрится, может "%_libdir/%name/*" > сделать ? Нет, не надо трогать.
Предложенное решение не годится: при обновлении пакета сначала происходит распаковка нового, а уже потом удаление старого. Из-за того, что к моменту удаления старого пакета существует симлинк %_libdir/%name/filter -> %_sysconfdir/news/filter происходит удаление содержимого %_sysconfdir/news/filter. Как это обойти сходу не придумал, подозреваю, что надо понаделать каких-нибудь триггеров :3
Что-то я не понял, как это получается. Или тут речь про наличие симлинка вообще ?
Подними стенд в виде контейнера и проведи обновление, тогда будет понятно.
Что-то я протормозил. Симлинк надо просто убрать. А не работало без него только из-за того, что в старом inn.conf остался параметр "pathfilter: /usr/lib/inn/filter". Вопрос только остаётся, надо ли его менять автоматом, при установке.
В общем-то не обязательно, но если хочется такое сделать, то можно.
inn-2.4.5-alt4 -> sisyphus: * Tue Oct 05 2010 Vladimir V. Kamarzin <vvk@altlinux> 2.4.5-alt4 - Fix upgrade breakage introduced in 2.4.5-alt3 (Closes: #23304) - Rebuild with libssl.so.10 and libcrypto.so.10