ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Shared Libs Policy: версия ABI до суффикса -qt6/-gtk4 в имени пакета
@ 2026-10-18  9:26 Vitaly Lipatov
  2026-10-18  9:55 ` Sergey Bolshakov
  2026-10-19 12:00 ` Sergey V Turchin
  0 siblings, 2 replies; 5+ messages in thread
From: Vitaly Lipatov @ 2026-10-18  9:26 UTC (permalink / raw)
  To: devel

Здравствуйте, давай обсудим место для прибавки soname.

Shared Libs Policy предписывает имя пакета libfoo%abiversion, а для 
имени,
оканчивающегося на цифру, — libfoo_%abiversion. Для библиотек с 
суффиксом
тулкита (-qt5, -qt6, -gtk3, -gtk4) это даёт имена вида libfoo-qt6_1, но 
на
практике в Sisyphus их называют кто как. Посмотрел пакеты с такими
библиотеками (имя пакета и soname по собранным rpm):

1. В конце через подчёркивание (буква политики), 10 пакетов:
    libaccounts-qt6_1        libaccounts-qt6.so.1
    libgio-qt6_0             libgio-qt6.so.0
    libgsettings-qt6_1       libgsettings-qt6.so.1
    libkddockwidgets-qt6_3   libkddockwidgets-qt6.so.3
    libkdsingleapplication-qt6_1.2  libkdsingleapplication-qt6.so.1.2
    libkdsoap-qt6_2, libkdsoap-server-qt6_2
    libmarblewidget-qt6_28   libmarblewidget-qt6.so.28
    libquazip1-qt5_1.0.0     libquazip1-qt5.so.1.0.0
    libsignon-qt6_1          libsignon-qt6.so.1

2. В конце слитно — читается как версия Qt:
    libaccounts-qt51         libaccounts-qt5.so.1
    libdbusmenu-qt52         libdbusmenu-qt5.so.2
    libtelepathy-qt50        libtelepathy-qt5.so.0

3. В конце через дефис:
    libudisks2-qt6-1         libudisks2-qt6.so.1

4. До суффикса:
    libpoppler1-qt5          libpoppler-qt5.so.1
    libpoppler3-qt6          libpoppler-qt6.so.3
    (и libpoppler8-glib      libpoppler-glib.so.8)

5. Без версии вовсе — около двадцати пакетов, например libqca-qt6
    (so.2), libfm-qt6 (so.17), libportal-qt6 (so.1), libqtspell-qt6,
    libudisks2-qt5 (so.5), libcanberra-gtk3, libnma-gtk4, libportal-gtk4.
    При смене soname им всё равно придётся выбирать одну из схем выше.

Предлагаю для библиотек с суффиксом тулкита ставить версию ABI до
суффикса, как, например, сделано в poppler:

    libfoo-qt6.so.N   ->  libfooN-qt6
    libfoo-gtk4.so.N  ->  libfooN-gtk4

Почему так:
- суффикс -qt6/-gtk4 обозначает вариант сборки, а не часть версии; имя
   читается как «библиотека foo ABI N для Qt6», как libpoppler3-qt6;
- исчезает неоднозначность libaccounts-qt51 (Qt 5.1?) и некрасивое
   подчёркивание, нужное только из-за цифры в имени тулкита;
- варианты одной библиотеки для разных тулкитов получают одинаковую
   версионную часть: libaccounts1-qt5 и libaccounts1-qt6.

Отдельный случай — когда upstream вписывает major-версию в имя файла.
QuaZip называет библиотеку quazip${MAJOR}-qt${QT} с SOVERSION
MAJOR.MINOR, отсюда libquazip1-qt6.so.1.7: единица в имени — та же
major, что в 1.7. По предложенной схеме версия ABI встаёт на её место:
libquazip1.7-qt6 (а не libquazip1-qt6_1.7 с повтором).

Существующие пакеты переименовывать не предлагаю — только новые и при
очередной смене soname (с Provides/Obsoletes старого имени, как обычно).


--
Vitaly Lipatov


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-19 12:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-18  9:26 [devel] Shared Libs Policy: версия ABI до суффикса -qt6/-gtk4 в имени пакета Vitaly Lipatov
2026-10-18  9:55 ` Sergey Bolshakov
2026-10-18 10:21   ` Anton Farygin
2026-10-19 12:01     ` [devel] " Sergey V Turchin
2026-10-19 12:00 ` Sergey V Turchin

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