Package: dpkg-dev Version: 1.14.22 Severity: wishlist Tags: patch
Please use RUNPATH when defined instead of RPATH. A possible implementation's attached.
diff -ur dpkg-1.14.22.orig/scripts/Dpkg/Shlibs/Objdump.pm dpkg-1.14.22/scripts/Dpkg/Shlibs/Objdump.pm --- dpkg-1.14.22.orig/scripts/Dpkg/Shlibs/Objdump.pm 2008-07-01 19:07:54.000000000 +0200 +++ dpkg-1.14.22/scripts/Dpkg/Shlibs/Objdump.pm 2008-10-14 21:36:42.000000000 +0200 @@ -125,6 +125,7 @@ $self->{GNU_HASH} = ''; $self->{SONAME} = ''; $self->{NEEDED} = []; + $self->{RUNPATH} = []; $self->{RPATH} = []; $self->{dynsyms} = {}; $self->{flags} = {}; @@ -197,6 +198,8 @@ $self->{HASH} = $1; } elsif (/^\s*GNU_HASH\s+(\S+)/) { $self->{GNU_HASH} = $1; + } elsif (/^\s*RUNPATH\s+(\S+)/) { + push @{$self->{RUNPATH}}, split (/:/, $1); } elsif (/^\s*RPATH\s+(\S+)/) { push @{$self->{RPATH}}, split (/:/, $1); } diff -ur dpkg-1.14.22.orig/scripts/dpkg-shlibdeps.pl dpkg-1.14.22/scripts/dpkg-shlibdeps.pl --- dpkg-1.14.22.orig/scripts/dpkg-shlibdeps.pl 2008-08-26 15:52:08.000000000 +0200 +++ dpkg-1.14.22/scripts/dpkg-shlibdeps.pl 2008-10-14 23:09:23.000000000 +0200 @@ -142,7 +142,9 @@ my %soname_notfound; my %alt_soname; foreach my $soname (@sonames) { - my $lib = my_find_library($soname, $obj->{RPATH}, $obj->{format}, $file); + my @usedrpath = scalar(@{$obj->{RUNPATH}}) ? $obj->{RUNPATH} + : $obj->{RPATH}; + my $lib = my_find_library($soname, @usedrpath, $obj->{format}, $file); unless (defined $lib) { $soname_notfound{$soname} = 1; $global_soname_notfound{$soname} = 1;