[Guix packaging] cdgriffith/FastFlix #100

Open
opened 2026-08-14 13:17:22 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:17:22 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/cdgriffith/FastFlix
  • Source pinned commit/release when known: d881887456250b2c523b8ea39f8edd3eee023d81 on master (default branch snapshot reviewed 2026-08-14).
  • Target concrete installed deliverable: FastFlix video encoding GUI (fastflix)
  • Primary category: multimedia
  • Tags: audio
  • Primary language normalized: Python
  • Build system: pyproject/setuptools (pyproject.toml; setuptools_scm and PySide6)
  • SPDX expression: MIT
  • License status: confirmed-free
  • License evidence: LICENSE contains MIT and the pyproject.toml project metadata declares the Python GUI.
  • Difficulty: moderate — Package the large Python/PySide6 dependency closure and require an explicit FFmpeg executable input; hardware encoder downloads must remain optional.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Package the pinned upstream source as the stated deliverable, retaining upstream notices and making runtime services, credentials, downloaded assets, and optional integrations explicit. Package the large Python/PySide6 dependency closure and require an explicit FFmpeg executable input; hardware encoder downloads must remain optional.

Acceptance checks

  • guix lint -L. fastflix passes with no new errors.
  • guix build -L. fastflix succeeds from the pinned source with tests enabled where practical.
  • App-specific offline smoke: Build/lint offline and start fastflix --help or the GUI under Xvfb with a local FFmpeg stub and no network.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:17:22Z.

## Candidate - Upstream canonical URL: https://github.com/cdgriffith/FastFlix - Source pinned commit/release when known: `d881887456250b2c523b8ea39f8edd3eee023d81` on `master` (default branch snapshot reviewed 2026-08-14). - Target concrete installed deliverable: FastFlix video encoding GUI (`fastflix`) - Primary category: multimedia - Tags: audio - Primary language normalized: Python - Build system: pyproject/setuptools (`pyproject.toml`; `setuptools_scm` and PySide6) - SPDX expression: MIT - License status: confirmed-free - License evidence: `LICENSE` contains MIT and the `pyproject.toml` project metadata declares the Python GUI. - Difficulty: moderate — Package the large Python/PySide6 dependency closure and require an explicit FFmpeg executable input; hardware encoder downloads must remain optional. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Package the pinned upstream source as the stated deliverable, retaining upstream notices and making runtime services, credentials, downloaded assets, and optional integrations explicit. Package the large Python/PySide6 dependency closure and require an explicit FFmpeg executable input; hardware encoder downloads must remain optional. ## Acceptance checks - `guix lint -L. fastflix` passes with no new errors. - `guix build -L. fastflix` succeeds from the pinned source with tests enabled where practical. - App-specific offline smoke: Build/lint offline and start `fastflix --help` or the GUI under Xvfb with a local FFmpeg stub and no network. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/100). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:17:22Z.
htayj commented 2026-08-28 11:03:13 +00:00 (Migrated from github.com)

Goocastle recorded disposition: blocked.

Blocked by a concrete redistribution-license gap in required bundled GUI assets. Canonical upstream is https://github.com/cdgriffith/FastFlix at fixed commit d881887456250b2c523b8ea39f8edd3eee023d81, tag 6.2.1, committed 2026-03-21. The local channel already has the source-only snapshot cdgriffith-fastflix-source in tay/packages/starred-a-c.scm, pinned to that commit with Guix hash 1sqha86wlr2dhj74yp8dcra8i0kmpgajhkqw9smdflbnnyz8z63n; guix show/search found no installed fastflix equivalent. The root LICENSE is MIT but says the code itself is licensed; docs/build-licenses.txt likewise documents code/dependencies, not the bundled artwork. pyproject.toml package-data installs all *.ico, *.svg, *.png, and *.qss under fastflix, and resources.py plus the encoder modules load those files at runtime, so the assets are part of the requested GUI deliverable. README.md at this exact revision attributes custom icons to Joey Catt | Onyx Studios, three encoder logos to Wikimedia Commons, and additional button icons to https://uxwing.com, but provides no per-file license, grant, or fixed source revision for the Onyx assets or the UXWing files. The exact UXWing license page, https://uxwing.com/license/, permits use in projects but expressly prohibits reselling, redistributing, and sublicensing; that is incompatible with Guix redistribution. The Onyx attribution is not a redistribution grant. The Wikimedia VP9 and AV1 pages linked by upstream identify public-domain status, but the repository still does not map every copied asset to a fixed upstream revision or license, and the VVC link is only to a Wikipedia file page. Parent MIT coverage cannot cure these separately attributed asset gaps. The condition that unblocks implementation is an upstream/rightsholder grant covering each exact bundled non-code asset, or upstream/package replacement of every uncleared asset with clearly free assets; record each replacement/origin at an immutable revision, preserve the notices, and re-research before implementation. Other source evidence is clear: FastFlix d881887.../LICENSE is MIT with no .gitmodules entries; planned PyPI sdists have fixed license files and hashes (babelfish 0.6.1 BSD-3-Clause decb67a4660888d48480ab6998309837174158d0f1aa63bebb1c2e11aab97aab; cleanit 0.4.8 Apache-2.0 1b19fe2dd2712695ebbf9d429c4d3366a1b51300738bb034c13ea221c84a6ae9; iso639-lang 2.6.3 MIT 078ddb7cd0182dcc04367691acc8022ddf7158b6cb09f08f798af823fa864265; pgsrip 0.1.1 MIT 078c841b4db76e2db021608d18e3a7a73b1acee9bd19fd2d26b7aa322a3b3495; reusables 1.0.0 MIT 02e24e66e8970fe3f5a6ebaef691eced4e2388ae291f3747b1d63e561dba2b0b; trakit 0.2.5 MIT d7e530ed82906eeadf7982d6a357883ae0490f34bbd18f8232b8fc5f250a4ae7), and official Qt for Python v6.10.1 is fixed at peeled commit 42be1cc7d9973b7da44c048981001b823b329704 with sources/pyside6/COPYING and sources/shiboken6/COPYING. No independently fetched Git submodule exists. Technical implementation remains actionable after legal clearance: use pyproject/setuptools build with setuptools_scm and a Python 3.13-compatible closure; upstream requires Python >=3.13 and PySide6 ==6.10.1, while this channel has python-next 3.13.13 but only python-pyside-6 6.9.2 built for Python 3.12, so PySide6/Qt and extension dependencies must be rebuilt or updated as a matching source stack. Use source-built Guix opencv (4.13.0, Modified BSD, includes Python bindings) rather than the wheel-only opencv-python 4.13.0.92; add the absent pure-Python closure components and reconcile the declared python-box >=7.4 and psutil <6 constraints explicitly. Define the installed command fastflix and wrap it so FF_FFMPEG and FF_FFPROBE point to an explicit ffmpeg input (current channel ffmpeg is 8.1.2); do not add FFmpeg downloads to the build or wrapper. Runtime network/download behavior must remain explicit: the source checks GitHub releases for version notifications unless disable_version_check is true, and its Windows-only GPU, FFmpeg, HDR10+, and 7-Zip downloads must remain opt-in/absent; tesseract, mkvmerge, hdr10plus_parser, rigaya encoders, and gifski are optional integrations, with no credentials. After clearance, the isolated proof should run guix lint -L. --no-network with the cve/refresh/archival exclusions and guix build -L. from the fixed source, then launch the installed fastflix GUI under Xvfb with a temporary FF_CONFIG containing explicit stub paths, terms_accepted=true, enable_history=false, disable_version_check=true, auto_gpu_check=false, auto_hdr10plus_check=false, and opencl_support=false. The local ffmpeg/ffprobe stubs must answer -version and -encoders, record invocations, and the smoke must verify startup reaches the UI with no network access and no download/cache writes; run the upstream unit tests where practical and reserve real encode proof for a supplied local FFmpeg, without claiming any proof before those gates pass.


Imported from GitHub comment. Originally posted by htayj on 2026-08-28T11:03:13Z.

<!-- goocastle-disposition:sequential-reviewer:100:1:blocked --> Goocastle recorded disposition: blocked. Blocked by a concrete redistribution-license gap in required bundled GUI assets. Canonical upstream is https://github.com/cdgriffith/FastFlix at fixed commit d881887456250b2c523b8ea39f8edd3eee023d81, tag 6.2.1, committed 2026-03-21. The local channel already has the source-only snapshot cdgriffith-fastflix-source in tay/packages/starred-a-c.scm, pinned to that commit with Guix hash 1sqha86wlr2dhj74yp8dcra8i0kmpgajhkqw9smdflbnnyz8z63n; guix show/search found no installed fastflix equivalent. The root LICENSE is MIT but says the code itself is licensed; docs/build-licenses.txt likewise documents code/dependencies, not the bundled artwork. pyproject.toml package-data installs all *.ico, *.svg, *.png, and *.qss under fastflix, and resources.py plus the encoder modules load those files at runtime, so the assets are part of the requested GUI deliverable. README.md at this exact revision attributes custom icons to Joey Catt | Onyx Studios, three encoder logos to Wikimedia Commons, and additional button icons to https://uxwing.com, but provides no per-file license, grant, or fixed source revision for the Onyx assets or the UXWing files. The exact UXWing license page, https://uxwing.com/license/, permits use in projects but expressly prohibits reselling, redistributing, and sublicensing; that is incompatible with Guix redistribution. The Onyx attribution is not a redistribution grant. The Wikimedia VP9 and AV1 pages linked by upstream identify public-domain status, but the repository still does not map every copied asset to a fixed upstream revision or license, and the VVC link is only to a Wikipedia file page. Parent MIT coverage cannot cure these separately attributed asset gaps. The condition that unblocks implementation is an upstream/rightsholder grant covering each exact bundled non-code asset, or upstream/package replacement of every uncleared asset with clearly free assets; record each replacement/origin at an immutable revision, preserve the notices, and re-research before implementation. Other source evidence is clear: FastFlix d881887.../LICENSE is MIT with no .gitmodules entries; planned PyPI sdists have fixed license files and hashes (babelfish 0.6.1 BSD-3-Clause decb67a4660888d48480ab6998309837174158d0f1aa63bebb1c2e11aab97aab; cleanit 0.4.8 Apache-2.0 1b19fe2dd2712695ebbf9d429c4d3366a1b51300738bb034c13ea221c84a6ae9; iso639-lang 2.6.3 MIT 078ddb7cd0182dcc04367691acc8022ddf7158b6cb09f08f798af823fa864265; pgsrip 0.1.1 MIT 078c841b4db76e2db021608d18e3a7a73b1acee9bd19fd2d26b7aa322a3b3495; reusables 1.0.0 MIT 02e24e66e8970fe3f5a6ebaef691eced4e2388ae291f3747b1d63e561dba2b0b; trakit 0.2.5 MIT d7e530ed82906eeadf7982d6a357883ae0490f34bbd18f8232b8fc5f250a4ae7), and official Qt for Python v6.10.1 is fixed at peeled commit 42be1cc7d9973b7da44c048981001b823b329704 with sources/pyside6/COPYING and sources/shiboken6/COPYING. No independently fetched Git submodule exists. Technical implementation remains actionable after legal clearance: use pyproject/setuptools build with setuptools_scm and a Python 3.13-compatible closure; upstream requires Python >=3.13 and PySide6 ==6.10.1, while this channel has python-next 3.13.13 but only python-pyside-6 6.9.2 built for Python 3.12, so PySide6/Qt and extension dependencies must be rebuilt or updated as a matching source stack. Use source-built Guix opencv (4.13.0, Modified BSD, includes Python bindings) rather than the wheel-only opencv-python 4.13.0.92; add the absent pure-Python closure components and reconcile the declared python-box >=7.4 and psutil <6 constraints explicitly. Define the installed command fastflix and wrap it so FF_FFMPEG and FF_FFPROBE point to an explicit ffmpeg input (current channel ffmpeg is 8.1.2); do not add FFmpeg downloads to the build or wrapper. Runtime network/download behavior must remain explicit: the source checks GitHub releases for version notifications unless disable_version_check is true, and its Windows-only GPU, FFmpeg, HDR10+, and 7-Zip downloads must remain opt-in/absent; tesseract, mkvmerge, hdr10plus_parser, rigaya encoders, and gifski are optional integrations, with no credentials. After clearance, the isolated proof should run guix lint -L. --no-network with the cve/refresh/archival exclusions and guix build -L. from the fixed source, then launch the installed fastflix GUI under Xvfb with a temporary FF_CONFIG containing explicit stub paths, terms_accepted=true, enable_history=false, disable_version_check=true, auto_gpu_check=false, auto_hdr10plus_check=false, and opencl_support=false. The local ffmpeg/ffprobe stubs must answer -version and -encoders, record invocations, and the smoke must verify startup reaches the UI with no network access and no download/cache writes; run the upstream unit tests where practical and reserve real encode proof for a supplied local FFmpeg, without claiming any proof before those gates pass. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/100#issuecomment-5451715930). Originally posted by [htayj](https://github.com/htayj) on 2026-08-28T11:03:13Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#100
No description provided.