summaryrefslogtreecommitdiff
path: root/solenv/bin/modules/installer/windows/msp.pm
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-07-20 22:55:26 +0200
committerAndras Timar <atimar@suse.com>2012-09-28 13:05:45 +0200
commit997bfce2df6648160ccec41e0a4e440d8711b429 (patch)
tree79a963eac776547b93e5ac804c2041c8bc90482f /solenv/bin/modules/installer/windows/msp.pm
parent609583db3f83343e3e42e6c94fd4cf218f11327c (diff)
work around unexpected behaviour of msidb.exe from SDK 7.1
Change-Id: I48cfa19c40140dc81b105e27051f99e8f1a0c8ae
Diffstat (limited to 'solenv/bin/modules/installer/windows/msp.pm')
-rw-r--r--solenv/bin/modules/installer/windows/msp.pm32
1 files changed, 18 insertions, 14 deletions
diff --git a/solenv/bin/modules/installer/windows/msp.pm b/solenv/bin/modules/installer/windows/msp.pm
index 7816cec26e3a..a5e9ad274f7d 100644
--- a/solenv/bin/modules/installer/windows/msp.pm
+++ b/solenv/bin/modules/installer/windows/msp.pm
@@ -175,23 +175,27 @@ sub include_tables_into_pcpfile
$localworkdir =~ s/\//\\\\/g;
}
- $systemcall = $msidb . " -d " . $localfullpcpfilepath . " -f " . $localworkdir . " -i " . $tables;
-
- $returnvalue = system($systemcall);
+ my @tables = split(' ', $tables); # I found that msidb from Windows SDK 7.1 did not accept more than one table.
+ foreach my $table (@tables)
+ {
+ $systemcall = $msidb . " -d " . $localfullpcpfilepath . " -f " . $localworkdir . " -i " . $table;
- $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
+ $returnvalue = system($systemcall);
- if ($returnvalue)
- {
- $infoline = "ERROR: Could not execute $systemcall !\n";
- push( @installer::globals::logfileinfo, $infoline);
- installer::exiter::exit_program("ERROR: Could not include tables into pcp file: $fullpcpfilepath !", "include_tables_into_pcpfile");
- }
- else
- {
- $infoline = "Success: Executed $systemcall successfully!\n";
+ $infoline = "Systemcall: $systemcall\n";
push( @installer::globals::logfileinfo, $infoline);
+
+ if ($returnvalue)
+ {
+ $infoline = "ERROR: Could not execute $systemcall !\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ installer::exiter::exit_program("ERROR: Could not include tables into pcp file: $fullpcpfilepath !", "include_tables_into_pcpfile");
+ }
+ else
+ {
+ $infoline = "Success: Executed $systemcall successfully!\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
}
}