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
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
......
......@@ -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@
......
......@@ -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)
......
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