--merge - handle situation when metadata is absent

This commit is contained in:
Denis Silakov 2014-09-22 08:09:48 -04:00
parent 54960d0b3b
commit 8ed2cfc770
2 changed files with 13 additions and 11 deletions

View file

@ -1,6 +1,6 @@
diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
--- rpmtools-6.1.orig/genhdlist2 2014-09-15 15:16:01.897360790 +0400
+++ rpmtools-6.1/genhdlist2 2014-09-15 15:46:49.418356137 +0400
--- rpmtools-6.1.orig/genhdlist2 2014-09-22 08:05:41.826594240 -0400
+++ rpmtools-6.1/genhdlist2 2014-09-22 08:09:00.242587687 -0400
@@ -5,6 +5,7 @@
use URPM;
use MDV::Packdrakeng;
@ -68,7 +68,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
my $urpm = new URPM;
@@ -114,16 +133,62 @@
@@ -114,16 +133,64 @@
}
my @xml_media_info = $options{xml_info} ? ('info', 'files', 'changelog') : ();
@ -78,9 +78,11 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
+ # Unpack all files to be processed
+ my @files_to_clean = ("synthesis.hdlist$synthesis_suffix", map { "$_.xml$xml_info_suffix" } @xml_media_info);
+ foreach my $name (@xml_media_info) {
+ system("rm -f $media_info_dir/$name.xml; $xml_info_filter -d -S $xml_info_suffix $media_info_dir/$name.xml$xml_info_suffix") == 0 or die("Failed to unpack xml metadata files");
+ system("rm -f $media_info_dir/$name.xml");
+ system("$xml_info_filter -d -S $xml_info_suffix $media_info_dir/$name.xml$xml_info_suffix || touch $media_info_dir/$name.xml") == 0 or die("Failed to unpack xml metadata files");
+ }
+ system("rm -f $media_info_dir/synthesis.hdlist; $synthesis_filter -d -S $synthesis_suffix $media_info_dir/synthesis.hdlist$synthesis_suffix") == 0 or die("Failed to unpack synthesis file");
+ system("rm -f $media_info_dir/synthesis.hdlist");
+ system("$synthesis_filter -d -S $synthesis_suffix $media_info_dir/synthesis.hdlist$synthesis_suffix || touch $media_info_dir/synthesis.hdlist") == 0 or die("Failed to unpack synthesis file");
+
+ my $old_metadata_file = "$media_info_dir/old-metadata.lst";
+ if (-e $old_metadata_file) {
@ -134,7 +136,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
my $existed = remove_versioned_media_info($media_info_dir);
if ($options{versioned} && ($options{versioned} ne 'auto' || $existed)) {
push @media_info_files, generate_versioned_media_info($media_info_dir, \@media_info_files);
@@ -161,9 +226,10 @@
@@ -161,9 +228,10 @@
}
sub build {
@ -146,7 +148,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
my $out_hdlist;
if (!$b_no_hdlist) {
@@ -178,7 +244,7 @@
@@ -177,7 +245,7 @@
my $out = {
hdlist => $out_hdlist,
@ -155,7 +157,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
};
if (-e $hdlist && !$b_no_incremental) {
@@ -186,7 +252,7 @@
@@ -185,7 +253,7 @@
filter_existing_hdlist($urpm, $rpms_todo, $hdlist, $out);
}
@ -164,7 +166,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
close_xml($out->{$_}) foreach @$xml_media_info;
}
@@ -246,12 +312,14 @@
@@ -245,12 +313,14 @@
}
sub open_xml_filter {
@ -182,7 +184,7 @@ diff -Naur rpmtools-6.1.orig/genhdlist2 rpmtools-6.1/genhdlist2
$F;
}
@@ -504,6 +572,59 @@
@@ -503,6 +573,59 @@
@$rpms_list = grep { !$old{$_} } @$rpms_list;
}

View file

@ -1,7 +1,7 @@
Summary: Various RPM command-line tools
Name: rpmtools
Version: 6.1
Release: 15
Release: 16
Source0: %{name}-%{version}.tar.xz
# (tpg) from Mageia
# http://svnweb.mageia.org/soft?view=revision&revision=6438