On Sun, Nov 15, 2009 at 10:00:02PM +0200, Led wrote: > "Точечные обновления" могут "гарантированно ломаються" даже со всеми > предлагаемыми костылями и зоопарком libfooN (где N - разные циферки). Пример: > > app собран с libfoo.so.1.0, соответственно слинкован с libfoo.so.1 и имеет > зависимость на libfoo.so.1 > > далее, появляется libfoo.so.1.1 (полностью обратно совместимая с > libfoo.so.1.0). > > далее, появляется новый app, собран с libfoo.so.1.1, соответственно слинкован > с libfoo.so.1 и имеет зависимость на libfoo.so.1 > > далее появляетесь вы, делаете "точечное обновление" app - всё отлично > обновляется. > > запускаете app - упс! "неизвестный символ". app "упало" :( > > SharedLibsPolicy в таком случае - никак не помогает :( Есть идея формировать зависимости на сонеймы с учетом символов. Это может выглядеть так: %package -n libfoo Provides(auto): libfoo.so.1 = set:0123abcd...(очень длинная строка) %package -n foo Requires(auto): libfoo.so.1 >= set:abcd0123...(умеренно длинная строка) То есть реализовать зависимости специального вида, которые представляют собой "множество строк" (символов). Вместо обычного сравнения версий для таких зависимостей будет выполняться проверка, что requires set является подмножеством provides set.