[devel] symbols into dependencies

Alexey Tourbin at at altlinux.ru
Sun Nov 15 21:14:43 UTC 2009


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20091116/7c74c13a/attachment.bin>


More information about the Devel mailing list