[devel] libxslt is broken

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Июн 27 06:50:35 MSD 2006


On Tue, Jun 27, 2006 at 01:19:25AM +0400, Mikhail Zabaluev wrote:
> В Пнд, 26/06/2006 в 14:26 +0400, Alexey Tourbin пишет:
> > Налицо нарушение бинарной совместимости.  Новая libxslt не работает со
> > старой libxml2.  Между прочим, эта "ошибка" была автоматически и
> > своевременно обнаружена:
> > 
> > Subject: [Sisyphus-cybertalk] I: Sisyphus-20060614 abi_drifts: +13 (2325)
> > libxslt /usr/lib/libxslt.so.1.1.17 libxml2 /usr/lib/libxml2.so.2.6.22 libxml2 /usr/lib/libxml2.so.2.6.26 libxml2.so.2 T xmlXPathContextSetCache
> > 
> > Проще всего в libxslt поставить зависимость на новую версию libxml2,
> > в которой появился символ xmlXPathContextSetCache.
> 
> Спасибо, будет в следующем релизе.
> Буду уделять больше внимания сообщениям об ABI drifts, особенно если мне
> укажут на руководство по их правильной интерпретации.

Правильная интерпретация может быть не очевидна, но это потому что и
сама проблема нарушения бинарной совместимости не столь очевидна.

abidrift ::= {newpkg newbin} {oldlibpkg oldlibpath} {newlibpkg newlibpath} soname T sym

Идет обработка двух срезов сизифа.  Префикс "new" соответствует текущему
срезу сизифа, префикс "old" -- срезу от 2005/10/20.

{newpkg newbin} -- клиент библиотеки, в данном случае libxslt /usr/lib/libxslt.so.1.1.17;
{oldlibpkg oldlibpath} -- информация о старой библиотеке libxml2 /usr/lib/libxml2.so.2.6.22;
{newlibpkg newlibpath} -- информация о новой библиотеке libxml2 /usr/lib/libxml2.so.2.6.26;
soname -- он одинаковый у старой и новой библиотеки, и его требует клиент библиотеки;
T -- тип символа, скорее всего T (text т.е. код);

sym -- имя символа; ссылка на этот символ есть у клиента; этот символ
также предоставляет новая библиотека, но он отсутствует в старой
библиотеке.

Такова семантика проблемы "новые программы не работают со старыми
библиотеками".  Нужно предъявить 1) саму программу 2) две версии
библиотеки 3) символ, который разрешается в более новую библиотеку
но не разрашается в более старую.

Более понятно я вряд ли смогу объяснить.  В общем-то скрипт опубликован
в пакете qa-robot-0.3, хотя я далек от мысли, что этот скрипт написан
понятно... :)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060627/17548289/attachment-0001.bin>


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