Bug 4677 - Странная symlink libSDL2-2.0.so.1 - может, должно быть libSDL2-2.0.so.0?
: Странная symlink libSDL2-2.0.so.1 - может, должно быть libSDL2-2.0.so.0?
Status: RESOLVED NOTABUG
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal minor
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-14 19:51 MSK by Eugene Shatokhin
Modified: 2014-11-15 13:43 MSK (History)
1 user (show)

See Also:
RPM Package: lib(64)SDL2_2.0_1-2.0.3-2
ISO-related:
Bad POT generating:
Upstream:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Shatokhin 2014-11-14 19:51:53 MSK
Не уверен, что это баг, но ситуация всё же довольно странная.

ROSA Fresh R4 KDE. 
Что есть:
/usr/lib64/libSDL2-2.0.so.1 - symlink на /usr/lib64/libSDL2-2.0.so.0.2.1

Неясно, почему именно *.so.1 (major = 1), ведь для so-файла самой библиотеки используется 0.2.1. т.е. логичнее сделать symlink /usr/lib64/libSDL2-2.0.so.0? Или тут что-то хитрее?

Можно, например, сохранить /usr/lib64/libSDL2-2.0.so.1, но сделать ещё и symlink /usr/lib64/libSDL2-2.0.so.0 на ту же самую библиотеку для тех приложений, которым это нужно.

Пока это потребовалось для запуска теста на основе игры Tesseract в Phoronix Test Suite. Тест ругался на отсутствие libSDL2-2.0.so.0. Я создал libSDL2-2.0.so.0 как symlink на /usr/lib64/libSDL2-2.0.so.0.2.1 - это решило проблему в том конкретном случае. 

Аналогичная ситуация в i586-системе, с поправкой на имена соотв. пакетов и пути к библиотекам.
Comment 1 Andrey Bondrov 2014-11-14 20:16:59 MSK
В версии 2.0.1 сменилась major-версия у библиотеки с 0 на 1. Видимо, потому что версия 2.0.1 была не совместима с 2.0.0. 

Симлинк в таких случаях может быть опасной практикой, т.к. та или иная программа может падать с undefined symbol, хотя некоторые программы могут и без проблем работать. Обычно при необходимости просто по-честному собирается старая версия библиотеки (без devel-файлов, утилит и т.п.).

Как пример: https://abf.rosalinux.ru/import/pcre0/blob/rosa2014.1/pcre0.spec

Однако в каждом таком случае надо ответить на два вопроса:
1. Действительно ли стоит тянуть старую версию библиотеки, так ли сильно нужна программа, которой она требуется?
2. Можно ли просто пересобрать соответствующую программу с новой версией библиотеки?
Comment 2 Eugene Shatokhin 2014-11-15 13:43:35 MSK
Хорошо, оставим, как есть.

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