solenv/bin/modules/installer.pm | 30 +++-
solenv/bin/modules/installer/windows/msp.pm | 30
2 files changed, 34 insertions(+), 26 deletions(-)
New commits:
commit d925191b869ad687debcac79828275d0eadd52fe
Author: Andras Timar andras.ti...@collabora.com
Date: Sun Sep 29 09:39:22 2013 -0700
I forgot to add -d swith to signtool
The UAC prompt shows a temporary random Program Name for msi, if the
-d switch is not given.
One more change: probably it is not wise to print the password of
code signing key in clear text to log and to screen.
Change-Id: I1f555754eee19708bbd7a3c70280fe662c77fc3a
diff --git a/solenv/bin/modules/installer.pm b/solenv/bin/modules/installer.pm
index a122927..addfe7e 100644
--- a/solenv/bin/modules/installer.pm
+++ b/solenv/bin/modules/installer.pm
@@ -1720,31 +1720,6 @@ sub run {
# Path of new installation set: $finalinstalldir
# Path of old installation set:
$installer::globals::updatedatabasepath
my $mspdir =
installer::windows::msp::create_msp_patch($finalinstalldir,
$includepatharrayref, $allvariableshashref, $languagestringref,
$languagesarrayref, $filesinproductlanguageresolvedarrayref);
-if ( defined($ENV{'WINDOWS_BUILD_SIGNING'})
($ENV{'WINDOWS_BUILD_SIGNING'} eq 'TRUE') )
-{
-my $systemcall = signtool.exe sign ;
-if ( defined($ENV{'PFXFILE'}) ) { $systemcall .= -f
$ENV{'PFXFILE'} ; }
-if ( defined($ENV{'PFXPASSWORD'}) ) { $systemcall .= -p
$ENV{'PFXPASSWORD'} ; }
-if ( defined($ENV{'TIMESTAMPURL'}) ) { $systemcall .= -t
$ENV{'TIMESTAMPURL'} ; } else { $systemcall .= -t
http://timestamp.globalsign.com/scripts/timestamp.dll ; }
-$systemcall .= $mspdir . /*.msp;
-installer::logger::print_message( ... $systemcall ...\n
);
-
-my $returnvalue = system($systemcall);
-
-my $infoline = Systemcall: $systemcall\n;
-push( @installer::globals::logfileinfo, $infoline);
-
-if ($returnvalue)
-{
-$infoline = ERROR: Could not execute
\$systemcall\!\n;
-push( @installer::globals::logfileinfo, $infoline);
-}
-else
-{
-$infoline = Success: Executed \$systemcall\
successfully!\n;
-push( @installer::globals::logfileinfo, $infoline);
-}
-}
($is_success, $finalinstalldir) =
installer::worker::analyze_and_save_logfile($loggingdir, $mspdir,
$installlogdir, $allsettingsarrayref, $languagestringref,
$current_install_number);
installer::worker::clean_output_tree(); # removing directories
created in the output tree
}
@@ -1772,11 +1747,14 @@ sub run {
if ( defined($ENV{'PFXFILE'}) ) { $systemcall .= -f
$ENV{'PFXFILE'} ; }
if ( defined($ENV{'PFXPASSWORD'}) ) { $systemcall .= -p
$ENV{'PFXPASSWORD'} ; }
if ( defined($ENV{'TIMESTAMPURL'}) ) { $systemcall .= -t
$ENV{'TIMESTAMPURL'} ; } else { $systemcall .= -t
http://timestamp.globalsign.com/scripts/timestamp.dll ; }
+$systemcall .= -d \ .
installer::download::get_downloadname_productname($allvariableshashref) . .
installer::download::get_download_version($allvariableshashref) . .
installer::download::get_downloadname_language($languagestringref) . .
installer::download::get_download_functionality($allvariableshashref) . \ ;
$systemcall .= $finalinstalldir .
$installer::globals::separator . $$downloadname . .msi;
-installer::logger::print_message( ... $systemcall ...\n
);
+installer::logger::print_message( ... code signing and
timestamping with signtool.exe ...\n );
my $returnvalue = system($systemcall);
+# do not print password to log
+if ( defined($ENV{'PFXPASSWORD'}) ) { $systemcall =~
s/$ENV{'PFXPASSWORD'}//; }
my $infoline = Systemcall: $systemcall\n;
push( @installer::globals::logfileinfo, $infoline);
diff --git a/solenv/bin/modules/installer/windows/msp.pm
b/solenv/bin/modules/installer/windows/msp.pm
index c956545..e321745 100644
--- a/solenv/bin/modules/installer/windows/msp.pm
+++ b/solenv/bin/modules/installer/windows/msp.pm
@@ -1214,6 +1214,36 @@ sub create_msp_patch
installer::logger::include_timestamp_into_logfile(\nPerformance Info:
Starting msimsp.exe);
my $msimsplogfile = execute_msimsp($fullpcpfilename, $mspfilename,
$localmspdir);
+# Sign .msp file
+if (