Bug 44811 - Please build and package --with-abi-version=6 libraries
Summary: Please build and package --with-abi-version=6 libraries
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ncurses (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 enhancement
Assignee: Fr. Br. George
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 46625
  Show dependency tree
 
Reported: 2023-01-05 13:00 MSK by Anton Zhukharev
Modified: 2023-08-23 10:35 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Zhukharev 2023-01-05 13:00:05 MSK
В Sisyphus версия пакета 6.3.20220618-alt1 предоставляет библиотеки:

ancieg@dell ~ Σ rpm -ql libtinfo
/lib64/libtinfo.so.5
/lib64/libtinfo.so.5.9

Хотелось бы видеть (по аналогии с Debian) разбивку на две библиотеки.
В Debian 11 Bullseye это выглядит так (версия пакета: 6.2+20201114-2 - кстати,
версия более старая):

libtinfo5: /lib/x86_64-linux-gnu/libtinfo.so.5
           /lib/x86_64-linux-gnu/libtinfo.so.5.9

libtinfo6: /lib/x86_64-linux-gnu/libtinfo.so.6
           /lib/x86_64-linux-gnu/libtinfo.so.6.2

при этом devel-пакет у них один: libtinfo-dev.

--------------------------------------------------------------------------------

Вообще, у них в принципе ncurses разбита на ncurses5 и ncurses6...
Comment 1 Dmitry V. Levin 2023-01-05 15:35:47 MSK
(In reply to Anton Zhukharev from comment #0)
> В Sisyphus версия пакета 6.3.20220618-alt1 предоставляет библиотеки:
> 
> ancieg@dell ~ Σ rpm -ql libtinfo
> /lib64/libtinfo.so.5
> /lib64/libtinfo.so.5.9

Это одна библиотека.

> Хотелось бы видеть (по аналогии с Debian) разбивку на две библиотеки.
> В Debian 11 Bullseye это выглядит так (версия пакета: 6.2+20201114-2 -
> кстати,
> версия более старая):
> 
> libtinfo5: /lib/x86_64-linux-gnu/libtinfo.so.5
>            /lib/x86_64-linux-gnu/libtinfo.so.5.9
> 
> libtinfo6: /lib/x86_64-linux-gnu/libtinfo.so.6
>            /lib/x86_64-linux-gnu/libtinfo.so.6.2

А чем они отличаются, и, главное, зачем нам две библиотеки вместо одной?
Comment 2 Anton Zhukharev 2023-01-05 20:41:39 MSK
(Ответ для Dmitry V. Levin на комментарий #1)
> А чем они отличаются, и, главное, зачем нам две библиотеки вместо одной?
Честно говоря: понятия не имею чем они отличаются.

Но из-за того, что разработчики некоторых программ (конкретнее: свежих игр
для проприетарного Steam), видимо, из-за своей недальновидности в UNIX-системах
линкуют свои продукты именно с libtinfo.so.6 (не знаю зачем, а как вариант:
просто потому что ничего кроме Debian и Ubuntu не используют), и в них
по-умолчанию используется именно libtinfo.so.6 (но я не уверен - Debian или
Ubuntu не пользуюсь), то и возникает такая проблема.

Вообще, конкретно для этих игр (если интересно с какими столкнулся я (и не
только я - потому и написал) то вот: Victoria 3, Crusader Kings 3) - в системах
ALT создание символической ссылки libtinfo.so.6 -> libtinfo.so.5.9 решает
возникающую проблему - но неизвестно насколько такое решение верное и надёжное.

Возможно, что временно можно добавить бинарный пакет, который содержит
эту символическую ссылку - до первых проблем, и если что-то будет не так,
то уже и думать что делать (если проблемы, конечно, вообще возникнут).

Считаю, что мы не хуже всяких там Debian'ов и можем себе позволить себе
решить эту проблему (хоть и совершенно не масштабную), создав бинарный
пакет для совместимости ради того, чтобы "работало из коробки".
Comment 3 Nikolay Strelkov 2023-06-07 16:07:03 MSK
Проблема актуальна если судить по форуму https://forum.altlinux.org/index.php?topic=47638.msg382331#msg382331 .

В Debian 11 пакетов два

* libtinfo.so.5 содержится в libtinfo5 (см. https://packages.debian.org/search?suite=bullseye&arch=amd64&mode=path&searchon=contents&keywords=libtinfo.so.5 )
* libtinfo.so.6 содержится в libtinfo6 (см. https://packages.debian.org/search?suite=bullseye&arch=amd64&mode=path&searchon=contents&keywords=libtinfo.so.6 )

Наверное и в ALT нужно сделать также.
Comment 4 Dmitry V. Levin 2023-06-07 17:03:10 MSK
(In reply to Nikolay Strelkov from comment #3)
> Проблема актуальна если судить по форуму
> https://forum.altlinux.org/index.php?topic=47638.msg382331#msg382331 .
> 
> В Debian 11 пакетов два
> 
> * libtinfo.so.5 содержится в libtinfo5 (см.
> https://packages.debian.org/
> search?suite=bullseye&arch=amd64&mode=path&searchon=contents&keywords=libtinf
> o.so.5 )
> * libtinfo.so.6 содержится в libtinfo6 (см.
> https://packages.debian.org/
> search?suite=bullseye&arch=amd64&mode=path&searchon=contents&keywords=libtinf
> o.so.6 )
> 
> Наверное и в ALT нужно сделать также.

А чем эти библиотеки отличаются внутри?
Comment 5 Nikolay Strelkov 2023-06-07 19:27:55 MSK
(In reply to Dmitry V. Levin from comment #4)
> (In reply to Nikolay Strelkov from comment #3)
> [...]
> А чем эти библиотеки отличаются внутри?

Судя по 
https://packages.debian.org/source/bullseye/ncurses, https://packages.debian.org/bullseye/amd64/libtinfo5/filelist, https://packages.debian.org/bullseye/amd64/libtinfo6/filelist

5-я и 6-я версия собраны отдельно как уже выше писал Антон.
Comment 6 Dmitry V. Levin 2023-06-07 19:30:36 MSK
(In reply to Nikolay Strelkov from comment #5)
> (In reply to Dmitry V. Levin from comment #4)
> > (In reply to Nikolay Strelkov from comment #3)
> > [...]
> > А чем эти библиотеки отличаются внутри?
> 
> Судя по 
> https://packages.debian.org/source/bullseye/ncurses,
> https://packages.debian.org/bullseye/amd64/libtinfo5/filelist,
> https://packages.debian.org/bullseye/amd64/libtinfo6/filelist
> 
> 5-я и 6-я версия собраны отдельно как уже выше писал Антон.

Там разные версии исходного кода?
Comment 7 Nikolay Strelkov 2023-06-07 19:41:08 MSK
(In reply to Dmitry V. Levin from comment #6)
> (In reply to Nikolay Strelkov from comment #5)
> > (In reply to Dmitry V. Levin from comment #4)
> > > (In reply to Nikolay Strelkov from comment #3)
> > > [...]
> > > А чем эти библиотеки отличаются внутри?
> > 
> > Судя по 
> > https://packages.debian.org/source/bullseye/ncurses,
> > https://packages.debian.org/bullseye/amd64/libtinfo5/filelist,
> > https://packages.debian.org/bullseye/amd64/libtinfo6/filelist
> > 
> > 5-я и 6-я версия собраны отдельно как уже выше писал Антон.
> 
> Там разные версии исходного кода?

Код может быть и один, но симлинков там явно не видно - см. https://salsa.debian.org/debian/ncurses/-/blob/master/debian/rules#L37 в отличие от Росы ( https://abf.io/import/libtinfo/blob/rosa2021.1/libtinfo.spec#lc-46 ) и OpenMandriva ( https://github.com/OpenMandrivaAssociation/libtinfo/blob/master/libtinfo.spec#L47 ).

Подумайте, как правильно сделать libtinfo.so.6 доступным в Альте.
Comment 8 Dmitry V. Levin 2023-06-07 20:02:28 MSK
(In reply to Nikolay Strelkov from comment #7)
> Подумайте, как правильно сделать libtinfo.so.6 доступным в Альте.

В первую очередь тем, кому понадобилась libtinfo.so.6, следует внятно сформулировать, что это такое, и чем она должна отличаться от libtinfo.so.5.
Comment 9 Anton Zhukharev 2023-06-07 23:02:44 MSK
(In reply to Dmitry V. Levin from comment #8)
> (In reply to Nikolay Strelkov from comment #7)
> > Подумайте, как правильно сделать libtinfo.so.6 доступным в Альте.
> 
> В первую очередь тем, кому понадобилась libtinfo.so.6, следует внятно
> сформулировать, что это такое, и чем она должна отличаться от libtinfo.so.5.
Судя по всему, это более новая версия (и ABI где-то, видимо - по стандартной схеме, - отличается).

Более того, считаю, что эта ошибка - дубликат ошибки #44631.

В спеке в строках 359 и 396 захардкодена версия 5: https://git.altlinux.org/gears/n/ncurses.git?p=ncurses.git;a=blob;f=ncurses.spec;h=29ff531ae7b8cf626cb4febd3656d3fecb93f0d2;hb=c9c424b64acdc23ade16f3ebfaed6b674c6e540e#l359

В Fedora 6-ой версии пакуют (мажорная версия исходников ncurses соответствует версии собираемого ABI; спек из апстрима): https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blob;f=package/ncurses.spec;h=212cbc80f2ea60dff83580e38c71a187f9869e6e;hb=38586db6a67a76451d06b129676b8ec6727c9521#l88

Думаю, что смело можно ставить вопрос: а почему у нас вообще 5.9, а не 6.3 (несоответствие версий; опять таки к ошибке #44631)? В таком случае и две библиотеки делать не нужно - оставить одну с версией ABI=6.
Comment 10 Dmitry V. Levin 2023-06-07 23:21:16 MSK
FWiW, в Федоре были вынуждены собирать оба набора библиотек:
https://bugzilla.redhat.com/show_bug.cgi?id=2129865
Comment 11 Nikolay Strelkov 2023-06-07 23:50:34 MSK
(In reply to Dmitry V. Levin from comment #10)
> FWiW, в Федоре были вынуждены собирать оба набора библиотек:
> https://bugzilla.redhat.com/show_bug.cgi?id=2129865

Вот и в Debian обе версии сосуществуют.
Ниже список обратных зависимостей из 11 стабильного и 12 тестируемого:

```
# lsb_release -cs
bullseye
# apt-cache rdepends libtinfo5 | grep "^  " | wc -l
5
# apt-cache rdepends libtinfo6 | grep "^  " | wc -l
606
```

```
# lsb_release -cs
No LSB modules are available.
bookworm
# apt-cache rdepends libtinfo5 | grep "^  " | wc -l
5
# apt-cache rdepends libtinfo6 | grep "^  " | wc -l
613
# 
```

Т.е. 5 пакетам Debian нужна libtinfo5, а остальному большинству (606/613) libtinfo6.

---

Стимовские бинарные игрушки типа Crusader Kings 3 ищут libtinfo.so.6, которого пока нет в ALT ни в виде файла, ни в виде символической ссылки.
Comment 12 Repository Robot 2023-08-23 10:35:10 MSK
ncurses-6.3.20220618-alt2 -> sisyphus:

 Thu Jul 27 2023 Fr. Br. George <george@altlinux> 6.3.20220618-alt2
 - Separate API5 and API6 versions (Closes: #44811)
 - Provide semi-automatic package spec generators