Files
local-transcription/build.sh
jknapp 9b7f2e1d69 Fix enum34 error by excluding it in PyInstaller spec
The previous approach of uninstalling enum34 before PyInstaller didn't
work because 'uv run' re-syncs dependencies. The proper solution is to
exclude enum34 directly in the PyInstaller spec file.

Changes:
- Added hooks/hook-enum34.py: Custom PyInstaller hook to exclude enum34
- Updated local-transcription.spec:
  - Added 'hooks' to hookspath
  - Added 'enum34' to excludes list
- Updated build.sh and build.bat:
  - Removed enum34 uninstall step (no longer needed)
  - Added comment explaining enum34 is excluded in spec

Why this works:
- PyInstaller's excludes list prevents enum34 from being bundled
- The custom hook provides documentation and explicit exclusion
- enum34 can remain installed in venv (won't break anything)
- Works regardless of 'uv run' re-syncing dependencies

enum34 is an obsolete Python 2.7/3.3 backport that's incompatible with
PyInstaller and unnecessary on Python 3.4+ (enum is in stdlib).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-28 19:32:23 -08:00

43 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Build script for Linux with CUDA support (falls back to CPU if no GPU)
echo "Building Local Transcription for Linux..."
echo "========================================="
echo ""
echo "This build includes CUDA support and works on both GPU and CPU systems."
echo ""
# Clean previous builds
echo "Cleaning previous builds..."
rm -rf build dist
# Sync dependencies (uses PyTorch CUDA from pyproject.toml)
echo "Installing dependencies with CUDA support..."
uv sync
# Build with PyInstaller
# Note: enum34 is excluded in local-transcription.spec
echo "Running PyInstaller..."
uv run pyinstaller local-transcription.spec
# Check if build succeeded
if [ -d "dist/LocalTranscription" ]; then
echo ""
echo "✓ Build successful!"
echo "Executable location: dist/LocalTranscription/LocalTranscription"
echo ""
echo "CUDA Support: YES (automatically falls back to CPU if no GPU detected)"
echo ""
echo "To run the application:"
echo " cd dist/LocalTranscription"
echo " ./LocalTranscription"
echo ""
echo "To create a distributable package:"
echo " cd dist"
echo " tar -czf LocalTranscription-Linux.tar.gz LocalTranscription/"
else
echo ""
echo "✗ Build failed!"
exit 1
fi