about summary refs log tree commit diff
path: root/pkgs/build-support/vm/deb
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-05-07 11:15:44 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-05-07 11:19:46 +0200
commite7480d9cb7a703ce3970d85b4d835724fe7ca899 (patch)
tree4c520cb1347f47b2c1d9c16ae4bd6c37eb4eea03 /pkgs/build-support/vm/deb
parentabf2d3677382bb93b989528cc6ed71ac6d5bd3b8 (diff)
Add Debian 7.0
Diffstat (limited to 'pkgs/build-support/vm/deb')
-rw-r--r--pkgs/build-support/vm/deb/deb-closure.pl26
1 files changed, 18 insertions, 8 deletions
diff --git a/pkgs/build-support/vm/deb/deb-closure.pl b/pkgs/build-support/vm/deb/deb-closure.pl
index 887077037e287..bed397d6f07e9 100644
--- a/pkgs/build-support/vm/deb/deb-closure.pl
+++ b/pkgs/build-support/vm/deb/deb-closure.pl
@@ -46,17 +46,27 @@ sub getDeps {
 }
 
 
-# Process the "Provides" fields to be able to resolve virtual dependencies.
+# Process the "Provides" and "Replaces" fields to be able to resolve
+# virtual dependencies.
 my %provides;
 
 foreach my $cdata (values %packages) {
-    next unless defined $cdata->{Provides};
-    my @provides = getDeps(Dpkg::Deps::deps_parse($cdata->{Provides}));
-    foreach my $name (@provides) {
-        #die "conflicting provide: $name\n" if defined $provides{$name};
-        #warn "provide by $cdata->{Package} conflicts with package with the same name: $name\n";
-        next if defined $packages{$name};
-        $provides{$name} = $cdata->{Package};
+    if (defined $cdata->{Provides}) {
+        my @provides = getDeps(Dpkg::Deps::deps_parse($cdata->{Provides}));
+        foreach my $name (@provides) {
+            #die "conflicting provide: $name\n" if defined $provides{$name};
+            #warn "provide by $cdata->{Package} conflicts with package with the same name: $name\n";
+            next if defined $packages{$name};
+            $provides{$name} = $cdata->{Package};
+        }
+    }
+    # Treat "Replaces" like "Provides".
+    if (defined $cdata->{Replaces}) {
+        my @replaces = getDeps(Dpkg::Deps::deps_parse($cdata->{Replaces}));
+        foreach my $name (@replaces) {
+            next if defined $packages{$name};
+            $provides{$name} = $cdata->{Package};
+        }
     }
 }