|
47 | 47 |
|
48 | 48 | pod2usage(1) if $help;
|
49 | 49 |
|
50 |
| -my $wgetopt = $verbose ? "" : "-q"; |
| 50 | +my $wgetopt = $verbose ? "" : "-nv"; |
51 | 51 |
|
52 | 52 | unless(-f "nsis/System.dll") {
|
53 | 53 | mkdir "nsis", 0755 unless -d "nsis";
|
|
70 | 70 | my %file;
|
71 | 71 | my %lic;
|
72 | 72 | my %sdesc;
|
| 73 | +my %md5; |
73 | 74 | my $package;
|
74 | 75 |
|
75 | 76 | system "wget $wgetopt -O setup.ini -c $root$archpath/$ininame";
|
76 | 77 | die "download of setup.ini failed" if $?;
|
77 | 78 | open F, "setup.ini" || die "setup.ini not found";
|
78 | 79 | while(<F>) {
|
| 80 | + my $file; |
| 81 | + my $md5; |
| 82 | + |
79 | 83 | chop;
|
80 | 84 | if(/^@ (\S+)/) {
|
81 | 85 | $package = $1;
|
82 | 86 | } elsif( /^requires: (.*)$/ ) {
|
83 | 87 | @{$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}; |
88 | 96 | } elsif( /^sdesc:\s*"(.*)"\s*$/) {
|
89 | 97 | $sdesc{$package} = $1 unless exists $sdesc{$package};
|
90 | 98 | }
|
@@ -145,6 +153,28 @@ sub getDeps {
|
145 | 153 | print "Downloading $file [$f]...\n" if $verbose;
|
146 | 154 | system "wget $wgetopt -c $f";
|
147 | 155 | 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 | + } |
148 | 178 | }
|
149 | 179 | }
|
150 | 180 |
|
@@ -398,7 +428,7 @@ sub getDeps {
|
398 | 428 | $cmd .= " QGIS-Installer.nsi";
|
399 | 429 |
|
400 | 430 | system $cmd;
|
401 |
| -die "running nsis failed" if $?; |
| 431 | +die "running nsis failed [$cmd]" if $?; |
402 | 432 |
|
403 | 433 | open P, ">osgeo4w/binary$archpostfix-$version";
|
404 | 434 | print P $binary;
|
|
0 commit comments