[devel] abi_drift

Alexey Tourbin at на altlinux.ru
Чт Апр 20 14:07:42 MSD 2006


On Thu, Apr 20, 2006 at 12:59:25PM +0300, Igor Zubkov wrote:
> А теперь, научно-популярно. На примере пакета 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.

Ещё более правильный способ - наладить symbol versioning у glib2.
Тогда все пакеты, которые используют g_intern_static_string и т.п.,
автоматически получат зависимость вида libglib-2.0.so.0(GLIB_ВЕРСИЯ).

Я же делал такую штуку для 2.8.  Не знаю, для 2.10 было это сделано или
нет.  Посмотрю на досуге. :)
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20060420/3c3b1de1/attachment.bin 


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