You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Full cross-platform Linux support with self-contained dependency bundling,
matching the existing macOS and Windows architecture.
Rust worker:
- New platform/linux.rs with XDG Base Directory paths
- LinuxX64/LinuxArm64 platform variants in dependency_locator
- LD_LIBRARY_PATH + vapoursynth.auto.conf environment setup
- Linux libdvdread search paths (Debian, Fedora, Arch)
Flutter app:
- Generated app/linux/ platform (GTK3)
- Linux branches in dependency_manager, tool_locator, disc_detector,
whisper_addon_manager for XDG paths and LD_LIBRARY_PATH
- Linux DVD detection (/media, /run/media, /mnt)
- xdg-open for "Show in Folder" on Linux
Build scripts:
- download-deps-linux.sh: builds Python, VapourSynth, FFmpeg, 20 plugins
- package-deps-linux.sh: zips deps with SHA256 for auto-download
- package-linux.sh: creates distributable .tar.gz
- run-debug-linux.sh: dev build + run convenience script
CI & release:
- build-linux.yml: GitHub Actions matrix (x64 + arm64)
- Updated release.sh, ci-build-and-release.sh, check-deps-changed.sh
Documentation:
- CLAUDE.md and README.md updated with Linux instructions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+51-8Lines changed: 51 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Both files should stay synchronized - README.md is for humans, CLAUDE.md is for
12
12
13
13
## Project Overview
14
14
15
-
VapourBox is a **cross-platform** (macOS + Windows) video processing application using VapourSynth. It provides a simple drag-and-drop interface for deinterlacing, denoising, sharpening, and other video processing tasks as an alternative to more complex tools like Hybrid.
15
+
VapourBox is a **cross-platform** (macOS + Windows + Linux) video processing application using VapourSynth. It provides a simple drag-and-drop interface for deinterlacing, denoising, sharpening, and other video processing tasks as an alternative to more complex tools like Hybrid.
./Scripts/run-debug-linux.sh # Full build (worker + app) and launch
208
+
./Scripts/run-debug-linux.sh --skip-worker # Rebuild app only
209
+
./Scripts/run-debug-linux.sh --skip-app # Rebuild worker only
210
+
./Scripts/run-debug-linux.sh --run-only # Just copy and launch
211
+
```
212
+
192
213
### Production Packaging
193
214
194
215
**IMPORTANT**: Never manually assemble a release build. Always use packaging scripts — the app will silently crash on video drop if the bundle is incomplete.
2.**Check deps** — run `check-deps-changed.sh`; if changed, bump version in `deps-version.json`
488
529
3.**Build & package** — use packaging scripts (or `release.sh` for full automation)
489
-
4.**Update `app/assets/deps-version.json`** — after packaging each platform's deps zip, update its `sha256` and `size` fields with the values printed by the packaging script. **Both platforms must have valid (non-null) sha256 and size before release.** The app uses these values to verify downloaded deps at runtime.
530
+
4.**Update `app/assets/deps-version.json`** — after packaging each platform's deps zip, update its `sha256` and `size` fields with the values printed by the packaging script. **All platforms must have valid (non-null) sha256 and size before release.** The app uses these values to verify downloaded deps at runtime.
490
531
5.**Test** — fresh install + upgrade test
491
532
6.**Create GitHub releases** — deps release first (if changed, tag `deps-vX.Y.Z`), then app release (tag `vX.Y.Z`)
492
533
493
534
### Cross-Platform Notes
494
535
495
536
- Flutter Windows can't build on macOS — use GitHub Actions
537
+
- Flutter Linux can't build on macOS — use GitHub Actions or a Linux VM
496
538
- Windows deps can be zipped on macOS if `deps/windows-x64/` exists
497
-
- CI builds are ad-hoc signed; sign locally for distribution
539
+
- Linux deps must be built on Linux (`./Scripts/download-deps-linux.sh`)
540
+
- CI builds are ad-hoc signed; sign locally for distribution (macOS only)
4. On first launch, VapourBox will automatically download its processing dependencies (~100 MB)
59
+
60
+
> **GPU acceleration**: For GPU-accelerated deinterlacing (NNEDI3CL), install your GPU's OpenCL driver. Without it, VapourBox falls back to CPU-based processing automatically.
61
+
51
62
## Features
52
63
53
64
-**Drag-and-drop interface** — drop video files, folders, or VIDEO_TS directories to start
@@ -117,6 +128,17 @@ brew install libdvdcss
117
128
118
129
Download `libdvdcss-2.dll` from [VideoLAN](https://www.videolan.org/developers/libdvdcss.html) and place it in the VapourBox application directory (next to `vapourbox.exe`).
119
130
131
+
**Linux:**
132
+
133
+
```bash
134
+
# Debian/Ubuntu
135
+
sudo apt install libdvdcss2
136
+
# Fedora (RPM Fusion required)
137
+
sudo dnf install libdvdcss
138
+
# Arch
139
+
sudo pacman -S libdvdcss
140
+
```
141
+
120
142
Unencrypted DVDs (home recordings, some independent releases) work without libdvdcss.
0 commit comments