aboutsummaryrefslogtreecommitdiffstats
path: root/release/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'release/hooks')
-rw-r--r--release/hooks/hook-cryptography.py43
-rw-r--r--release/hooks/hook-mitmproxy.addons.onboardingapp.py2
-rw-r--r--release/hooks/hook-mitmproxy.tools.web.py3
3 files changed, 47 insertions, 1 deletions
diff --git a/release/hooks/hook-cryptography.py b/release/hooks/hook-cryptography.py
new file mode 100644
index 00000000..d53a438b
--- /dev/null
+++ b/release/hooks/hook-cryptography.py
@@ -0,0 +1,43 @@
+# Taken from the latest pyinstaller master on 2016-11-27 (0729a2b).
+
+#-----------------------------------------------------------------------------
+# Copyright (c) 2005-2016, PyInstaller Development Team.
+#
+# Distributed under the terms of the GNU General Public License with exception
+# for distributing bootloader.
+#
+# The full license is in the file COPYING.txt, distributed with this software.
+#-----------------------------------------------------------------------------
+
+
+"""
+Hook for cryptography module from the Python Cryptography Authority.
+"""
+
+import os.path
+import glob
+
+from PyInstaller.compat import EXTENSION_SUFFIXES
+from PyInstaller.utils.hooks import collect_submodules, get_module_file_attribute
+from PyInstaller.utils.hooks import copy_metadata
+
+# get the package data so we can load the backends
+datas = copy_metadata('cryptography')
+
+# Add the backends as hidden imports
+hiddenimports = collect_submodules('cryptography.hazmat.backends')
+
+# Add the OpenSSL FFI binding modules as hidden imports
+hiddenimports += collect_submodules('cryptography.hazmat.bindings.openssl') + ['_cffi_backend']
+
+
+# Include the cffi extensions as binaries in a subfolder named like the package.
+# The cffi verifier expects to find them inside the package directory for
+# the main module. We cannot use hiddenimports because that would add the modules
+# outside the package.
+binaries = []
+cryptography_dir = os.path.dirname(get_module_file_attribute('cryptography'))
+for ext in EXTENSION_SUFFIXES:
+ ffimods = glob.glob(os.path.join(cryptography_dir, '*_cffi_*%s*' % ext))
+ for f in ffimods:
+ binaries.append((f, 'cryptography')) \ No newline at end of file
diff --git a/release/hooks/hook-mitmproxy.addons.onboardingapp.py b/release/hooks/hook-mitmproxy.addons.onboardingapp.py
index 1587f40a..2b2fe06b 100644
--- a/release/hooks/hook-mitmproxy.addons.onboardingapp.py
+++ b/release/hooks/hook-mitmproxy.addons.onboardingapp.py
@@ -1,3 +1,3 @@
from PyInstaller.utils.hooks import collect_data_files
-datas = collect_data_files('mitmproxy.addons.onboardingapp') \ No newline at end of file
+datas = collect_data_files('mitmproxy.addons.onboardingapp')
diff --git a/release/hooks/hook-mitmproxy.tools.web.py b/release/hooks/hook-mitmproxy.tools.web.py
new file mode 100644
index 00000000..519c4c00
--- /dev/null
+++ b/release/hooks/hook-mitmproxy.tools.web.py
@@ -0,0 +1,3 @@
+from PyInstaller.utils.hooks import collect_data_files
+
+datas = collect_data_files('mitmproxy.tools.web')