Support ExportFilter release-0.8.1
authorZhang Qiang <qiang.z.zhang@intel.com>
Fri, 13 Sep 2013 03:46:14 +0000 (11:46 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Mon, 16 Sep 2013 07:25:05 +0000 (15:25 +0800)
Take packages, which target arch compatiable with build system arch
into resolve packages pool, and make it can be found by dependency resolver.

Fixes: #1131
Change-Id: I2289bcf255bea2ff2ed96687d9cc67689ef7a248

depanneur

index 8a498ddc439ea04b9f02128268f29a767d925cbc..eb6ecd27d97af1c8777e2c88cf5b4414711e2b98 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -710,7 +710,7 @@ sub parse_packs {
 sub refresh_repo {
     my $rpmdeps = "$order_dir/.repo.cache";
     my (%fn, %prov, %req);
-
+    my %exportfilters = %{$config->{'exportfilter'}};
     my %packs;
     my %ids;
 
@@ -722,12 +722,24 @@ sub refresh_repo {
     while(<$fh>) {
       chomp;
       if (/^F:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
+        my $pkgname = basename($2);
         $pkgF = $2;
         next if $fn{$1};
         $fn{$1} = $2;
         my $pack = $1;
         $pack =~ /^(.*)\.([^\.]+)$/ or die;
         push @{$packs_arch{$2}}, $1;
+        my $basename = $1;
+        my $arch = $2;
+        for(keys %exportfilters) {
+            next if ($pkgname !~ /$_/);
+            for (@{$exportfilters{$_}}) {
+                my $target_arch = $_;
+                next if ($target_arch eq ".");
+                next if (! grep ($_ eq $target_arch, @archs));
+                $packs{$basename} = "$basename.$arch"
+            }
+        }
       } elsif (/^P:(.*?)-\d+\/\d+\/\d+: (.*)$/) {
         $pkgP = $2;
         next if $prov{$1};