diff options
author | Andras Timar <atimar@suse.com> | 2012-07-20 22:55:26 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-09-28 13:05:45 +0200 |
commit | 997bfce2df6648160ccec41e0a4e440d8711b429 (patch) | |
tree | 79a963eac776547b93e5ac804c2041c8bc90482f /solenv | |
parent | 609583db3f83343e3e42e6c94fd4cf218f11327c (diff) |
work around unexpected behaviour of msidb.exe from SDK 7.1
Change-Id: I48cfa19c40140dc81b105e27051f99e8f1a0c8ae
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/bin/modules/installer/windows/msp.pm | 32 |
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); + } } } |