[devel] Shared Library Policy и непрямые зависимости

Ivan A. Melnikov =?iso-8859-1?q?iv_=CE=C1_altlinux=2Eorg?=
Пт Июл 18 11:59:07 MSD 2008


Здравствуйте.

Я тут внимательно прочитал draft на shared library policy, и у меня возник
вопрос.

Предположим что некая библиотека A компонуется с библиотеками B и С,
а B сама по себе требует C:

A.so.1..........
|              |
v              v
B.so.1--->C.so.1

//прошу прощения за кривизну картинки, стрелочками обозначается отношение 
//"динамически компонуется с"

Выходит новая версия C и c этой новой версией пересобирают B:

A.so.1--->C.so.1
|
v
B.so.1--->C.so.2

При этом soname B не изменился, потому что C используется глубоко внутри B и 
на его ABI используемая версия C не влияет никак (по мнению апстрима B).

Ещё интереснее если верхнем правом углу первой диаграммы окажется D.so.N. 
Можно придумать и более интересные графы.

До внедрения shared library policy она решалась просто: C.so.1 и C.so.2 не
могли одновременно находиться в системе, A получало анметы и его приходилось
пересобирать.

Если C удовлетворяет shared library policy, такая ситуация может возникнуть в
системах пользователей (например, при доустановке отдельных пакетов), причём
она может долгое время оставаться незамеченной или проявляться неожиданным,
неприятным и не очевидным образом.

Соответственно, мне хотелось бы узнать:
- должен ли что-то делать майнтейнер B чтобы такого не было?
- если должен, то что?
- если не он, то кто?
- или, может быть, я чего-то не понимаю и развожу панику раньше времени?

-- 
Best Regards,
Ivan A. Melnikov <iv на altlinux.org>


Подробная информация о списке рассылки Devel