On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote: > On Sat, Oct 26, 2019 at 4:31 PM Andrey Savchenko wrote: > > Добрый день! > > > > Есть ли у нас утилиты для работы с set versions? На вики ничего > > не нашёл. Мне нужно развернуть set: в список символов. > > Понятно, что для этого нужны бинарники, они в пакете есть. > > Set-версия состоит из упорядоченного набора bpp-битных хешей (а > кодируются дельты между хешами). Хеши можно получить через закрытое > API, которое доступно через только через #include "set.c". Прикрепил > пример. > > $ rpm -q --provides glibc-core |grep 'libdl.*set' > libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh > $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh > 0272 > 0a8f > 12b4 > 1f1c > 1fb0 > 23f5 > 31a1 > 3571 > 35d3 > 3bcb Как я понял, это хеши символов. По какому алгоритму они вычисляются? Мне нужно для имеющегося списка символов вычислить аналогичные хеши для дальнейшего сравнения. > > Ещё было бы полезно знать, как получить список символов для каждой > > библиотеки до вычисления хешей. > > Список для Provides делается через /usr/lib/rpm/provided_symbols. > Список для Requires делается более сложным образом с использованием > /usr/lib/rpm/ldd. Best regards, Andrew Savchenko