# This file is Copyright 2019 Volatility Foundation and licensed under the Volatility Software License 1.0 # which is available at https://www.volatilityfoundation.org/license/vsl_v1.0 # import os import sys from PyInstaller.building.api import PYZ, EXE from PyInstaller.building.build_main import Analysis from PyInstaller.utils.hooks import collect_submodules, collect_data_files block_cipher = None # NOTE: Issues with default pyinstaller build: # jsonschema: # - https://github.com/pyinstaller/pyinstaller/issues/4100 # - https://github.com/pyinstaller/pyinstaller/pull/4168 # Volatility must be findable in sys.path in order for collect_submodules to work # This adds the current working directory, which should usually do the trick sys.path.append(os.getcwd()) a = Analysis(['vol.py'], pathex = [], binaries = [], datas = collect_data_files('volatility.framework') + \ collect_data_files('volatility.framework.plugins', include_py_files = True) + \ collect_data_files('volatility.schemas') + \ collect_data_files('volatility.plugins', include_py_files = True), hiddenimports = collect_submodules('volatility.framework.automagic') + \ collect_submodules('volatility.framework.plugins') + \ collect_submodules('volatility.framework.symbols'), hookspath = [], runtime_hooks = [], excludes = [], win_no_prefer_redirects = False, win_private_assemblies = False, cipher = block_cipher, noarchive = False) pyz = PYZ(a.pure, a.zipped_data, cipher = block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name = 'vol', debug = False, bootloader_ignore_signals = False, strip = False, upx = True, runtime_tmpdir = None, console = True)