[devel] I: sonames versioned with symbols

Alexander Bokovoy ab на altlinux.org
Пн Май 10 03:29:09 UTC 2010


2010/5/9 Alexey Tourbin <at на altlinux.ru>:
> Я нарисовал предварительную (и пока весьма несовершенную) реализацию
> этого дела.  Суть этого дела в том, что сонеймы (имена библиотек)
> будут предоставлять "множество символов", то есть функций (и переменных),
> которые из них можно загрузить.  Соответственно при линковке можно
> требовать символы, которые туда разрешаются - и это делается
> автоматически в lib.req с помощью специальных возможностей ld.so/ldd.
> http://git.altlinux.org/people/at/packages/rpm.git?a=shortlog;h=refs/heads/libhash
>
> С целью тестирования я пересобрал (приватно) базовую систему; и теперь
> например у пакета librpm появилась зависимость
> Requires: libz.so.1()(64bit) >= set:gzclose;gzdopen;gzerror;gzflush;gzopen;gzread;gzseek;gzwrite
>
> Соответственно у пакета zlib появился более длинная зависимость
> Provides: libz.so.1()(64bit) = set:adler32;adler32_combine;compress;compress2;compressBound;crc32;...
>
> set-версии надо будет переделать - вместо "poor man's" реализации, когда
> символы просто конкатенируются, надо придумать какую-то схему
> хеширования (чтобы версии у зависимостей были более "короткие").
> Пожалуй напишу об этом подробнее - позже.
Такой механизм можно использовать для выражения сервисных зависимостей
между сложными пакетными группами?

Provides: infrastructure =
set:file-server;domain-controller;dns-server;ldap-server;...;cifs-client

Provides: infrastructure = set:nfs-server

Provides: infrastructure = set:nfs-client

и

Requires: infrastructure >= set:nfs-server;ldap-server;dns-server;file-server;

Можно ли объявлять множества, объединяемые из Provides: разных
пакетов? Так, чтобы Provides: infrastructure = set:...; можно было
"пополнять" из разных пакетов?

-- 
/ Alexander Bokovoy


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