Summary: | Fails to load shared libraries located not in public place | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sviatoslav Sviridov <svd> |
Component: | rpm-build-perl | Assignee: | viy <viy> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | at, crux, ender, ldv, mike, rider, viy |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Sviatoslav Sviridov
2006-03-24 12:13:57 MSK
Попробуйте %define __spec_autodep_custom_pre export LD_LIBRARY_PATH=%buildroot%_libdir/libsvn_swig ping на subversion 1.5.4 ошибка с этими исправлениями сохраняется Я проверил сборку subversion-1.6.17-alt2 с указанным в 1-ом комментарии define'ом и сборка прошла успешной. Поэтому мне кажется, что blocker тут не очень уместен. В принципе, можно улучшить perl.req, заставив его искать lib*.so.* файлы рекурсивно по всем каталогам в %buildroot%_libdir и добавлять все такие найденные каталоги в LD_LIBRARY_PATH. Как-то так: diff --git a/perl.req b/perl.req index c6e2967..df23bbd 100755 --- a/perl.req +++ b/perl.req @@ -4,6 +4,7 @@ use strict; use Config qw(%Config); use PerlReq::Utils qw(argv inc explode mod2dep path2dep); +use File::Find; sub pod2usage { eval { require Pod::Usage } or die $@; @@ -188,10 +189,16 @@ sub do_deparse { } # adjust LD_LIBRARY_PATH if there are libraries inside buildroot # spotted by Yury Konovalov - for my $libdir ("/usr/lib64", "/usr/lib") { - next unless glob "$ENV{RPM_BUILD_ROOT}$libdir/lib*.so*"; + my %lib_paths = (); + find ( sub { + next unless (/^lib.*\.so\..*$/ ); + next if (exists $lib_paths{$File::Find::dir} + || $File::Find::dir =~ m{^$ENV{RPM_BUILD_ROOT}/usr/lib/debug} ); + $lib_paths{$File::Find::dir}++; + }, "$ENV{RPM_BUILD_ROOT}/usr/lib64", "$ENV{RPM_BUILD_ROOT}/usr/lib"); + if (keys %lib_paths) { $ENV{LD_LIBRARY_PATH} .= ":" if $ENV{LD_LIBRARY_PATH}; - $ENV{LD_LIBRARY_PATH} .= "$ENV{RPM_BUILD_ROOT}$libdir"; + $ENV{LD_LIBRARY_PATH} .= join ":", keys %lib_paths; } } my @pipe = ($X, shebang_options($fname)); Ещё актуально? (In reply to comment #5) > Ещё актуально? Актуально, но, видимо, уже не очень срочно. На досуге приложу и поверю. |