[devel] Hidden NSPR/NSS unmets

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Чт Янв 12 20:22:22 MSK 2006


On Mon, Jan 09, 2006 at 03:52:05AM +0300, Dmitry V. Levin wrote:
> On Sat, Jan 07, 2006 at 11:18:53PM +0300, Mikhail Zabaluev wrote:
> > Вот еще одна из списка небольших проблем,
> > вызванных ложными Provides в gecko-based пакетах.
> > Это все можно решить прописыванием явных сборочных зависимостей на
> > libnspr-devel и libnss-devel в разных пакетах, но боюсь, список этих
> > пакетов может оказаться больше другого списка, из
> > apt-cache showpkg libnspr4.so:
> > ...
> > Reverse Provides:
> > xulrunner 0.0.0-alt1
> > thunderbird 1.0.6-alt1
> > sunbird 0.2-alt1
> > nvu 1.0PR-alt1
> > libnspr 4.7.0.cvs20051124-alt2
> > 
> > Когда этот список сократится до последнего пункта?
> 
> Я не так давно опичывал план действий по сокращению этого списка до
> последнего пункта, правда без сроков.
> 
> К сожалению, все хакерские штучки типа линковки с использованием
> -rpath-link без -rpath и последующего запуска с переопределением
> LD_LIBRARY_PATH пойдут лесом.
> 
> Если линкуетесь с библиотеками вне стандартных путей, извольте
> устанавливать правильный RPATH.

Готово.  Первым пострадавшим, как это ни забавно, оказалась mozilla.
При попытке собрать mozilla-1.7.12-alt3.4.src.rpm случилось вот что:

+ /usr/lib/rpm/find-requires
Library libmsgbaseutil.so referenced from /usr/lib/mozilla/components/libaddrbook.so not found.
error: /bin/sh failed
error: Failed to find Requires

А всё из-за того, что
$ find mozilla-buildroot -name libmsgbaseutil.so
mozilla-buildroot/usr/lib/mozilla/libmsgbaseutil.so
$ readelf -d mozilla-buildroot/usr/lib/mozilla/components/libaddrbook.so |grep -w libmsgbaseutil.so
 0x00000001 (NEEDED)                     Shared library: [libmsgbaseutil.so]
$ readelf -d mozilla-buildroot/usr/lib/mozilla/components/libaddrbook.so |grep -w RPATH |wc -l
0

Эта сборка вообще не устанавливает RPATH:
$ for f in `find mozilla-buildroot -type f |xargs -r file |grep -w ELF |cut -d: -f1`; do readelf -d "$f" |grep -wqs RPATH && echo "$f"; done |wc -l
0

В стандартных местах нет, RPATH не указан. И где, спрашивается, искать?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060112/91a7a35d/attachment-0001.bin>


Подробная информация о списке рассылки Devel