Bug 6570

Summary: /etc/ld.so.conf non-modification may break dist-upgrade
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: glibc-coreAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 9199, 14168    

Description Michael Shigorin 2005-04-19 14:38:35 MSD
While updating Compact 2.3 to current Sisyphus it was observed that:

- old /etc/ld.so.conf was left intact;
- /etc/ld.so.conf.rpmnew contained "include /etc/ld.so.conf.d/*.conf".

This behaviour, although compatible with local administrator's changes, may
break (and it did) dist-upgrades when subsequent package installs rely on their
/etc/ld.so.conf.d/* being processed.

Proposal: check (trigger or just a grep in %post) that include is absent in
/etc/ld.so.conf and if so, add just that line (maybe also warn on stderr).
Comment 1 Michael Shigorin 2006-11-12 19:28:17 MSK
Предлагаю:

%post
grep -q '^include /etc/ld\.so\.conf\.d/\*' /etc/ld.so.conf || echo 'include
/etc/ld.so.conf.d/*.conf' >> /etc/ld.so.conf

BTW -- дома на M30, который тянется с M22, обнаружился именно такой случай, но
при этом не припомню каких-то особых грабель.  В /etc/ld.so.conf.d/ присутствуют
wine.conf (/usr/lib/wine) и xorg.conf (/usr/X11R6/lib), при этом /usr/X11R6/lib
был добавлен чем-то и в имеющийся /etc/ld.so.conf.
Comment 2 Dmitry V. Levin 2006-11-12 19:39:02 MSK
В %post какого пакета?
Comment 3 Michael Shigorin 2006-11-12 21:21:09 MSK
Эээ... что-то шевельнулось, но только сейчас дошло.  Мне придумать маленький
статический хелпер или ты сам сразу его перепишешь? :)
Comment 4 Dmitry V. Levin 2006-11-12 21:29:05 MSK
А зачем статический?
И ведь есть уже /sbin/glibc_post_upgrade, может быть в него встроить?
Comment 5 Michael Shigorin 2006-11-12 21:32:26 MSK
(In reply to comment #4)
> А зачем статический?
Торможу, это ж %post.

> И ведь есть уже /sbin/glibc_post_upgrade, может быть в него встроить?
А давай.
Comment 6 Michael Shigorin 2007-11-24 14:35:04 MSK
(In reply to comment #5)
> > И ведь есть уже /sbin/glibc_post_upgrade, может быть в него встроить?
> А давай.
(где-нить ближе к glibc-2.7+? ;-)
Comment 7 Dmitry V. Levin 2008-01-27 03:30:19 MSK
(In reply to comment #6)
> (In reply to comment #5)
> > > И ведь есть уже /sbin/glibc_post_upgrade, может быть в него встроить?
> > А давай.
> (где-нить ближе к glibc-2.7+? ;-)

Зачем откладывать в долгий ящик?
В 2.5.1-alt2-4-gda3f153 должно работать.
Comment 8 Michael Shigorin 2008-01-27 23:31:18 MSK
(In reply to comment #7)
> > (где-нить ближе к glibc-2.7+? ;-)
> Зачем откладывать в долгий ящик?
(осмотрев номер баги) Ну... мало ли.

> В 2.5.1-alt2-4-gda3f153 должно работать.
Спасибо, постараюсь дома проверить.  Тут сейчас в наличии (на бранче):

home:~> head /etc/ld.so.conf{,.rpmnew}
==> /etc/ld.so.conf <==

/usr/lib
/usr/lib/qt3/lib
/usr/lib/krb5

/usr/X11R6/lib

==> /etc/ld.so.conf.rpmnew <==
include /etc/ld.so.conf.d/*.conf
Comment 9 Dmitry V. Levin 2008-01-27 23:36:37 MSK
(In reply to comment #8)
> > В 2.5.1-alt2-4-gda3f153 должно работать.
> Спасибо, постараюсь дома проверить.

Я уже проверил, сейчас отправил -alt3 в Сизиф.

Логика работы workaround'а такая:
если в ходе _обновления_ пакета glibc-core в файле /etc/ld.so.conf нет
упоминания /etc/ld.so.conf.d/, то в файл /etc/ld.so.conf добавляется строка
include /etc/ld.so.conf.d/*.conf