From: "Ivan A. Melnikov" <iv@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] переработанный документ SharedLibsPolicy (update 1)
Date: Thu, 14 Aug 2025 14:33:47 +0400
Message-ID: <e3ankrlva4belragfmr44iarid@iv-work> (raw)
In-Reply-To: <fc00171f-61ee-4151-8a1f-e9d32768bc90@basealt.ru>
On Thu, Aug 07, 2025 at 05:20:26PM +0300, Anton Farygin wrote:
[...]
> * Каждая несовместимая версия библиотеки должна быть в отдельном бинарном
> пакете.
> * Название пакета: `libfoo%abiversion`
> * Если имя библиотеки заканчивается на цифру, то используется подчёркивание:
> `libfoo_%abiversion`
> * В пакете не должно быть файлов с путями, не содержащими номер ABI.
Странная формулировка.
[...]
> == Как выбирать %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.
next prev parent reply other threads:[~2025-08-14 10:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-07 11:46 [devel] переработанный документ SharedLibsPolicy Anton Farygin
2025-08-07 12:57 ` Dmitry V. Levin
2025-08-07 13:09 ` Anton Farygin
2025-08-08 20:19 ` Vitaly Chikunov
2025-08-16 7:10 ` [devel] " Sergey
2025-08-07 14:20 ` [devel] переработанный документ SharedLibsPolicy (update 1) Anton Farygin
2025-08-08 7:25 ` Anton Farygin
2025-08-14 10:33 ` Ivan A. Melnikov [this message]
2025-08-14 19:31 ` Vitaly Chikunov
2025-08-16 7:15 ` [devel] " Sergey
2025-08-18 9:13 ` [devel] " Anton Farygin
2025-08-18 9:41 ` Dmitry V. Levin
2025-08-18 10:25 ` Ivan A. Melnikov
2025-08-20 6:35 ` [devel] " Sergey V Turchin
2025-08-15 6:21 ` [devel] " Vitaly Chikunov
2025-08-15 6:35 ` Ivan A. Melnikov
2025-08-15 6:37 ` Anton Midyukov
2025-08-15 7:40 ` Vitaly Chikunov
2025-08-15 8:27 ` Vitaly Chikunov
2025-08-18 9:16 ` Anton Farygin
2025-08-16 7:19 ` [devel] " Sergey
2025-08-16 7:17 ` Sergey
2025-08-28 8:33 ` [devel] переработанный документ SharedLibsPolicy (update 2) Anton Farygin
2025-09-01 6:54 ` Anton Farygin
2025-09-02 10:57 ` Andrey Savchenko
2025-09-02 11:46 ` Anton Farygin
2025-09-03 7:27 ` [devel] " Sergey V Turchin
2025-09-02 6:40 ` Sergey V Turchin
2025-09-02 6:46 ` [devel] " Anton Farygin
2025-09-02 6:51 ` [devel] " Sergey V Turchin
2025-09-02 8:03 ` [devel] " Anton Farygin
2025-09-09 6:28 ` Ruslandh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e3ankrlva4belragfmr44iarid@iv-work \
--to=iv@altlinux.org \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git