diff --git a/mitmproxy/utils/pyinstaller/__init__.py b/mitmproxy/utils/pyinstaller/__init__.py new file mode 100644 index 000000000..4f536452e --- /dev/null +++ b/mitmproxy/utils/pyinstaller/__init__.py @@ -0,0 +1,7 @@ +from pathlib import Path + +here = Path(__file__).parent.absolute() + + +def hook_dirs() -> list[str]: + return [here] diff --git a/release/hooks/hook-mitmproxy.addons.onboardingapp.py b/mitmproxy/utils/pyinstaller/hook-mitmproxy.addons.onboardingapp.py similarity index 100% rename from release/hooks/hook-mitmproxy.addons.onboardingapp.py rename to mitmproxy/utils/pyinstaller/hook-mitmproxy.addons.onboardingapp.py diff --git a/release/hooks/hook-mitmproxy.py b/mitmproxy/utils/pyinstaller/hook-mitmproxy.py similarity index 100% rename from release/hooks/hook-mitmproxy.py rename to mitmproxy/utils/pyinstaller/hook-mitmproxy.py diff --git a/release/hooks/hook-mitmproxy.tools.web.py b/mitmproxy/utils/pyinstaller/hook-mitmproxy.tools.web.py similarity index 100% rename from release/hooks/hook-mitmproxy.tools.web.py rename to mitmproxy/utils/pyinstaller/hook-mitmproxy.tools.web.py diff --git a/release/cibuild.py b/release/cibuild.py index d8a2079bd..a295cff2f 100755 --- a/release/cibuild.py +++ b/release/cibuild.py @@ -357,7 +357,6 @@ def build_pyinstaller(be: BuildEnviron) -> None: # pragma: no cover click.echo("Building pyinstaller package...") PYINSTALLER_SPEC = be.release_dir / "specs" - PYINSTALLER_HOOKS = be.release_dir / "hooks" PYINSTALLER_TEMP = be.build_dir / "pyinstaller" PYINSTALLER_DIST = be.build_dir / "binaries" / be.platform_tag @@ -407,8 +406,6 @@ def build_pyinstaller(be: BuildEnviron) -> None: # pragma: no cover PYINSTALLER_TEMP, "--distpath", PYINSTALLER_DIST, - "--additional-hooks-dir", - PYINSTALLER_HOOKS, "--onefile", "--console", "--icon", diff --git a/release/specs/windows-dir.spec b/release/specs/windows-dir.spec index 83e2fc8ef..da6041f89 100644 --- a/release/specs/windows-dir.spec +++ b/release/specs/windows-dir.spec @@ -3,8 +3,6 @@ from pathlib import Path from PyInstaller.building.api import PYZ, EXE, COLLECT from PyInstaller.building.build_main import Analysis -assert SPECPATH == "." - here = Path(r".") tools = ["mitmproxy", "mitmdump", "mitmweb"] @@ -12,7 +10,6 @@ analysis = Analysis( tools, excludes=["tcl", "tk", "tkinter"], pathex=[str(here)], - hookspath=[str(here / ".." / "hooks")], ) pyz = PYZ(analysis.pure, analysis.zipped_data) diff --git a/setup.py b/setup.py index 48d1cef42..cf33149c9 100644 --- a/setup.py +++ b/setup.py @@ -63,6 +63,9 @@ setup( "mitmproxy = mitmproxy.tools.main:mitmproxy", "mitmdump = mitmproxy.tools.main:mitmdump", "mitmweb = mitmproxy.tools.main:mitmweb", + ], + "pyinstaller40": [ + "hook-dirs = mitmproxy.utils.pyinstaller:hook_dirs", ] }, python_requires=">=3.9", diff --git a/test/filename_matching.py b/test/filename_matching.py index 78ca54fba..3e9878f02 100755 --- a/test/filename_matching.py +++ b/test/filename_matching.py @@ -16,6 +16,7 @@ def check_src_files_have_test(): "mitmproxy/test/", "mitmproxy/tools/", "mitmproxy/platform/", + "mitmproxy/utils/pyinstaller/", ] src_files = glob.glob("mitmproxy/**/*.py", recursive=True) src_files = [f for f in src_files if os.path.basename(f) != "__init__.py"]