From 9b7ee21e6cee4276463a9f86fabf3a493b316519 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sun, 25 Jan 2026 11:35:07 -0800 Subject: [PATCH] Add LLVM installation and exclude unnecessary modules from PyInstaller build - Install llvm-dev on Ubuntu for llvmlite compilation - Install LLVM via Homebrew on macOS and configure PATH - Exclude matplotlib, IPython, notebook, pytest, tensorboard from bundle to reduce size - Keep --onefile mode with module exclusions to avoid 4GB limit --- .github/workflows/release.yml | 9 ++++++++- backend/build_binary.py | 12 ++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 85bfddda..b212ac55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,14 @@ jobs: if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf llvm-dev + + - name: Install LLVM (macOS) + if: matrix.platform == 'macos-latest' || matrix.platform == 'macos-15-intel' + run: | + brew install llvm + echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH + echo "LLVM_CONFIG=$(brew --prefix llvm)/bin/llvm-config" >> $GITHUB_ENV - name: Setup Python uses: actions/setup-python@v5 diff --git a/backend/build_binary.py b/backend/build_binary.py index 1b665de6..6fa512eb 100644 --- a/backend/build_binary.py +++ b/backend/build_binary.py @@ -26,6 +26,18 @@ def build_server(): args.extend(['--paths', str(local_qwen_path)]) print(f"Using local qwen_tts source from: {local_qwen_path}") + # Exclude unnecessary modules to reduce size + args.extend([ + '--exclude-module', 'matplotlib', + '--exclude-module', 'IPython', + '--exclude-module', 'notebook', + '--exclude-module', 'pytest', + '--exclude-module', 'setuptools', + '--exclude-module', 'torch.distributions', + '--exclude-module', 'torch.testing', + '--exclude-module', 'tensorboard', + ]) + # Add hidden imports args.extend([ '--hidden-import', 'backend',