<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>38976</bug_id>
          
          <creation_ts>2020-09-22 09:09:10 +0300</creation_ts>
          <short_desc>libqhttpengine: shared libs policy fix</short_desc>
          <delta_ts>2020-10-19 17:10:10 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libqhttpengine</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="viy">viy</reporter>
          <assigned_to name="ulysses@altlinux.org">ulysses</assigned_to>
          <cc>drool</cc>
    
    <cc>ulysses</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192723</commentid>
    <comment_count>0</comment_count>
    <who name="viy">viy</who>
    <bug_when>2020-09-22 09:09:10 +0300</bug_when>
    <thetext>В 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?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192754</commentid>
    <comment_count>1</comment_count>
    <who name="Motsyo Gennadi">drool</who>
    <bug_when>2020-09-22 17:03:27 +0300</bug_when>
    <thetext>Таском #258519 в сизиф уезжают libqmdnsengine.git=0.2.0-alt1 и libqhttpengine.git=1.0.1-alt1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192755</commentid>
    <comment_count>2</comment_count>
    <who name="viy">viy</who>
    <bug_when>2020-09-22 17:38:36 +0300</bug_when>
    <thetext>Спасибо!
Сняли конфликт по пакетам с autoimports.
Я теперь могу удалять qhttpengine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192756</commentid>
    <comment_count>3</comment_count>
    <who name="viy">viy</who>
    <bug_when>2020-09-22 17:46:20 +0300</bug_when>
    <thetext>Единственно, пакет собран не совсем в соответствии с 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192757</commentid>
    <comment_count>4</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2020-09-22 17:57:55 +0300</bug_when>
    <thetext>(Ответ для viy на комментарий #3)
&gt; Единственно, пакет собран не совсем в соответствии с shared libs policy
&gt; вот этим в %files вы себе в ногу выстрелили:
&gt;  %_libdir/lib*.so.*
&gt; надо 
&gt; %define soversion 1
&gt; %files -n libqhttpengine%{soversion}
&gt;  %_libdir/lib*.so.%{soversion}*
&gt; 
&gt; Потому что если при обновлении версии сменится soversion,
&gt; то в вашем случае пакет останется называться libqhttpengine1,
&gt; но внутри будет не libqhttpengine.so.1, а libqhttpengine.so.2.
&gt; Второй вариант такое предотвратит. Если soversion изменится,
&gt; то lib*.so.%{soversion}* не найдет libqhttpengine.so.1
&gt; и надо будет делать
&gt; %define soversion 2

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

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

Иначе с вашим же примером, перескочит апстрим с soname 1 на soname 11 по любой причине, и это может пройти незамеченно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192758</commentid>
    <comment_count>5</comment_count>
    <who name="viy">viy</who>
    <bug_when>2020-09-22 17:59:36 +0300</bug_when>
    <thetext>(Ответ для Aleksei Nikiforov на комментарий #4)
&gt; Иначе с вашим же примером, перескочит апстрим с soname 1 на soname 11 по
&gt; любой причине, и это может пройти незамеченно.

плюсую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193341</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2020-10-19 17:10:10 +0300</bug_when>
    <thetext>libqhttpengine-1.0.1-alt2 -&gt; sisyphus:

 Mon Oct 19 2020 Igor Vlasenko &lt;viy@altlinux.ru&gt; 1.0.1-alt2
 - NMU: proper shared libs policy (closes: #38976)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>