Makefile.in       |    9 +++++++++
 config_host.mk.in |    1 +
 configure.ac      |   38 +++++++++++++++++++++++++++++++++++++-
 3 files changed, 47 insertions(+), 1 deletion(-)

New commits:
commit 8ff6bfb75de0fb073a7e38941fd8f10c855d3825
Author: Tor Lillqvist <t...@collabora.com>
Date:   Fri Jun 6 18:51:48 2014 +0300

    Add --enable-macosx-package-signing
    
    Change-Id: I355158f6cb584d252a21dfbce6e7cea6c70bba99

diff --git a/Makefile.in b/Makefile.in
index 7d2de76..8379be5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -299,6 +299,15 @@ endif
 endif
        @$(call gb_Top_InstallFinished,Test Installation,$(TESTINSTALLDIR))
 
+mac-app-store-package: test-install
+ifneq ($(MACOSX_PACKAGE_SIGNING_IDENTITY),)
+       mv "$(TESTINSTALLDIR)/$(PRODUCTNAME).app" "$(MACOSX_APP_NAME).app"
+       productbuild --component "$(MACOSX_APP_NAME).app" /Applications --sign 
$(MACOSX_PACKAGE_SIGNING_IDENTITY) $(shell echo "$(MACOSX_APP_NAME)" | tr ' ' 
'-').pkg
+else
+       @echo You did not provide an installer signing identity with 
--enable-macosx-package-signing
+       @exit 1
+endif
+
 distro-pack-install: install
        $(SRCDIR)/bin/distro-install-clean-up
        $(SRCDIR)/bin/distro-install-desktop-integration
diff --git a/config_host.mk.in b/config_host.mk.in
index 1bc0da0..b7e5b6c 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -362,6 +362,7 @@ export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@
 export MACOSX_APP_NAME=@MACOSX_APP_NAME@
 export MACOSX_CODESIGNING_IDENTITY=@MACOSX_CODESIGNING_IDENTITY@
 export MACOSX_DEPLOYMENT_TARGET=@MACOSX_DEPLOYMENT_TARGET@
+export MACOSX_PACKAGE_SIGNING_IDENTITY=@MACOSX_PACKAGE_SIGNING_IDENTITY@
 export MACOSX_SDK_PATH=@MACOSX_SDK_PATH@
 export MACOSX_SDK_VERSION=@MACOSX_SDK_VERSION@
 export MAC_OS_X_VERSION_MAX_ALLOWED=@MAC_OS_X_VERSION_MAX_ALLOWED@
diff --git a/configure.ac b/configure.ac
index 3ef3ce2..63e9667 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1280,12 +1280,19 @@ AC_ARG_ENABLE(macosx-retina,
 ,)
 
 AC_ARG_ENABLE(macosx-code-signing,
-    AS_HELP_STRING([--enable-macosx-code-signing<=identity>],
+    AS_HELP_STRING([--enable-macosx-code-signing=<identity>],
         [Sign executables, dylibs, frameworks and the app bundle. If you
          don't provide an identity the first suitable certificate
          in your keychain is used.]),
 ,)
 
+AC_ARG_ENABLE(macosx-package-signing,
+    AS_HELP_STRING([--enable-macosx-package-signing=<identity>],
+        [Create a .pkg suitable for uploading to the Mac App Store and sign
+         it. If you don't provide an identity the first suitable certificate
+         in your keychain is used.]),
+,)
+
 AC_ARG_ENABLE(macosx-sandbox,
     AS_HELP_STRING([--enable-macosx-sandbox],
         [Make the app bundle run in a sandbox. Requires code signing.
@@ -2984,6 +2991,34 @@ if test $_os = Darwin; then
         AC_MSG_RESULT([no])
     fi
 
+    AC_MSG_CHECKING([whether to create a Mac App Store package])
+
+    if test -n "$enable_macosx_package_signing" -a -z 
"$MACOSX_CODESIGNING_IDENTITY"; then
+        AC_MSG_ERROR([You forgot --enable-macosx-code-signing])
+    elif test "$enable_macosx_package_signing" = yes; then
+        # By default use the first suitable certificate.
+        # It should be a "3rd Party Mac Developer Installer" one
+
+        identity=`security find-identity -v 2>/dev/null | grep '3rd Party Mac 
Developer Installer:' | awk '{print $2}' |head -1`
+        if test -n "$identity"; then
+            MACOSX_PACKAGE_SIGNING_IDENTITY=$identity
+            pretty_name=`security find-identity -v | grep 
"$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
+            AC_MSG_RESULT([yes, using the identity 
$MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
+        else
+            AC_MSG_ERROR([Could not find any suitable '3rd Party Mac Developer 
Installer' certificate])
+        fi
+    elif test -n "$enable_macosx_package_signing"; then
+        MACOSX_PACKAGE_SIGNING_IDENTITY=$enable_macosx_package_signing
+        pretty_name=`security find-identity -v | grep 
"$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
+        AC_MSG_RESULT([yes, using the identity 
$MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
+    else
+        AC_MSG_RESULT([no])
+    fi
+
+    if test -n "$MACOSX_CODESIGNING_IDENTITY" -a -n 
"$MACOSX_PACKAGE_SIGNING_IDENTITY" -a "$MACOSX_CODESIGNING_IDENTITY" = 
"$MACOSX_PACKAGE_SIGNING_IDENTITY"; then
+        AC_MSG_ERROR([You should not use the same identity for code and 
package signing])
+    fi
+
     AC_MSG_CHECKING([whether to sandbox the application])
 
     if test -z "$MACOSX_CODESIGNING_IDENTITY" -a "$enable_macosx_sandbox" = 
yes; then
@@ -3022,6 +3057,7 @@ AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED)
 AC_SUBST(INSTALL_NAME_TOOL)
 AC_SUBST(LIBTOOL) # Note that the OS X libtool command is unrelated to GNU 
libtool
 AC_SUBST(MACOSX_CODESIGNING_IDENTITY)
+AC_SUBST(MACOSX_PACKAGE_SIGNING_IDENTITY)
 AC_SUBST(ENABLE_MACOSX_SANDBOX)
 AC_SUBST(MACOSX_BUNDLE_IDENTIFIER)
 AC_SUBST(MACOSX_APP_NAME)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to