- add method to query leadsigid
authorMichael Schroeder <mls@suse.de>
Wed, 3 Mar 2010 11:39:00 +0000 (12:39 +0100)
committerMichael Schroeder <mls@suse.de>
Wed, 3 Mar 2010 11:39:00 +0000 (12:39 +0100)
Build.pm
Build/Rpm.pm

index 74631c1..6756ada 100644 (file)
--- a/Build.pm
+++ b/Build.pm
@@ -776,11 +776,11 @@ sub query {
 
 sub queryhdrmd5 {
   my ($binname) = @_;
-  return Build::Rpm::queryhdrmd5($binname) if $do_rpm && $binname =~ /\.rpm$/;
-  return Build::Deb::queryhdrmd5($binname) if $do_deb && $binname =~ /\.deb$/;
-  return Build::Kiwi::queryhdrmd5($binname) if $do_kiwi && $binname =~ /\.iso$/;
-  return Build::Kiwi::queryhdrmd5($binname) if $do_kiwi && $binname =~ /\.raw$/;
-  return Build::Kiwi::queryhdrmd5($binname) if $do_kiwi && $binname =~ /\.raw.install$/;
+  return Build::Rpm::queryhdrmd5(@_) if $do_rpm && $binname =~ /\.rpm$/;
+  return Build::Deb::queryhdrmd5(@_) if $do_deb && $binname =~ /\.deb$/;
+  return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.iso$/;
+  return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.raw$/;
+  return Build::Kiwi::queryhdrmd5(@_) if $do_kiwi && $binname =~ /\.raw.install$/;
   return undef;
 }
 
index 5d63d99..a0bebd1 100644 (file)
@@ -2,6 +2,8 @@ package Build::Rpm;
 
 use strict;
 
+use Digest::MD5;
+
 sub expr {
   my $expr = shift;
   my $lev = shift;
@@ -763,7 +765,7 @@ sub query {
 }
 
 sub queryhdrmd5 {
-  my ($bin) = @_;
+  my ($bin, $leadsigp) = @_;
 
   local *F;
   open(F, '<', $bin) || die("$bin: $!\n");
@@ -800,6 +802,7 @@ sub queryhdrmd5 {
     }
   }
   close F;
+  $$leadsigp = Digest::MD5::md5_hex(substr($buf, 0, $hlen)) if $leadsigp;
   my $idxarea = substr($buf, 96 + 16, $cnt * 16);
   if ($idxarea !~ /\A(?:.{16})*\000\000\003\354\000\000\000\007(....)\000\000\000\020/s) {
     warn("$bin: no md5 signature header\n");