summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2016-06-20 21:55:08 +0200
committerNorbert Thiebaud <nthiebaud@gmail.com>2016-06-21 03:43:12 +0000
commit3491a1a7d17bc12a30af900fa83df44ddbd75108 (patch)
tree5734ba3f824beea987f133bd9e1cbc33ed664520
parent97b0b8c1f7310c3ca85229a9455decf35e08811f (diff)
tdf#89657 sign Mac languagepack installer and force-start-close LO
starting LO once satisfies Gatekeeper's verification, even when the langaugepack's content are added afterwards Change-Id: Ie548df39a7ec07cc485c40148e4ca75101346798 (cherry picked from commit 78c7929ac4f03d90e956cc1052208c646feaabf3) Reviewed-on: https://gerrit.libreoffice.org/26528 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
-rw-r--r--setup_native/scripts/osx_install_languagepack.applescript8
-rw-r--r--setup_native/source/mac/Info.plist.langpack2
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm18
3 files changed, 22 insertions, 6 deletions
diff --git a/setup_native/scripts/osx_install_languagepack.applescript b/setup_native/scripts/osx_install_languagepack.applescript
index cbd7743b242f..49c8e546a8b4 100644
--- a/setup_native/scripts/osx_install_languagepack.applescript
+++ b/setup_native/scripts/osx_install_languagepack.applescript
@@ -143,6 +143,14 @@ end if
-- touch extensions folder to have LO register bundled dictionaries
set tarCommand to "/usr/bin/tar -C " & quoted form of (choice as string) & " -xjf " & quoted form of sourcedir & "/tarball.tar.bz2 && touch " & quoted form of (choice as string) & "/Contents/Resources/extensions"
try
+ (* A start of unchanged LO must take place so Gatekeeper will verify
+ the signature prior to installing the languagepack
+ *)
+ if application choice is not running then
+ -- this will flash the startcenter once...
+ tell application choice to activate
+ tell application choice to quit
+ end if
do shell script tarCommand
on error errMSG number errNUM
diff --git a/setup_native/source/mac/Info.plist.langpack b/setup_native/source/mac/Info.plist.langpack
index 372e645e7cce..361a4b418406 100644
--- a/setup_native/source/mac/Info.plist.langpack
+++ b/setup_native/source/mac/Info.plist.langpack
@@ -35,7 +35,7 @@
<key>CFBundleShortVersionString</key>
<string>9</string>
<key>CFBundleIdentifier</key>
- <string>${BUNDLEIDENTIFIER}</string>
+ <string>[BUNDLEIDENTIFIER].langpack</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index ac337988af6e..95ccfe75255f 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -379,19 +379,27 @@ sub create_package
$destfile = $subdir . "/" . $iconfile;
installer::systemactions::copy_one_file($iconfileref, $destfile);
- my $installname = "Info.plist";
my $infoplistfile = $ENV{'SRCDIR'} . "/setup_native/source/mac/Info.plist.langpack";
if (! -f $infoplistfile) { installer::exiter::exit_program("ERROR: Could not find Apple script Info.plist: $infoplistfile!", "create_package"); }
- $destfile = $contentsfolder . "/" . $installname;
- installer::systemactions::copy_one_file($infoplistfile, $destfile);
-
+ $destfile = "$contentsfolder/Info.plist";
# Replacing variables in Info.plist
- $scriptfilecontent = installer::files::read_file($destfile);
+ $scriptfilecontent = installer::files::read_file($infoplistfile);
# replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" );
replace_one_variable_in_shellscript($scriptfilecontent, $volume_name_classic_app, "FULLAPPPRODUCTNAME" ); # OpenOffice.org Language Pack
+ replace_one_variable_in_shellscript($scriptfilecontent, $ENV{'MACOSX_BUNDLE_IDENTIFIER'}, "BUNDLEIDENTIFIER" );
installer::files::save_file($destfile, $scriptfilecontent);
chdir $localfrom;
+
+ if ( defined($ENV{'MACOSX_CODESIGNING_IDENTITY'}) && $ENV{'MACOSX_CODESIGNING_IDENTITY'} ne "" ) {
+ my @lp_sign = ('codesign', '--verbose', '--sign', $ENV{'MACOSX_CODESIGNING_IDENTITY'}, '--deep', $appfolder);
+ if (system(@lp_sign) == 0) {
+ $infoline = "Success: \"@lp_sign\" executed successfully!\n";
+ } else {
+ $infoline = "ERROR: Could not codesign the languagepack using \"@lp_sign\"!\n";
+ }
+ push( @installer::globals::logfileinfo, $infoline);
+ }
}
elsif ($volume_name_classic_app eq 'LibreOffice' || $volume_name_classic_app eq 'LibreOfficeDev')
{