Kaydet (Commit) 8ff6bfb7 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Add --enable-macosx-package-signing

Change-Id: I355158f6cb584d252a21dfbce6e7cea6c70bba99
üst a72ea67d
...@@ -299,6 +299,15 @@ endif ...@@ -299,6 +299,15 @@ endif
endif endif
@$(call gb_Top_InstallFinished,Test Installation,$(TESTINSTALLDIR)) @$(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 distro-pack-install: install
$(SRCDIR)/bin/distro-install-clean-up $(SRCDIR)/bin/distro-install-clean-up
$(SRCDIR)/bin/distro-install-desktop-integration $(SRCDIR)/bin/distro-install-desktop-integration
......
...@@ -362,6 +362,7 @@ export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@ ...@@ -362,6 +362,7 @@ export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@
export MACOSX_APP_NAME=@MACOSX_APP_NAME@ export MACOSX_APP_NAME=@MACOSX_APP_NAME@
export MACOSX_CODESIGNING_IDENTITY=@MACOSX_CODESIGNING_IDENTITY@ export MACOSX_CODESIGNING_IDENTITY=@MACOSX_CODESIGNING_IDENTITY@
export MACOSX_DEPLOYMENT_TARGET=@MACOSX_DEPLOYMENT_TARGET@ 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_PATH=@MACOSX_SDK_PATH@
export MACOSX_SDK_VERSION=@MACOSX_SDK_VERSION@ export MACOSX_SDK_VERSION=@MACOSX_SDK_VERSION@
export MAC_OS_X_VERSION_MAX_ALLOWED=@MAC_OS_X_VERSION_MAX_ALLOWED@ export MAC_OS_X_VERSION_MAX_ALLOWED=@MAC_OS_X_VERSION_MAX_ALLOWED@
......
...@@ -1280,12 +1280,19 @@ AC_ARG_ENABLE(macosx-retina, ...@@ -1280,12 +1280,19 @@ AC_ARG_ENABLE(macosx-retina,
,) ,)
AC_ARG_ENABLE(macosx-code-signing, 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 [Sign executables, dylibs, frameworks and the app bundle. If you
don't provide an identity the first suitable certificate don't provide an identity the first suitable certificate
in your keychain is used.]), 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, AC_ARG_ENABLE(macosx-sandbox,
AS_HELP_STRING([--enable-macosx-sandbox], AS_HELP_STRING([--enable-macosx-sandbox],
[Make the app bundle run in a sandbox. Requires code signing. [Make the app bundle run in a sandbox. Requires code signing.
...@@ -2984,6 +2991,34 @@ if test $_os = Darwin; then ...@@ -2984,6 +2991,34 @@ if test $_os = Darwin; then
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
fi 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]) AC_MSG_CHECKING([whether to sandbox the application])
if test -z "$MACOSX_CODESIGNING_IDENTITY" -a "$enable_macosx_sandbox" = yes; then if test -z "$MACOSX_CODESIGNING_IDENTITY" -a "$enable_macosx_sandbox" = yes; then
...@@ -3022,6 +3057,7 @@ AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED) ...@@ -3022,6 +3057,7 @@ AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED)
AC_SUBST(INSTALL_NAME_TOOL) AC_SUBST(INSTALL_NAME_TOOL)
AC_SUBST(LIBTOOL) # Note that the OS X libtool command is unrelated to GNU libtool AC_SUBST(LIBTOOL) # Note that the OS X libtool command is unrelated to GNU libtool
AC_SUBST(MACOSX_CODESIGNING_IDENTITY) AC_SUBST(MACOSX_CODESIGNING_IDENTITY)
AC_SUBST(MACOSX_PACKAGE_SIGNING_IDENTITY)
AC_SUBST(ENABLE_MACOSX_SANDBOX) AC_SUBST(ENABLE_MACOSX_SANDBOX)
AC_SUBST(MACOSX_BUNDLE_IDENTIFIER) AC_SUBST(MACOSX_BUNDLE_IDENTIFIER)
AC_SUBST(MACOSX_APP_NAME) AC_SUBST(MACOSX_APP_NAME)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment