Add archpolicies for supporting more x86 and arm archs
authorZhang Qiang <qiang.z.zhang@intel.com>
Thu, 29 Nov 2012 08:03:04 +0000 (16:03 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Thu, 29 Nov 2012 12:08:00 +0000 (20:08 +0800)
Change-Id: I7e22b8ec623316fbc2403187ee0e6deee93c71b0

depanneur

index a8c02192908895eccb165d76ce092237127b5461..b6529271f858b5a9e578ecebf8b25f13e71b2838 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -400,23 +400,33 @@ mkdir_p($srpm_repo_path);
 
 my @packs;
 my $package_path = "";
-# FIXME
-
-my @arm_archs = ( "armv7el" , "armv7l", "noarch");
-my @ix86_archs = ("i386", "i586", "i686", "noarch");
-my @ix86_64_archs = ("i386", "i586", "i686", "x86_64", "noarch");
-my @archs = ();
-if ( $arch eq "i586" ) {
-    @archs = @ix86_archs;
-} elsif ( $arch eq "x86_64" ) {
-    @archs = @ix86_64_archs;
-} else {
-    @archs = @arm_archs;
-}
-my $archpath;
-foreach my $ap (@archs) {
-    $archpath .= $ap.":";
-}
+
+# This arch policy comes from sat-solver:src/poolarch.c
+my %archpolicies = (
+          "x86_64"      =>  ["x86_64", "i686", "i586", "i486", "i386", "noarch"],
+          "i686"        =>  ["i686", "i586", "i486", "i386", "noarch"],
+          "i586"        =>  ["i586", "i486", "i386", "noarch"],
+          "i486"        =>  ["i486", "i386", "noarch"],
+          "i386"        =>  ["i386", "noarch"],
+          "ia64"        =>  ["ia64", "i686", "i586", "i486", "i386", "noarch"],
+          "armv7tnhl"   =>  ["arvm7tnhl", "armv7thl", "armv7nhl", "armv7hl", "noarch"],
+          "armv7thl"    =>  ["armv7thl", "armv7hl", "noarch"],
+          "armv7nhl"    =>  ["armv7nhl", "armv7hl", "noarch"],
+          "armv7hl"     =>  ["armv7hl", "noarch"],
+          "armv7l"      =>  ["armv7l", "armv7el", "armv6l", "armv5tejl", "armv5tel", "armv5l", "armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv6l"      =>  ["armv6l", "armv5tejl", "armv5tel", "armv5l", "armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv5tejl"   =>  ["armv5tejl", "armv5tel", "armv5l", "armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv5tel"    =>  ["armv5tel", "armv5l", "armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv5l"      =>  ["armv5l", "armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv4tl"     =>  ["armv4tl", "armv4l", "armv3l", "noarch"],
+          "armv4l"      =>  ["armv4l", "armv3l", "noarch"],
+        );
+
+error("$arch not support") if (not exists $archpolicies{$arch});
+
+my @archs = @{$archpolicies{$arch}};
+my $archpath = join(":", @archs);
+
 my $config = Build::read_config_dist($dist, $archpath, $dist_configs);
 
 if ( -d "$packaging_dir" && -d ".git" ) {