Skip to content
Snippets Groups Projects
Unverified Commit e35caad6 authored by Kali Kaneko's avatar Kali Kaneko Committed by Kali Kaneko
Browse files

[pkg] add notarization steps for installer in osx

parent e8399d24
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,8 @@ TARGET ?= $(shell VENDOR_PATH=${VENDOR_PATH} branding/scripts/getparam binname | ...@@ -13,6 +13,8 @@ TARGET ?= $(shell VENDOR_PATH=${VENDOR_PATH} branding/scripts/getparam binname |
PROVIDER ?= $(shell grep ^'provider =' ${VENDOR_PATH}/vendor.conf | cut -d '=' -f 2 | tr -d "[:space:]") PROVIDER ?= $(shell grep ^'provider =' ${VENDOR_PATH}/vendor.conf | cut -d '=' -f 2 | tr -d "[:space:]")
VERSION ?= $(shell git describe) VERSION ?= $(shell git describe)
WINCERTPASS ?= pass WINCERTPASS ?= pass
OSXAPPPASS ?= pass
OSXMORDORUID ?= uid
# go paths # go paths
GOPATH = $(shell go env GOPATH) GOPATH = $(shell go env GOPATH)
...@@ -30,9 +32,8 @@ endif ...@@ -30,9 +32,8 @@ endif
QTBUILD = build/qt QTBUILD = build/qt
INSTALLER = build/installer INSTALLER = build/installer
INST_DATA = ${INSTALLER}/packages/bitmaskvpn/data/ INST_DATA = ${INSTALLER}/packages/bitmaskvpn/data/
OSX_CERT="Developer ID Installer: LEAP Encryption Access Project" OSX_CERT="Developer ID Application: LEAP Encryption Access Project"
MACDEPLOYQT_OPTS = -appstore-compliant -qmldir=gui/qml -always-overwrite MACDEPLOYQT_OPTS = -appstore-compliant -qmldir=gui/qml -always-overwrite -codesign="${OSX_CERT}"
# XXX expired cert -codesign="${OSX_CERT}"
SCRIPTS = branding/scripts SCRIPTS = branding/scripts
TEMPLATES = branding/templates TEMPLATES = branding/templates
...@@ -67,7 +68,7 @@ dependsLinux: ...@@ -67,7 +68,7 @@ dependsLinux:
@# debian needs also: snap install snapcraft --classic; snap install multipass --beta --classic @# debian needs also: snap install snapcraft --classic; snap install multipass --beta --classic
dependsDarwin: dependsDarwin:
@brew install python3 golang make pkg-config curl @brew install python3 golang make pkg-config curl create-dmg
@brew install --default-names gnu-sed @brew install --default-names gnu-sed
dependsCYGWIN_NT-10.0: dependsCYGWIN_NT-10.0:
...@@ -214,6 +215,33 @@ ifeq (${PLATFORM}, windows) ...@@ -214,6 +215,33 @@ ifeq (${PLATFORM}, windows)
# TODO add flag to skip signing for regular builds # TODO add flag to skip signing for regular builds
"c:\windows\system32\signtool.exe" sign -f "z:\leap\LEAP.pfx" -p ${WINCERTPASS} build/installer/${APPNAME}-installer-${VERSION}.exe "c:\windows\system32\signtool.exe" sign -f "z:\leap\LEAP.pfx" -p ${WINCERTPASS} build/installer/${APPNAME}-installer-${VERSION}.exe
endif endif
ifeq (${PLATFORM}, darwin)
gsed -i "s/com.yourcompany.installerbase/se.leap.bitmask.${TARGET}/g" build/installer/${APPNAME}-installer-${VERSION}.app/Contents/Info.plist
codesign -s ${OSX_CERT} --options "runtime" build/installer/${APPNAME}-installer-${VERSION}.app
ditto -ck --rsrc --sequesterRsrc build/installer/${APPNAME}-installer-${VERSION}.app build/installer/${APPNAME}-installer-${VERSION}.zip
endif
notarize_installer:
# courtesy of https://skyronic.com/2019/07/app-notarization-for-qt-applications/
ifeq (${PLATFORM}, darwin)
xcrun altool --notarize-app -t osx -f build/installer/${APPNAME}-installer-${VERSION}.zip --primary-bundle-id="se.leap.bitmask.${TARGET}" -u "info@leap.se" -p ${OSXAPPPASS}
endif
notarize_check:
ifeq (${PLATFORM}, darwin)
xcrun altool --notarization-info ${OSXMORDORUID} -u "info@leap.se" -p ${OSXAPPPASS}
endif
notarize_staple:
ifeq (${PLATFORM}, darwin)
xcrun stapler staple build/installer/${APPNAME}-installer-${VERSION}.app
endif
create_dmg:
ifeq (${PLATFORM}, darwin)
@create-dmg deploy/${APPNAME}-${VERSION}.dmg build/installer/${APPNAME}-installer-${VERSION}.app
endif
check_qtifw: check_qtifw:
ifdef HAS_QTIFW ifdef HAS_QTIFW
......
...@@ -5,6 +5,8 @@ windows:CONFIG -= console ...@@ -5,6 +5,8 @@ windows:CONFIG -= console
unix:DEBUG:CONFIG += debug unix:DEBUG:CONFIG += debug
lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5") lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5")
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11
QMAKE_TARGET_BUNDLE_PREFIX = se.leap
QMAKE_BUNDLE = $$TARGET
!defined(VENDOR_PATH, var):VENDOR_PATH="providers/riseup" !defined(VENDOR_PATH, var):VENDOR_PATH="providers/riseup"
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<Version>$VERSION</Version> <Version>$VERSION</Version>
<Title>$APPNAME Installer ($VERSION)</Title> <Title>$APPNAME Installer ($VERSION)</Title>
<Publisher>LEAP Encryption Access Project</Publisher> <Publisher>LEAP Encryption Access Project</Publisher>
<ProductUrl>https://leap.se</ProductUrl>
<AllowNonAsciiCharacters>false</AllowNonAsciiCharacters> <AllowNonAsciiCharacters>false</AllowNonAsciiCharacters>
<Logo>installer-logo.png</Logo> <Logo>installer-logo.png</Logo>
<InstallerApplicationIcon>installer-icon</InstallerApplicationIcon> <InstallerApplicationIcon>installer-icon</InstallerApplicationIcon>
......
!defined(INSTALLER, var):INSTALLER= "BitmaskVPN-Installer-git" !defined(INSTALLER, var):INSTALLER= "BitmaskVPN-Installer-git"
!defined(TARGET, var):TARGET= "bitmask-vpn"
TEMPLATE = aux TEMPLATE = aux
CONFIG -= debug_and_release CONFIG -= debug_and_release
...@@ -8,6 +9,8 @@ inst.output = $$INSTALLER ...@@ -8,6 +9,8 @@ inst.output = $$INSTALLER
inst.commands = binarycreator --ignore-translations -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT} inst.commands = binarycreator --ignore-translations -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT}
inst.CONFIG += target_predeps no_link combine inst.CONFIG += target_predeps no_link combine
QMAKE_TARGET_BUNDLE_PREFIX = se.leap
QMAKE_BUNDLE = $$TARGET
QMAKE_EXTRA_COMPILERS += inst QMAKE_EXTRA_COMPILERS += inst
OTHER_FILES += \ OTHER_FILES += \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment