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

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

    <bug>
          <bug_id>14917</bug_id>
          
          <creation_ts>2008-03-15 06:31:34 +0300</creation_ts>
          <short_desc>Плохо отрабатывает откат на &quot;меньший&quot; SONAME</short_desc>
          <delta_ts>2008-11-21 16:13:44 +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>glibc-core</component>
          <version>unstable</version>
          <rep_platform>all</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>P2</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgenii Terechkov">evg</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>vvk</cc>
    
    <cc>wrar</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65867</commentid>
    <comment_count>0</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-03-15 06:31:34 +0300</bug_when>
    <thetext>В ходе разборок после массового обновления пакетов откатил glib2 с 2.16.1-alt1
на 2.15.6-alt1. При этом обнаружил, что перестал работать mc (возможно, не
только он), жалуясь на ненаденность библиотеки, к которой слинкован.

Выяснилось, что симлинки в каталоге /lib/, принадлежащие пакету, битые:
указывают не на *.so.0.1506*, а на *.so.0.1600* (rpm -V glib2 подтвердил, выведа
8 строки с модификатором &quot;L&quot;). После ручного разруливания работоспособность mc
восстановилась.

Не знаю, кто именно виноват - новый glib2 или старый, но, надеюсь, в будущих
версиях это будет учтено и поправлено (если ещё не).
Steps to Reproduce:
1.apt-get install glib2=2.16.1-alt1
2.apt-get install glib2=2.15.6-alt1
3.mc
Actual Results:  
lib not found

Expected Results:  
mc runs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65871</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2008-03-15 08:49:37 +0300</bug_when>
    <thetext>Эта проблема относится не к glib2, а к rpm, я подозреваю. Точно такую же беду я
схлопотал на откате gnome-panel, симлинки повисли в воздухе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65872</commentid>
    <comment_count>2</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-03-15 09:49:55 +0300</bug_when>
    <thetext>Проблема даже не в rpm, а в /sbin/postun_ldconfig из пакета glibc-core.

ldconfig в этом случае вызывается только если пакет удаляется.  Предыдущий вызов
ldconfig из %post проходит при наличии двух версий библиотеки и симлинк
проставляется на бОльший SONAME.

В случае когда SONAME уменьшается в пакете надо рисовать триггеры.  Когда откат
н астарый пакет идёт руками, надо вызывать ldconfig вручную.  Это такая фича.

P.S. В пакетах xscreensaver и vim-* я решил эту проблему, когда &quot;post&quot; скрипты
запускаются после удаления файлов старой версии пакета, но с библиотеками такой
хак не прокатит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65893</commentid>
    <comment_count>3</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-03-15 16:54:55 +0300</bug_when>
    <thetext>Можно как-то автоматизировать и стандартизировать процедуру &quot;починки&quot;? ldv?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65899</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-03-15 17:47:14 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; Можно как-то автоматизировать и стандартизировать процедуру &quot;починки&quot;? ldv?

Можно выкинуть эту оптимизацию из postun_ldconfig, тогда пи откатах библиотек не
надо будет вызывать ldconfig вручную, ценой двукратного увеличения числа вызовов
ldconfig при любом обновлении библиотек.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65946</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-03-16 14:35:39 +0300</bug_when>
    <thetext>Не надо нам такой цены.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65953</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-03-16 18:23:21 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; Не надо нам такой цены.
Угу... возможно, разумным хаком могло бы быть откладывание в той ветке
оптимизации, где ldconfig не выполняется, его на одноразовую post mortem часть?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72243</commentid>
    <comment_count>7</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-06-13 15:36:08 +0400</bug_when>
    <thetext>ldv: можно так сделать, как Миша предлагает? А то в Сизифе иногда либы откатывать надо :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81097</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-14 01:50:24 +0300</bug_when>
    <thetext>С внедрением в librpm posttrans filetriggers появился ещё один вариант решения проблемы, который мне кажется более предпочтительным:
Превратить post_ldconfig и postun_ldconfig в ссылки на ldconfig,
а в самом ldconfig сделать проверку на RPM_INSTALL_NAME, т.е. просто деактивировать ldconfig, запускаемый скриптами пакетов.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81432</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-21 04:35:43 +0300</bug_when>
    <thetext>Fixed in glibc-core-2.9-alt1 by disabling all kinds of ldconfig when RPM_INSTALL_NAME is set.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81473</commentid>
    <comment_count>10</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-11-21 16:13:44 +0300</bug_when>
    <thetext>Угу, filetriggers rulez.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>