[devel] abi_drift

Led =?iso-8859-1?q?led_=CE=C1_altlinux=2Eru?=
Чт Апр 20 14:09:47 MSD 2006


В сообщении от 20 апреля 2006 12:59 Igor Zubkov написал(a):
> В сообщении от 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.

Поиск по ChangeLog показывает, что эти символы, похоже, были добавлены в 2.9.1

-- 
Led.



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