[devel] abi_drift

Igor Zubkov =?iso-8859-1?q?icesik_=CE=C1_mail=2Eru?=
Чт Апр 20 13:59:25 MSD 2006


В сообщении от 20 апреля 2006 07:17 Alexey Tourbin написал(a):
> On Thu, Apr 20, 2006 at 04:27:55AM +0400, Alexey Tourbin wrote:
> > Кстати, я придумал ещё одного робота, который анализирует бинарную
> > совместимость между двумя различными срезами сизифа.  Идея в
> > следующем: при частичном обновлении возможны конфигурации, когда
> > приложение из нового среза не работает с библиотекой из старого среза,
> > потому что использует какие-то функции, которые появились в более новой
> > версии библиотеки (в новом срезе сизифа).
>
> Проанализировал archive/Sisyphus/2006/01/04/files/i586/RPMS против
> текущего сизифа.  Полный список прилагается.  Поля в списке такие:
>
> abidrift ::= newpkg newbin oldlibpkg oldlibpath newlibpkg newlibpath soname
> T sym
>
> Смысл этого отношения такой, что пакет newpkg работает с библиотекой
> newlibpkg, но не будет работать с библиотекой oldlibpkg, потому что в
> новой библиотеке есть симовол sym, который используется newbin (а в
> старой библиотеке этого символа нет).

А теперь, научно-популярно. На примере пакета devilspie:
devilspie       /usr/bin/devilspie      
glib2   /usr/lib/libglib-2.0.so.0.800.4 glib2   /usr/lib/libglib-2.
0.so.0.1000.2   libglib-2.0.so.0        T       g_intern_static_string

devilspie       /usr/bin/devilspie      
glib2   /usr/lib/libglib-2.0.so.0.800.4 glib2   /usr/lib/libglib-2.
0.so.0.1000.2   libglib-2.0.so.0        T       g_slice_alloc0

devilspie       /usr/bin/devilspie      
glib2   /usr/lib/libglib-2.0.so.0.800.4 glib2   /usr/lib/libglib-2.
0.so.0.1000.2   libglib-2.0.so.0        T       g_slice_free1

Самый простой способ починить этот пакет, прибить гвоздями минимальную версию 
glib2 для использования. В текущий момент это (это та версия которая сейчас 
лежит в репозитории):
[icesik на iceberg ~]$ rpm -q glib2
glib2-2.10.2-alt1
[icesik на iceberg ~]$ 
Т.е.:
Requires: glib2 >= 2.10.2-alt1

Второй способ (более правильный, но более сложный), найти версию glib2 в 
которой были добавлены эти символы и прописать её в Requires.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20060420/17ed8639/attachment-0001.bin>


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