The following commit has been merged in the master branch:
commit bd8ddb2fcad52236b5844531583e7a3d1b169259
Author: Raphaël Hertzog <[email protected]>
Date:   Wed Mar 2 12:32:38 2011 +0100

    dpkg-shlibdeps: improve parsing of output of dpkg --search
    
    The returned package names can include ":" with foreign packages.
    Modify the regex to allow this but also tighten it to match only
    characters allowed in package names (plus ", " used as separator).
    
    And anchor the match on the filename with the initial "/" as
    a safety measure.
    
    Sponsored-by: Linaro Limited

diff --git a/debian/changelog b/debian/changelog
index c20d666..88b0a0b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -60,6 +60,7 @@ dpkg (1.16.0) UNRELEASED; urgency=low
     --control-path.
   * Update dpkg-shlibdeps to be multiarch-ready:
     - use get_control_path() to find symbols/shlibs files
+    - parse correctly the output of dpkg --search
 
   [ Jonathan Nieder ]
   * Remove support for use of synchronous sync(2), due to its pernicious
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 3114937..790ba39 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -848,7 +848,7 @@ sub find_packages {
            warning(_g("diversions involved - output may be incorrect"));
            print(STDERR " $_\n")
                || syserr(_g("write diversion info to stderr"));
-       } elsif (m/^([^:]+): (\S+)$/) {
+       } elsif (m/^([-a-z0-9+.:, ]+): (\/.*)$/) {
            $cached_pkgmatch{$2} = $pkgmatch->{$2} = [ split(/, /, $1) ];
        } else {
            warning(_g("unknown output from dpkg --search: '%s'"), $_);

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to