From 0929a90d18c61de4b05e039e3da157774dc9b4f1 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Wed, 3 Mar 2010 12:39:00 +0100 Subject: [PATCH] - add method to query leadsigid --- Build.pm | 10 +++++----- Build/Rpm.pm | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Build.pm b/Build.pm index 74631c1..6756ada 100644 --- 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; } diff --git a/Build/Rpm.pm b/Build/Rpm.pm index 5d63d99..a0bebd1 100644 --- a/Build/Rpm.pm +++ b/Build/Rpm.pm @@ -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"); -- 2.7.4