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