On Wed, 30 Oct 2019 13:46:26 +0300 Vladimir D. Seleznev wrote: > On Wed, Oct 30, 2019 at 12:06:26PM +0300, Andrey Savchenko wrote: > > On Wed, 30 Oct 2019 05:04:27 +0300 Alexey Tourbin wrote: > > > On Tue, Oct 29, 2019 at 9:23 PM Andrey Savchenko wrote: > > > > К сожалению, для решения реальной проблемы этого недостаточно: > > > > > > Давайте решим реальную проблему. Что вы хотите сделать? Left outer join? > > > > Задача следующая: > > > > 1) Есть библиотека foo-1.0 > > 2) Она обновилась до foo-1.0.1 > > 3) Возник unmet пакета bar на libfoo.so (>= set:abcdef) > > > > Мне нужно знать, каких именно символов из foo стало не хватать bar. > > > > Будет при этом left outer join или right inner join — мне абсолютно > > не важно. От rpm мне нужна возможность отображать set в список > > символов (при наличии библиотеки, разумеется). > > Я думаю, проще воспользоваться утилитой rpmsodiff(1) из состава пакета > qa-robot, которая в т.ч. сравнивает символы в пределах SONAME: Она мне ответит на вопрос чем отличается новая и старая библиотека, но не на вопрос какие символы из этой разницы нужны заданному пакету. Понятно, что можно прообждампить все бинарники пакета и затем сопоставить списки символов с вытащенными из разницы. Но ведь rpm уже обладает всей нужной информацией в виде set! Просто нет инструментов для работы с ней :/ P.S. Конкретно возникшую прошблему с libharfbuzz я уже решил иными методами, но безусловно, что подобные задачи будут возникать и в дальнейшем, и было бы очень полезно иметь инструменты для их решения. > $ rpmsodiff /ALT/repo/sisyphus/date/2017/01/01/x86_64/RPMS.classic/libglusterfs3-3.8.4-alt1.x86_64.rpm \ > /ALT/repo/sisyphus/date/2018/01/01/x86_64/RPMS.classic/libglusterfs3-3.12.4-alt1.x86_64.rpm | > head -n 15 > common sonames: > libgfchangelog.so.0 /usr/lib64/libgfchangelog.so.0.0.1 /usr/lib64/libgfchangelog.so.0.0.1 > libgfrpc.so.0 /usr/lib64/libgfrpc.so.0.0.1 /usr/lib64/libgfrpc.so.0.0.1 > libgfxdr.so.0 /usr/lib64/libgfxdr.so.0.0.1 /usr/lib64/libgfxdr.so.0.0.1 > libglusterfs.so.0 /usr/lib64/libglusterfs.so.0.0.1 /usr/lib64/libglusterfs.so.0.0.1 > > --- libglusterfs3-3.8.4-alt1/libgfchangelog.so.0 2016-10-02 02:02:01.000000000 +0300 > +++ libglusterfs3-3.12.4-alt1/libgfchangelog.so.0 2017-12-17 20:05:18.000000000 +0300 > @@ -74,3 +74,3 @@ > gf_readline T > -gf_rfc3986_encode T > +gf_rfc3986_encode_space_newline T > gf_thread_cleanup T > > 1 symbols removed > Best regards, Andrew Savchenko