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

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

    <bug>
          <bug_id>28944</bug_id>
          
          <creation_ts>2013-05-08 21:16:45 +0400</creation_ts>
          <short_desc>Shared Libs Policy check</short_desc>
          <delta_ts>2026-01-25 18:02:09 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Infrastructure</classification>
          <product>Infrastructure</product>
          <component>girar</component>
          <version>unspecified</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://www.altlinux.org/Shared_Libs_Policy_and_updates</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>29633</dependson>
    
    <dependson>32158</dependson>
    
    <dependson>34468</dependson>
    
    <dependson>39189</dependson>
    
    <dependson>51674</dependson>
    
    <dependson>51676</dependson>
    
    <dependson>57641</dependson>
    
    <dependson>28941</dependson>
    
    <dependson>29594</dependson>
    
    <dependson>30786</dependson>
    
    <dependson>31110</dependson>
    
    <dependson>32242</dependson>
    
    <dependson>35146</dependson>
    
    <dependson>37280</dependson>
    
    <dependson>57054</dependson>
          <blocked>29816</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zerg">anubix</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>aris</cc>
    
    <cc>at</cc>
    
    <cc>boyarsh</cc>
    
    <cc>cas</cc>
    
    <cc>enp</cc>
    
    <cc>evg</cc>
    
    <cc>glebfm</cc>
    
    <cc>icesik</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>mithraen</cc>
    
    <cc>real</cc>
    
    <cc>shaba</cc>
    
    <cc>shrek</cc>
    
    <cc>viy</cc>
    
    <cc>zerg</cc>
          
          <qa_contact name="Nobody&apos;s working on this, feel free to take it">nobody</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140160</commentid>
    <comment_count>0</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2013-05-08 21:16:45 +0400</bug_when>
    <thetext>Предлагаю добавить минимальную проверку на упаковку библиотек.
Отшивать пакеты, если изменился soname, а имя пакета не изменилось.
Например, сейчас проблемы с обновлением p6 на p7. bug#28941</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140164</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-05-08 21:33:24 +0400</bug_when>
    <thetext>Как ты себе представляешь проверку _изменения_ soname в sisyphus_check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140166</commentid>
    <comment_count>2</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2013-05-08 21:58:43 +0400</bug_when>
    <thetext>Я представляю, что кто-то из подписчиков баги знает, на какой пакет перевесить при необходимости.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140175</commentid>
    <comment_count>3</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2013-05-09 14:00:34 +0400</bug_when>
    <thetext>Такая проверка сильно бы улучшила обновление с бранча на бранч.

В качестве побочного эффекта при обновлении будут вылазить ситуации типа:
&quot;file /usr/share/libname/something из пакета libname5 конфликтует с одноименным файлом из libname10&quot;, но они легко исправляются и не портят систему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140219</commentid>
    <comment_count>4</comment_count>
    <who name="viy">viy</who>
    <bug_when>2013-05-11 01:28:22 +0400</bug_when>
    <thetext>такую проверку можно сделать в repocop,
добавить патчгенератор-переименовыватель,
а отшивание пакетов заменить repocop NMU 
на эти пакеты.

Думаю, раз есть интерес, то как только разберусь 
с java (там у меня eclipse подвис) попробую 
реализовать в repocop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140220</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-05-11 01:34:04 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; такую проверку можно сделать в repocop,
&gt; добавить патчгенератор-переименовыватель,
&gt; а отшивание пакетов заменить repocop NMU 
&gt; на эти пакеты.

Насколько я понимаю, важно именно не допустить неправильных обновлений в будущем, а не переименовывать то, что есть уже сейчас (за редкими исключениями, о которых мы уже давно знаем).  Так что эта проверка должна работать иименно в сборочнице, а не снаружи.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140222</commentid>
    <comment_count>6</comment_count>
    <who name="viy">viy</who>
    <bug_when>2013-05-11 02:14:26 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Насколько я понимаю, важно именно не допустить неправильных обновлений в
&gt; будущем, а не переименовывать то, что есть уже сейчас (за редкими исключениями,
&gt; о которых мы уже давно знаем).  Так что эта проверка должна работать иименно в
&gt; сборочнице, а не снаружи.

Почему?
Допустим, X выложил icu с подпакетом libicu c so.5 c с другим сонеймом.
repocop:
патч репокопа переименует подпакет libicu в libicu5.
на момент обновления p7-&gt;p8 в Сизифе все будет ок, 
обычные пользователи насладятся благами безглючного обновления,
но те (несколько десятков?) пользователей, которые &quot;сидят на сизифе&quot;
могут испытать неудобства при обновлении, но там все сплошь бойцы.
sisyphus_check:
остановит libicu, но в силу design flow (проверки-то не отключаемые)
создаст большие проблемы майнтайнерам во всяких крайних случаях вроде random soname.
Неудачный зажим гаек в sisyphus_check нагружает майнтайнеров дурной работой
и создает недовольство в коллективе, что политически не правильно.
Например, я стал майнтайнером из-за того, как из-за подобного недовольства из team с матами ушел Alex Ott, и бросил Emacs.
А он был бы ему идеальным майнтайнером :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140223</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-05-11 03:34:28 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; (В ответ на комментарий №5)
&gt; &gt; Насколько я понимаю, важно именно не допустить неправильных обновлений в
&gt; &gt; будущем, а не переименовывать то, что есть уже сейчас (за редкими исключениями,
&gt; &gt; о которых мы уже давно знаем).  Так что эта проверка должна работать иименно в
&gt; &gt; сборочнице, а не снаружи.
&gt; 
&gt; Почему?
&gt; Допустим, X выложил icu с подпакетом libicu c so.5 c с другим сонеймом.
&gt; repocop:
&gt; патч репокопа переименует подпакет libicu в libicu5.
&gt; на момент обновления p7-&gt;p8 в Сизифе все будет ок, 
&gt; обычные пользователи насладятся благами безглючного обновления,
&gt; но те (несколько десятков?) пользователей, которые &quot;сидят на сизифе&quot;
&gt; могут испытать неудобства при обновлении, но там все сплошь бойцы.

Ну да, и остальные проверки на репозиторий тоже перенести в repocop.
Например, зачем нам проверка на анметы, ведь мйнтейнерам так тяжело, поэтому на момент обновления p7-&gt;p8 все будет хорошо, а на сизифе с анметами просто никого не останется.  Нет, спасибо, это пройденный этап.

&gt; sisyphus_check:

Ну при чем тут sisyphus_check?  Это такая же примерно проверка, как и проверка на анметы.

&gt; остановит libicu, но в силу design flow (проверки-то не отключаемые)

Проверки в сборочнице настраиваемые.

&gt; создаст большие проблемы майнтайнерам во всяких крайних случаях вроде random
&gt; soname.

У библиотек со случайным soname нет клиентов.  Я не вижу смысла налагать ограничения на библиотеки, у которых не более одного клиента.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140276</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-05-13 16:25:50 +0400</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Я не вижу смысла налагать ограничения на библиотеки,
&gt; у которых не более одного клиента.
Не более одного клиента из других src.rpm .
Внутри одного src.rpm у меня в подпакетах зачастую дофига клиентов на одну библиотеку.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140277</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-05-13 16:27:07 +0400</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Ну при чем тут sisyphus_check?
http://lists.altlinux.org/pipermail/devel/2012-November/195849.html
&quot;Shared Libs Policy это действующие правила, для которых еще не написано проверок в sisyphus_check&quot; ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140278</commentid>
    <comment_count>10</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-05-13 16:32:42 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; &gt; Так что эта проверка должна работать иименно в
&gt; &gt; сборочнице, а не снаружи.
&gt; Почему?
Потому что, когда уже выложено, исправить сложнее, т.к. добавляется необходимость исправления уже испорченного.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140279</commentid>
    <comment_count>11</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-05-13 16:33:55 +0400</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Потому что, когда уже выложено, исправить сложнее
Я не совсем понял, видимо. Лишь бы не попадало в репозитории до исправления.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144239</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-12-13 14:45:36 +0400</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Думаю, раз есть интерес, то как только разберусь 
&gt; с java (там у меня eclipse подвис) попробую 
&gt; реализовать в repocop.
Слыхать что-нибудь?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144255</commentid>
    <comment_count>13</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-12-13 17:03:28 +0400</bug_when>
    <thetext>Профит http://www.altlinux.org/Shared_Libs_Policy_and_updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144275</commentid>
    <comment_count>14</comment_count>
    <who name="viy">viy</who>
    <bug_when>2013-12-14 03:38:37 +0400</bug_when>
    <thetext>(В ответ на комментарий №12)
&gt; (В ответ на комментарий №4)
&gt; &gt; Думаю, раз есть интерес, то как только разберусь 
&gt; &gt; с java (там у меня eclipse подвис) попробую 
&gt; &gt; реализовать в repocop.
&gt; Слыхать что-нибудь?

Прошу прощения, у меня еще руки до репокопа не дошли.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145183</commentid>
    <comment_count>15</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2014-02-10 22:41:25 +0400</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; (В ответ на комментарий №12)
&gt; &gt; (В ответ на комментарий №4)
&gt; &gt; &gt; Думаю, раз есть интерес, то как только разберусь 
&gt; &gt; &gt; с java (там у меня eclipse подвис) попробую 
&gt; &gt; &gt; реализовать в repocop.
&gt; &gt; Слыхать что-нибудь?
&gt; 
&gt; Прошу прощения, у меня еще руки до репокопа не дошли.

Хорошо бы они дошли скорее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145185</commentid>
    <comment_count>16</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2014-02-10 23:25:54 +0400</bug_when>
    <thetext>Репокопа уже мало. Нужно на этапе сборки отсекать серпом по таким пакетам.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145190</commentid>
    <comment_count>17</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2014-02-11 04:49:39 +0400</bug_when>
    <thetext>Или более простой и менее хороший вариант: отшивать, если в репозитории среди провайдов уже имеется один из SONAME-ов, но в пакете с _другим_ именем.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150388</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2015-02-19 19:31:49 +0300</bug_when>
    <thetext>Еще вариант простой проверки:
Если в пакете имеется библиотека с SONAME, то имя пакета должно оканчиваться на этот самый SONAME.

Проверку проводить для каждой из библиотек, содержащихся в пакете.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150389</commentid>
    <comment_count>19</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2015-02-19 19:33:24 +0300</bug_when>
    <thetext>(В ответ на комментарий №18)
&gt; имя пакета должно оканчиваться на этот самый SONAME.
Точнее, на версионное окончание этого SONAME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151196</commentid>
    <comment_count>20</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2015-04-16 16:49:57 +0300</bug_when>
    <thetext>Для начала можно проверять не конец имени пакета а любое положение в имени.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154568</commentid>
    <comment_count>21</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2016-01-14 15:49:40 +0300</bug_when>
    <thetext>(В ответ на комментарий №20)
&gt; Для начала можно проверять не конец имени пакета а любое положение в имени.
Тогда можно будет не менять пакеты типа libkf5kiocore .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173341</commentid>
    <comment_count>22</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2018-08-09 17:34:07 +0300</bug_when>
    <thetext>Из-за костыля http://git.altlinux.org/gears/a/apt.git?p=apt.git;a=commit;h=e2184306b28908f208869b791d1bb0550c659674 dist-upgrade периодически сносит кучи пакетов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189272</commentid>
    <comment_count>23</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2020-04-15 19:51:11 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #22)
&gt; Из-за костыля сносит
Это оказалось ложным, погорячился.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>