diff options
author | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2016-06-20 21:55:08 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2016-06-20 21:55:08 +0200 |
commit | 78c7929ac4f03d90e956cc1052208c646feaabf3 (patch) | |
tree | 617b7b89a02d082f347208a7a0cac834ed965798 | |
parent | 7e5b36af8c524671a30b91dd2323d812686aca2c (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
-rw-r--r-- | setup_native/scripts/osx_install_languagepack.applescript | 8 | ||||
-rw-r--r-- | setup_native/source/mac/Info.plist.langpack | 2 | ||||
-rw-r--r-- | solenv/bin/modules/installer/simplepackage.pm | 18 |
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') { |