From 6648d03c81d2c7281c9553340835fa2880777a4c Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 11 Oct 2017 08:05:05 -0700 Subject: [feat] add gpg and pemfile in osx builds These two details were blocking mail service from working in osx. --- pkg/bundles/build.mk | 4 +++ pkg/pyinst/headless.spec | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ src/leap/bitmask/util.py | 3 +-- 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 pkg/pyinst/headless.spec diff --git a/pkg/bundles/build.mk b/pkg/bundles/build.mk index 54eb7374..8349a611 100644 --- a/pkg/bundles/build.mk +++ b/pkg/bundles/build.mk @@ -46,6 +46,7 @@ bundle_linux_helpers: cp src/leap/bitmask/vpn/helpers/linux/se.leap.bitmask.bundle.policy $(DIST_VERSION)/apps/helpers/ cp /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 $(DIST_VERSION)/lib/libGL.so.1 || echo "libGL version not found" + bundle_osx_helpers: mkdir -p $(DIST_VERSION)/apps/helpers cp src/leap/bitmask/vpn/helpers/osx/bitmask-helper $(DIST_VERSION)/apps/helpers/ @@ -59,6 +60,7 @@ bundle_osx_missing: install_name_tool -change /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib "@loader_path/libcrypto.1.0.0.dylib" $(DIST_VERSION)/lib/_scrypt.so cp $(DIST_VERSION)/lib/_scrypt.so $(OSX_CON)/ cp $(DIST_VERSION)/lib/bitmaskd.tac $(OSX_CON)/ + cp $(DIST_VERSION)/lib/cacert.pem $(OSX_CON)/ cp $(DIST_VERSION)/lib/version $(OSX_CON)/ cp -r $(DIST_VERSION)/lib/leap $(OSX_CON)/ mv dist/Bitmask.app/Contents/MacOS/bitmask $(OSX_CON)/bitmask-app @@ -70,6 +72,8 @@ bundle_osx_missing: cp -r $(DIST_VERSION)/apps/helpers/openvpn/* $(OSX_RES)/ wget https://downloads.leap.se/thirdparty/osx/openvpn/openvpn -O $(OSX_RES)/openvpn.leap chmod +x $(OSX_RES)/openvpn.leap + cp ~/src/gnupg-1.4.20/g10/gpg $(OSX_RES)/gpg + chmod +x $(OSX_RES)/gpg bundle_osx_pkg: pkg/osx/quickpkg --output dist/Bitmask-$(NEXT_VERSION)_pre.pkg --scripts pkg/osx/scripts/ dist/Bitmask.app/ diff --git a/pkg/pyinst/headless.spec b/pkg/pyinst/headless.spec new file mode 100644 index 00000000..d7a6f34c --- /dev/null +++ b/pkg/pyinst/headless.spec @@ -0,0 +1,65 @@ +# -*- mode: python -*- +import os +import sys +import platform + +block_cipher = None + +IS_MAC = sys.platform.startswith('darwin') +IS_WIN = platform.system() == 'Windows' + +BITMASK_VERSION = open('pkg/next-version').read() +if IS_MAC: + # launchd chokes because more digits are added to the version string, + # so let's skip the patch part of the version. + BITMASK_VERSION = '.'.join(BITMASK_VERSION.split('.')[:-1]) + +hiddenimports = [ + 'appdirs', + 'scrypt._scrypt', + 'scrypt', 'zope.interface', 'zope.proxy', + 'pysqlcipher', 'service_identity', + 'leap.common', 'leap.bitmask', + 'leap.bitmask.core.logs', + 'leap.soledad.common', + 'leap.soledad.common.document', + 'leap.soledad.common.l2db', + 'leap.soledad.client.events', + 'packaging', 'packaging.version', 'packaging.specifiers', + 'packaging.requirements'] + +excludes = ['PyQt5', 'IPython', 'PySide'] +VENV = os.environ.get('VIRTUAL_ENV', '') +ENTRYPOINT = ['../../src/leap/bitmask/core/launcher.py'] + +a = Analysis(ENTRYPOINT, + pathex=[ + '/usr/lib/python2.7/dist-packages/'], + binaries=None, + datas=None, + hiddenimports=hiddenimports, + hookspath=[], + runtime_hooks=[], + excludes=excludes, + + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) +exe = EXE(pyz, + a.scripts, + exclude_binaries=True, + name='bitmask-nox', + debug=True, + strip=False, + upx=True, + # TODO remove console for win + console=True) +coll = COLLECT(exe, + a.binaries, + a.zipfiles, + a.datas, + strip=False, + upx=True, + name='bitmask-nox') diff --git a/src/leap/bitmask/util.py b/src/leap/bitmask/util.py index 6971ca0a..2cbea6e6 100644 --- a/src/leap/bitmask/util.py +++ b/src/leap/bitmask/util.py @@ -85,8 +85,7 @@ def get_gpg_bin_path(): gpgbin = os.path.abspath( os.path.join(here(), "apps", "mail", "gpg.exe")) elif platform.system() == "Darwin": - gpgbin = os.path.abspath( - os.path.join(here(), "apps", "mail", "gpg")) + gpgbin = '/Applications/Bitmask.app/Contents/Resources/gpg' else: gpgbin = os.path.abspath( os.path.join(here(), "..", "apps", "mail", "gpg")) -- cgit v1.2.3