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"