apply pattern.xml in the end of build
authorYigang Wen <yigangx.wen@intel.com>
Thu, 15 May 2014 10:43:15 +0000 (18:43 +0800)
committerYigang Wen <yigangx.wen@intel.com>
Mon, 19 May 2014 06:14:49 +0000 (14:14 +0800)
Fixes: #1879
Change-Id: Ifa5abae0a1cbd659633c877616c0e6ccbd2b3f6f
Signed-off-by: Yigang Wen <yigangx.wen@intel.com>
depanneur

index 9f2d4d3954b1ec2c7bbe8b8703df2d452e4166c1..c6b24cda2620eef3f1c5ad84b554a9b98423dd18 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -946,10 +946,6 @@ sub createrepo
     $extra_opts = $extra_opts . " --update " if ( -e "$localrepo/$dist/$arch/repodata" );
     $extra_opts = $extra_opts . " --groupfile=$groupfile " if ( -e "$groupfile");
     my_system ("createrepo $extra_opts $localrepo/$dist/$arch > /dev/null 2>&1 ") == 0 or die "createrepo failed: $?\n";
-    if ( -e $patternfile ) {
-        my_system("rm $localrepo/$dist/$arch/repodata/*patterns.xml.gz -f");
-        my_system("modifyrepo $patternfile $localrepo/$dist/$arch/repodata >/dev/null");
-    }
 
 }
 
@@ -1513,6 +1509,17 @@ sub update_repo
         createrepo ($arch, $dist);
     }
 
+    my @package_group_rpm = glob("$rpm_repo_path/package-groups-[0-9]*.rpm");
+    my $tmp_dir = abs_path(tempdir(CLEANUP=>1));
+    if ( @package_group_rpm != 0 and -e $package_group_rpm[0] ) {
+        my_system("cd $tmp_dir; rpm2cpio $package_group_rpm[0] | cpio -di ");
+        ( $patternfile ) = glob("$tmp_dir/*/*/*/patterns.xml");
+    }
+    if ( -e $patternfile ) {
+        my_system("rm $localrepo/$dist/$arch/repodata/*patterns.xml.gz -f");
+        my_system("modifyrepo $patternfile $localrepo/$dist/$arch/repodata >/dev/null");
+    }
+
 }
 
 sub build_html_report