Package: dpkg-dev
Version: 1.15.5.5
Tags: patch
Hi,
dpkg-shlibdeps breaks with the following error message if the ELF
object has spaces on its name:
Use of uninitialized value $format in string eq at
/usr/share/perl5/Dpkg/Shlibs.pm line 118, <P> line 2.
dpkg-shlibdeps: error: couldn't find library libc.so.6 needed by
debian/foo/usr/bin/foo bar (ELF format: ''; RPATH: '').
Note: libraries are not searched in other binary packages that do not
have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to set
LD_LIBRARY_PATH.
This is caused by the tight regex in Dpkg::Shlibs::Objdump::Object::_parse().
Attached patch relies on the greedy regex to properly support file
names with spaces and colons on their name.
Cheers,
--
Raphael Geissert - Debian Developer
www.debian.org - get.debian.net
--- unpacked/usr/share/perl5/Dpkg/Shlibs/Objdump.pm 2009-12-22 08:28:12.000000000 -0600
+++ /usr/share/perl5/Dpkg/Shlibs/Objdump.pm 2010-01-17 22:57:17.000000000 -0600
@@ -216,7 +216,7 @@
}
}
} elsif ($section eq "none") {
- if (/^\s*\S+:\s*file\s+format\s+(\S+)\s*$/) {
+ if (/^\s*.+:\s*file\s+format\s+(\S+)\s*$/) {
$self->{format} = $1;
} elsif (/^architecture:\s*\S+,\s*flags\s*\S+:\s*$/) {
# Parse 2 lines of "-f"