summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-02-01 14:48:15 +0200
committerTor Lillqvist <tml@iki.fi>2013-02-01 14:51:20 +0200
commitebdd616580bb0d367b78ba0fe3fa56157b90c3ab (patch)
tree9db561fa9feb967920ee87eb0194f337a6e6e479
parentb46e964064502b019ce57afe34f6a7a82974381a (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.in35
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac13
-rw-r--r--instsetoo_native/util/openoffice.lst.in6
-rw-r--r--setup_native/source/mac/Info.plist.langpack2
-rwxr-xr-xsolenv/bin/modules/installer/simplepackage.pm3
-rwxr-xr-xsysui/desktop/macosx/Info.plist2
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>