sub add_md5_to_print($) # {{{
{
open(F, "< $_[0]") or die;
- my $sourceno = undef;
- my $source = undef;
+ my @sourcemap = ();
while (<F>) {
chomp;
if (/^Source(\d+)\s*:\s*(.*)/i) {
- $sourceno = $1;
- $source = $2;
+ my $sourceno = $1;
+ my $source = $2;
+ $sourcemap[$sourceno] = $source;
} elsif (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
my $no = $1;
my $md5 = $2;
if (defined $no_source{$no}) {
error("both NoSource: $no and md5 given");
- } if (defined $sourceno) {
- if ($sourceno == $no) {
- push @sources, [$no, $md5, $source];
- } else {
- error("found md5 for source $no, but last defined source is $sourceno (# SourceN-md5: has to be placed just after SourceN:)");
- }
+ } if (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
} else {
error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
}
-
- $sourceno = undef;
- $source = undef;
} elsif (/^\s*BuildRequires:\s*digest\(%SOURCE(\d+)\)\s*=\s*([a-f0-9]{32})/i) {
my $no = $1;
my $md5 = $2;
if (defined $no_source{$no}) {
error("both NoSource: $no and md5 given");
- } if (defined $sourceno) {
- if ($sourceno == $no) {
- push @sources, [$no, $md5, $source];
- } else {
- error("found md5 for source $no, but last defined source is $sourceno (# SourceN-md5: has to be placed just after SourceN:)");
- }
+ } if (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
} else {
- error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
+ error("source $no not defined (# Source digest has to be placed after SourceN:)");
}
-
- $sourceno = undef;
- $source = undef;
}
}
close(F);