[devel] переработанный документ SharedLibsPolicy (update 1)
Vitaly Chikunov
vt на altlinux.org
Чт Авг 14 22:31:03 MSK 2025
On Thu, Aug 14, 2025 at 02:33:47PM +0400, Ivan A. Melnikov wrote:
> On Thu, Aug 07, 2025 at 05:20:26PM +0300, Anton Farygin wrote:
> [...]
> > * Каждая несовместимая версия библиотеки должна быть в отдельном бинарном
> > пакете.
> > * Название пакета: `libfoo%abiversion`
> > * Если имя библиотеки заканчивается на цифру, то используется подчёркивание:
> > `libfoo_%abiversion`
> > * В пакете не должно быть файлов с путями, не содержащими номер ABI.
>
> Странная формулировка.
Более того, это бесполезное требование так как у нас зависимости на soname.
>
> [...]
> > == Как выбирать %abiversion ==
> >
> > Если библиотека использует `soversion` — используем его как %abiversion.
> >
> > Если `soversion` отсутствует или нестабилен — используем:
> >
> > * возрастающее число: `libfoo0`, `libfoo1`
> > * major-версию: `libqt3`, `libqt4`
> > * major.minor: `libdb4.0`, `libdb4.1`
> > * часть soname: `libcurl4`, `libflac8`
> [...]
> > * Если два пакета конфликтуют по путям, они не смогут сосуществовать — тогда
> > старую версию нужно удалить, а все зависимости — пересобрать.
> [...]
>
>
> Здесь не очень понятно описано, что делать, если апстрим не задаёт
> никакого soname для библиотеки. Ну то есть, очевидно, надо идти
> в апстрим и заниматься просветительской работой, сопровождаемой
> pull request'ами, но пока эта работа движется, библиотеку как-то
> же можно запаковать.
>
> Чаще всего такие библиотеки окажутся установлеными во что-то
> похожее на %_libdir/libfoo.so. Переименоввывать её странно,
> да и динамический компоновщик кажется не найдёт такую
> библиотеку по какому-то другому имени. Значит, в разных
> сборках такой библиотеки будет один и тот же файл.
> А это уже противоречит требованию предложенного policy.
>
> На мой взгляд, разумнее всего такие библиотеки паковать
> в пакет с именем libfoo и надеятся на лучшее, так как
> пакет libfooN, набирающий со временем кофликты
> с libfoo0, libfoo1, ..., libfoo$((N-1)) технически
> ничем не лучше.
>
> Можно конечно пытаться задать свой soname патчем. Это
> решило бы многие проблемы, но есть опасность пересечься
> со схемой формирования soname, которую рано или поздно
> выберет апстрим.
>
> В общем, я не могу ничего рекомендовать для такой ситуации,
> однако мне кажется SharedLibsPolicy должна явно описать
> случай отсутствия soname.
>
> --
> wbr,
> iv m.
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
Подробная информация о списке рассылки Devel