Skip to content

Commit af17dbf

Browse files
committedFeb 25, 2014
creatensis.pl: check md5sums
1 parent 29e9272 commit af17dbf

File tree

1 file changed

+36
-6
lines changed

1 file changed

+36
-6
lines changed
 

‎ms-windows/osgeo4w/creatensis.pl

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
pod2usage(1) if $help;
4949

50-
my $wgetopt = $verbose ? "" : "-q";
50+
my $wgetopt = $verbose ? "" : "-nv";
5151

5252
unless(-f "nsis/System.dll") {
5353
mkdir "nsis", 0755 unless -d "nsis";
@@ -70,21 +70,29 @@
7070
my %file;
7171
my %lic;
7272
my %sdesc;
73+
my %md5;
7374
my $package;
7475

7576
system "wget $wgetopt -O setup.ini -c $root$archpath/$ininame";
7677
die "download of setup.ini failed" if $?;
7778
open F, "setup.ini" || die "setup.ini not found";
7879
while(<F>) {
80+
my $file;
81+
my $md5;
82+
7983
chop;
8084
if(/^@ (\S+)/) {
8185
$package = $1;
8286
} elsif( /^requires: (.*)$/ ) {
8387
@{$dep{$package}} = split / /, $1;
84-
} elsif( /^install:\s+(\S+)\s+/) {
85-
$file{$package} = $1 unless exists $file{$package};
86-
} elsif( /^license:\s+(\S+)\s+/) {
87-
$lic{$package} = $1 unless exists $lic{$package};
88+
} elsif( ($file,$md5) = /^install:\s+(\S+)\s+.*\s+(\S+)$/) {
89+
$file{$package} = $file unless exists $file{$package};
90+
$file =~ s/^.*\///;
91+
$md5{$file} = $md5 unless exists $md5{$file};
92+
} elsif( ($file,$md5) = /^license:\s+(\S+)\s+.*\s+(\S+)$/) {
93+
$lic{$package} = $file unless exists $lic{$package};
94+
$file =~ s/^.*\///;
95+
$md5{$file} = $md5 unless exists $md5{$file};
8896
} elsif( /^sdesc:\s*"(.*)"\s*$/) {
8997
$sdesc{$package} = $1 unless exists $sdesc{$package};
9098
}
@@ -145,6 +153,28 @@ sub getDeps {
145153
print "Downloading $file [$f]...\n" if $verbose;
146154
system "wget $wgetopt -c $f";
147155
die "download of $f failed" if $?;
156+
157+
if( exists $md5{$file} ) {
158+
my $md5;
159+
open F, "md5sum $file|";
160+
while(<F>) {
161+
if( /^(\S+)\s+$file$/ ) {
162+
$md5 = $1;
163+
}
164+
}
165+
close F;
166+
167+
die "No md5sum of $p determined" unless defined $md5;
168+
if( $md5 eq $md5{$file} ) {
169+
print "md5sum of $file verified.\n" if $verbose;
170+
} else {
171+
die "md5sum mismatch for $file [$md5 vs $md5{$file{$p}}]"
172+
}
173+
}
174+
else
175+
{
176+
die "md5sum for $file not found.\n";
177+
}
148178
}
149179
}
150180

@@ -398,7 +428,7 @@ sub getDeps {
398428
$cmd .= " QGIS-Installer.nsi";
399429

400430
system $cmd;
401-
die "running nsis failed" if $?;
431+
die "running nsis failed [$cmd]" if $?;
402432

403433
open P, ">osgeo4w/binary$archpostfix-$version";
404434
print P $binary;

0 commit comments

Comments
 (0)
Please sign in to comment.