Я нарисовал предварительную (и пока весьма несовершенную) реализацию этого дела. Суть этого дела в том, что сонеймы (имена библиотек) будут предоставлять "множество символов", то есть функций (и переменных), которые из них можно загрузить. Соответственно при линковке можно требовать символы, которые туда разрешаются - и это делается автоматически в 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" реализации, когда символы просто конкатенируются, надо придумать какую-то схему хеширования (чтобы версии у зависимостей были более "короткие"). Пожалуй напишу об этом подробнее - позже.