[devel] povides двух одинаковых библиотек в разных пакетах

mikhailnov на altlinux.org mikhailnov на altlinux.org
Вс Ноя 8 01:18:41 MSK 2020


06.11.2020 19:36, Anton Farygin пишет:
>
>>
>>>> Безусловно, разные пакеты могут предоставлять одинаковую библиотеку, это
>>>> даёт возможность выбора.
>>>> Конечно, такое должно быть допустимо только при одинаковом ABI у них,
>>>> чтобы клиент библиотеки не столкнулся с неожиданностями.
>>>
>>> Одинаковость ABI ещё надо доказывать.
>>> В Сизифе есть abipkgdiff(1), можете его попробовать.
>> Так отлично, abipkgdiff можно использовать в той проверке, о которой вы писали:
>> «Можно добавить в обработку сборочных заданий проверку,
>> предотвращающую расширение этого списка.»
> Если ABI не отличается, то это не значит что библиотеки одинаковые.
И что не отличающийся ABI по факту работает одинаково
>>
>> Я к тому, что нужно регламентировать существование одинаковых библиотек в разных пакетах. Чтобы это было возможно при определённых условиях (намеренном создании таких пакетов).
>
> Можно было бы реализовать схему, при которой к имени provides библиотеки добавляется ещё какое-то число, которое непосредственно влияет на вес при автоматическом выборе библиотеки в процессе установки её клиента.
Этот вопрос уместно рассмотреть в контексте пакета pipewire, который должен быть прозрачной заменой libpulse.so.0 и прочих библиотек,а  значит, если в системе установлен pipewire с реализацией libpulse.so.0, находящейся в пределах путей поиска rtld, то тащить в систему libpulse.so.0 от pulseaudio нет смысла. В случае dnf это можно разрулить через механизм Suggests. На правах костыля можно превратить неверсионированные провайды libpulse.so.0()(64bit) в версионированные вида "libpulse.so.0()(64bit) = priority_10" в одном пакете и "libpulse.so.0()(64bit) = priority_20" в другом, но выглядит сомнительно, а число после знака равенства не является версией.


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