On Tue, May 16, 2006 at 03:24:42PM +0400, Vitaly Lipatov wrote: > В пакете сначала была версия so.1 (ссылка на so.1.1.0), > а в новой сборке версия изменилась (so.1 стало указывать > на so.1.0.0). Вообще-то как раз soname в данном случае не менялось, а вот изменение версии выглядит весьма странно. Downgrade? Или кто-то наконец научился пользоваться libtool? Надо бы внимательно исследовать этот вопрос - возможно, это ошибка в upstream, тогда лучше исправить её, чтобы получить правильную версию, а не вставлять костыли в спек. > При обновлении такого пакета получается битая ссылка (so.1 продолжает > указывать на so.1.1.0, тогда как должна на so.1.0.0). ldconfig при наличии нескольких библиотек с одинаковым soname выбирает из них библиотеку с наибольшей версией. В данном случае это правило даёт неверный результат. > Что-то не так, а что - не понимаю. Подскажите пожалуйста. > > ldconfig вроде обычным образом вызывается: > %post > %post_ldconfig > > %postun > %postun_ldconfig Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены, а в данном случае ldconfig выбирает библиотеку из старой версии. Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между удалением старых файлов и выполнением %triggerpostun будет промежуток времени, когда ссылка будет указывать на несуществующий файл.