diff options
author | Tor Lillqvist <tml@iki.fi> | 2013-02-01 14:48:15 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2013-02-01 14:51:20 +0200 |
commit | ebdd616580bb0d367b78ba0fe3fa56157b90c3ab (patch) | |
tree | 9db561fa9feb967920ee87eb0194f337a6e6e479 | |
parent | b46e964064502b019ce57afe34f6a7a82974381a (diff) |
Add option to set bundle identifier and use it when signing
Sign also all the dylibs and frameworks in the bundle.
Change-Id: I7f67b9d7eda0204b24e2ea2ef44a53fb8db0f8aa
-rw-r--r-- | Makefile.in | 35 | ||||
-rw-r--r-- | config_host.mk.in | 1 | ||||
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | instsetoo_native/util/openoffice.lst.in | 6 | ||||
-rw-r--r-- | setup_native/source/mac/Info.plist.langpack | 2 | ||||
-rwxr-xr-x | solenv/bin/modules/installer/simplepackage.pm | 3 | ||||
-rwxr-xr-x | sysui/desktop/macosx/Info.plist | 2 |
7 files changed, 53 insertions, 9 deletions
diff --git a/Makefile.in b/Makefile.in index 92b680f4f128..f9e38dd7aca3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -334,11 +334,36 @@ ifeq ($(OS_FOR_BUILD),WNT) else ifeq ($(DISABLE_LINKOO),TRUE) @ooinstall $(DEVINSTALLDIR)/opt -ifeq ($(OS),MACOSX) - identity=`security find-identity -p codesigning -v | grep 'Mac Developer:' | awk '{print $$2}'`; \ - if test -n "$$identity"; then \ - codesign --verbose --sign $$identity $(DEVINSTALLDIR)/opt/LibreOffice.app; \ - fi +ifneq ($(MACOSX_CODESIGNING_IDENTITY),) +# +# Sign dylibs + find $(DEVINSTALLDIR)/opt/LibreOffice.app \( -name '*.dylib' -or -name '*.dylib.*' \) ! -type l | \ + while read dylib; do \ + id=`basename "$$dylib"`; \ + case $$id in \ + *.dylib) \ + ;; \ + *) \ + id=`echo $$id | sed -e 's/dylib.*/dylib/'`; \ + ;; \ + esac; \ + codesign --verbose --identifier=$(MACOSX_BUNDLE_IDENTIFIER).$$id --sign $(MACOSX_CODESIGNING_IDENTITY) "$$dylib"; \ + done +# +# Sign frameworks. +# +# Yeah, we don't bundle any other framework than our Python one, and +# it has just one version, so this generic search is mostly for +# completeness. + for framework in `find $(DEVINSTALLDIR)/opt/LibreOffice.app -name '*.framework' -type d`; do \ + for version in $$framework/Versions/*; do \ + test -d $$version && codesign --force --verbose --prefix=$(MACOSX_BUNDLE_IDENTIFIER). --sign $(MACOSX_CODESIGNING_IDENTITY) $$version; \ + done; \ + done +# +# Sign the app bundle as a whole (will sign the soffice binary) + codesign --verbose --sign $(MACOSX_CODESIGNING_IDENTITY) $(DEVINSTALLDIR)/opt/LibreOffice.app +# endif @install-gdb-printers -L else diff --git a/config_host.mk.in b/config_host.mk.in index 4da38e7307c5..22f923d95001 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -320,6 +320,7 @@ export LIBXSLT_LIBS=$(gb_SPACE)@LIBXSLT_LIBS@ export LINK_X64_BINARY=@LINK_X64_BINARY@ @x_Cygwin@ export LS=@WIN_LS@ export MANDIR=@MANDIR@ +export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@ export MACOSX_CODESIGNING_IDENTITY=@MACOSX_CODESIGNING_IDENTITY@ export MACOSX_DEPLOYMENT_TARGET=@MACOSX_DEPLOYMENT_TARGET@ export MACOSX_DEPLOYMENT_TARGET_FOR_BUILD=@MACOSX_DEPLOYMENT_TARGET_FOR_BUILD@ diff --git a/configure.ac b/configure.ac index 7f9fa4ddbca7..2c27d51e7324 100644 --- a/configure.ac +++ b/configure.ac @@ -1125,6 +1125,12 @@ AC_ARG_ENABLE(macosx-sandbox, don't use unless you are working on this.]), ,) +AC_ARG_WITH(macosx-bundle-identifier, + AS_HELP_STRING([--with-macosx-bundle-identifier=tld.mumble.orifice.TheOffice], + [Define the OS X bundle identifier. Default is the somewhat weird + org.libreoffice.script ("script", huh?).]), +,with_macosx_bundle_identifier=org.libreoffice.script) + AC_ARG_ENABLE(postgresql-sdbc, AS_HELP_STRING([--disable-postgresql-sdbc], [Disable the build of the PostgreSQL-SDBC driver.]) @@ -2743,6 +2749,12 @@ if test "$_os" = "Darwin"; then else AC_MSG_RESULT([no]) fi + + AC_MSG_CHECKING([what OS X app bundle identifier to use]) + + MACOSX_BUNDLE_IDENTIFIER=$with_macosx_bundle_identifier + + AC_MSG_RESULT([$MACOSX_BUNDLE_IDENTIFIER]) fi AC_SUBST(FRAMEWORKSHOME) AC_SUBST(MACOSX_SDK_PATH) @@ -2753,6 +2765,7 @@ AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED) AC_SUBST(XCRUN) AC_SUBST(MACOSX_CODESIGNING_IDENTITY) AC_SUBST(ENABLE_MACOSX_SANDBOX) +AC_SUBST(MACOSX_BUNDLE_IDENTIFIER) dnl =================================================================== dnl Windows specific tests and stuff diff --git a/instsetoo_native/util/openoffice.lst.in b/instsetoo_native/util/openoffice.lst.in index a6f54ca58039..5b1b8619a7a1 100644 --- a/instsetoo_native/util/openoffice.lst.in +++ b/instsetoo_native/util/openoffice.lst.in @@ -47,6 +47,7 @@ LibreOffice PRODUCTVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ POSTVERSIONEXTENSION + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@ BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ USERDIRPRODUCTVERSION @LIBO_VERSION_MAJOR@ ABOUTBOXPRODUCTVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ @@ -97,6 +98,7 @@ LibreOffice_Dev PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ UNIXBASISROOTNAME lodev@LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ POSTVERSIONEXTENSION + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@ BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ USERDIRPRODUCTVERSION @LIBO_VERSION_MAJOR@ ABOUTBOXPRODUCTVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ @@ -153,6 +155,7 @@ LibreOffice_SDK PRODUCTVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ POSTVERSIONEXTENSION SDK + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@.SDK BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ PACKAGEREVISION {buildid} @@ -192,6 +195,7 @@ LibreOffice_Dev_SDK PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ UNIXBASISROOTNAME lodev@LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ POSTVERSIONEXTENSION SDK + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@.SDK BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ PACKAGEREVISION {buildid} @@ -235,6 +239,7 @@ LibreOffice_Test PRODUCTVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ POSTVERSIONEXTENSION TEST + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@.Test BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ PACKAGEREVISION {buildid} @@ -274,6 +279,7 @@ LibreOffice_Dev_Test PRODUCTEXTENSION .@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ UNIXBASISROOTNAME lodev@LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ POSTVERSIONEXTENSION TEST + BUNDLEIDENTIFIER @MACOSX_BUNDLE_IDENTIFIER@.Test BRANDPACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@ PACKAGEVERSION @LIBO_VERSION_MAJOR@.@LIBO_VERSION_MINOR@.@LIBO_VERSION_MICRO@.@LIBO_VERSION_PATCH@@LIBO_VERSION_SUFFIX@ PACKAGEREVISION {buildid} diff --git a/setup_native/source/mac/Info.plist.langpack b/setup_native/source/mac/Info.plist.langpack index a54e29bfe9d6..372e645e7cce 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>org.libreoffice.script</string> + <string>${BUNDLEIDENTIFIER}</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 55e65bdc94b8..09babb0db006 100755 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -223,8 +223,7 @@ sub replace_variables_in_scriptfile replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTNAME'}, "PRODUCTNAME" ); replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" ); - my $scriptname = lc($allvariables->{'PRODUCTNAME'}) . "\.script"; - if ( $allvariables->{'PRODUCTNAME'} eq "LibreOffice" ) { $scriptname = "org.libreoffice.script"; } + my $scriptname = $allvariables->{'BUNDLEIDENTIFIER'}; replace_one_variable_in_shellscript($scriptfile, $scriptname, "SEARCHSCRIPTNAME" ); } diff --git a/sysui/desktop/macosx/Info.plist b/sysui/desktop/macosx/Info.plist index 45b054335631..5a682dc39d36 100755 --- a/sysui/desktop/macosx/Info.plist +++ b/sysui/desktop/macosx/Info.plist @@ -1407,7 +1407,7 @@ <key>CFBundleShortVersionString</key> <string>${ABOUTBOXPRODUCTVERSION}</string> <key>CFBundleIdentifier</key> - <string>org.libreoffice.script</string> + <string>${BUNDLEIDENTIFIER}</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> |