Bug 38976 - libqhttpengine: shared libs policy fix
Summary: libqhttpengine: shared libs policy fix
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libqhttpengine (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: drool
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-22 09:09 MSK by viy
Modified: 2020-10-19 17:10 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description viy 2020-09-22 09:09:10 MSK
В autoimports уже есть пакет
qhttpengine-1.0.1-alt1_4.src.rpm

http://ftp.altlinux.org/pub/distributions/ALTLinux/autoimports/Sisyphus/files/SRPMS/qhttpengine-1.0.1-alt1_4.src.rpm

при чем он вроде бы свежее (1.0.1) и при этом собран в соответствии с shared libs policy (подпакет с библиотекой называется libqhttpengine1)

может, обновите и переделаете пакет по образцу из autoimports?
или, если хотите, можно выложить qhttpengine-1.0.1-alt1_4 в Сизиф,
заменив libqhttpengine?
Comment 1 Motsyo Gennadi 2020-09-22 17:03:27 MSK
Таском #258519 в сизиф уезжают libqmdnsengine.git=0.2.0-alt1 и libqhttpengine.git=1.0.1-alt1.
Comment 2 viy 2020-09-22 17:38:36 MSK
Спасибо!
Сняли конфликт по пакетам с autoimports.
Я теперь могу удалять qhttpengine.
Comment 3 viy 2020-09-22 17:46:20 MSK
Единственно, пакет собран не совсем в соответствии с shared libs policy
вот этим в %files вы себе в ногу выстрелили:
 %_libdir/lib*.so.*
надо 
%define soversion 1
%files -n libqhttpengine%{soversion}
 %_libdir/lib*.so.%{soversion}*

Потому что если при обновлении версии сменится soversion,
то в вашем случае пакет останется называться libqhttpengine1,
но внутри будет не libqhttpengine.so.1, а libqhttpengine.so.2.
Второй вариант такое предотвратит. Если soversion изменится,
то lib*.so.%{soversion}* не найдет libqhttpengine.so.1
и надо будет делать
%define soversion 2
Comment 4 Aleksei Nikiforov 2020-09-22 17:57:55 MSK
(Ответ для viy на комментарий #3)
> Единственно, пакет собран не совсем в соответствии с shared libs policy
> вот этим в %files вы себе в ногу выстрелили:
>  %_libdir/lib*.so.*
> надо 
> %define soversion 1
> %files -n libqhttpengine%{soversion}
>  %_libdir/lib*.so.%{soversion}*
> 
> Потому что если при обновлении версии сменится soversion,
> то в вашем случае пакет останется называться libqhttpengine1,
> но внутри будет не libqhttpengine.so.1, а libqhttpengine.so.2.
> Второй вариант такое предотвратит. Если soversion изменится,
> то lib*.so.%{soversion}* не найдет libqhttpengine.so.1
> и надо будет делать
> %define soversion 2

Это на одну строку больше, но я бы рекомендовал использовать не lib*.so.%{soversion}*, а отдельно:

lib*.so.%{soversion}
lib*.so.%{soversion}.*

Иначе с вашим же примером, перескочит апстрим с soname 1 на soname 11 по любой причине, и это может пройти незамеченно.
Comment 5 viy 2020-09-22 17:59:36 MSK
(Ответ для Aleksei Nikiforov на комментарий #4)
> Иначе с вашим же примером, перескочит апстрим с soname 1 на soname 11 по
> любой причине, и это может пройти незамеченно.

плюсую.
Comment 6 Repository Robot 2020-10-19 17:10:10 MSK
libqhttpengine-1.0.1-alt2 -> sisyphus:

 Mon Oct 19 2020 Igor Vlasenko <viy@altlinux.ru> 1.0.1-alt2
 - NMU: proper shared libs policy (closes: #38976)