ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Vitaly Chikunov <vt@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] переработанный документ SharedLibsPolicy (update 1)
Date: Fri, 15 Aug 2025 11:27:36 +0300
Message-ID: <yhlv5oqogp34ymyjr3gajduian@altlinux.org> (raw)
In-Reply-To: <kfay3prqhqycxpf2fbass5rfyv@altlinux.org>

On Fri, Aug 15, 2025 at 10:40:02AM +0300, Vitaly Chikunov wrote:
> On Fri, Aug 15, 2025 at 10:35:45AM +0400, Ivan A. Melnikov wrote:
> > On Fri, Aug 15, 2025 at 09:21:04AM +0300, Vitaly Chikunov wrote:
> > > 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.
> > > > 
> > > > Странная формулировка.
> > > > 
> > > > [...]
> > > > > == Как выбирать %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, которую рано или поздно
> > > > выберет апстрим.
> > > 
> > > Soname необходимо и достаточно менять - если произошло обратно
> > > несовместимое изменение ABI. Как правило, об этом изменении лучше всего
> > > знает только апстрим.
> > 
> > Это понятно, но не все апстримы одинаково квалифицированны.
> 
> То есть даже апстрим может не знать на 100%, что он поменял ABI (такие случаи
> бывают), что уж говорить о маинтайнере казуально следующем полиси.
> 
> > 
> > Собственно, всё моё письмо ставит вопрос -- а что делать, если
> > soname нет?
> 
> На уровне линкера вместо soname будет использоваться полное имя файла

Полное имя файла, если линковали полным именем. Если -lname, то будет
libname.so. А как именно линковали - как написал апстрим или угадал
cmake, например.

> -
> то есть логика изменения soname остается применима.
> 
> Тяжело будет правильно собрать пакет с клиентом для такой либы без
> unmet, особенно если .so в -devel и .so.X в lib-.
> 
> 
> > 
> > -- 
> >   wbr,
> >     iv m.
> > _______________________________________________
> > Devel mailing list
> > Devel@lists.altlinux.org
> > https://lists.altlinux.org/mailman/listinfo/devel
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


      reply	other threads:[~2025-08-15  8:27 UTC|newest]

Thread overview: 13+ 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-07 14:20 ` [devel] переработанный документ SharedLibsPolicy (update 1) Anton Farygin
2025-08-08  7:25     ` Anton Farygin
2025-08-14 10:33   ` Ivan A. Melnikov
2025-08-14 19:31     ` Vitaly Chikunov
2025-08-15  6:21     ` 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 [this message]

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=yhlv5oqogp34ymyjr3gajduian@altlinux.org \
    --to=vt@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