Summary: | Please build and package --with-abi-version=6 libraries | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Anton Zhukharev <ancieg> |
Component: | ncurses | Assignee: | Fr. Br. George <george> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P5 | CC: | george, ldv, nrbrtx |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 46625 |
Description
Anton Zhukharev
2023-01-05 13:00:05 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 А чем они отличаются, и, главное, зачем нам две библиотеки вместо одной? (Ответ для 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'ов и можем себе позволить себе решить эту проблему (хоть и совершенно не масштабную), создав бинарный пакет для совместимости ради того, чтобы "работало из коробки". Проблема актуальна если судить по форуму 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 нужно сделать также. (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 нужно сделать также. А чем эти библиотеки отличаются внутри? (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-я версия собраны отдельно как уже выше писал Антон. (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-я версия собраны отдельно как уже выше писал Антон. Там разные версии исходного кода? (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 доступным в Альте. (In reply to Nikolay Strelkov from comment #7) > Подумайте, как правильно сделать libtinfo.so.6 доступным в Альте. В первую очередь тем, кому понадобилась libtinfo.so.6, следует внятно сформулировать, что это такое, и чем она должна отличаться от libtinfo.so.5. (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. FWiW, в Федоре были вынуждены собирать оба набора библиотек: https://bugzilla.redhat.com/show_bug.cgi?id=2129865 (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 ни в виде файла, ни в виде символической ссылки. 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 |