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"

Reply via email to