]> err.no Git - dpkg/commitdiff
Dpkg::Deps::parse(): handle empty fields properly instead of returning undef
authorRaphael Hertzog <hertzog@debian.org>
Mon, 19 Nov 2007 22:17:40 +0000 (23:17 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Mon, 19 Nov 2007 22:17:40 +0000 (23:17 +0100)
And revert previous changes made to dpkg-gencontrol to skip empty fields.

ChangeLog
debian/changelog
scripts/Dpkg/Deps.pm
scripts/dpkg-gencontrol.pl

index 3620978f910e17d3af5d00d1dc33c1f8f56f0a35..dd384c2efc445785916c3c9ecb89587e022965ef 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,7 +7,8 @@
        problem (when a RPATH contains $ORIGIN and when the value of
        this variable can't be determined because we don't know what
        is the root directory of the temporary tree).
-       * scripts/dpkg-gencontrol.pl: Don't try to parse empty fields.
+       * scripts/Dpkg/Deps.pm: Fix parse() to handle empty fields instead
+       of returning undef.
 
 2007-11-19  Guillem Jover  <guillem@debian.org>
 
index fd36dc4c6b27b5fc12f9988836201485ba3a6de8..9d6dd581948d407a9b37717c140ed2eb3c0b0757 100644 (file)
@@ -2,8 +2,8 @@ dpkg (1.14.9) UNRELEASED; urgency=low
 
   [ Raphael Hertzog ]
   * Fix bad behaviour of Dpkg::Path::get_pkg_root_dir() and adjust
-    dpkg-shlibdeps accordingly.
-  * Fix dpkg-gencontrol to not try to parse and simplify empty fields.
+    dpkg-shlibdeps accordingly. Closes: #452012
+  * Fix Dpkg::Deps to accept empty fields. Closes: #452013
 
   [ Updated man pages translations ]
     * German (Helge Kreutzmann).
index 673f9df553e2c967e5ed1d1bb487277eca97a722..3b5ca3af0468d06f675ec978f618192ac2395fa7 100644 (file)
@@ -321,7 +321,6 @@ sub parse {
            push @dep_list, $dep_or;
        }
     }
-    return undef if not @dep_list;
     my $dep_and;
     if ($options{union}) {
        $dep_and = Dpkg::Deps::Union->new();
index f34660b91ccf82dfbdd88cafcd7686550d03ccf3..623809fcc143a43e9972fa0ea956bb3dd099a254 100755 (executable)
@@ -249,19 +249,20 @@ if (exists $fi{"C$myindex Provides"}) {
 my (@seen_deps);
 foreach my $field (@pkg_dep_fields) {
     my $key = "C$myindex $field";
-    if (exists $fi{$key} and $fi{$key}) {
+    if (exists $fi{$key}) {
        my $dep;
+       my $field_value = substvars($fi{$key});
        if ($dep_field_type{$field} eq 'normal') {
-           $dep = Dpkg::Deps::parse(substvars($fi{$key}), use_arch => 1,
+           $dep = Dpkg::Deps::parse($field_value, use_arch => 1,
                                      reduce_arch => 1);
-           error(_g("error occurred while parsing %s"), $_) unless defined $dep;
+           error(_g("error occurred while parsing %s"), $field_value) unless defined $dep;
            $dep->simplify_deps($facts, @seen_deps);
            # Remember normal deps to simplify even further weaker deps
            push @seen_deps, $dep if $dep_field_type{$field} eq 'normal';
        } else {
-           $dep = Dpkg::Deps::parse(substvars($fi{$key}), use_arch => 1,
+           $dep = Dpkg::Deps::parse($field_value, use_arch => 1,
                                      reduce_arch => 1, union => 1);
-           error(_g("error occurred while parsing %s"), $_) unless defined $dep;
+           error(_g("error occurred while parsing %s"), $field_value) unless defined $dep;
            $dep->simplify_deps($facts);
        }
        $dep->sort();