mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
* docs: design Linux frame-copy packaging * docs: plan Linux frame-copy packaging * feat(packaging): define Linux frame-copy profiles * fix(packaging): reject inherited profile names * feat(embedded-mpv): validate staged Linux runtime * fix(embedded-mpv): require Linux source packages * fix(embedded-mpv): harden Linux runtime staging * feat(embedded-mpv): build LGPL Linux runtime * fix(embedded-mpv): pin Linux runtime inputs * feat(embedded-mpv): build relocatable Linux helper * fix(embedded-mpv): require bundled Linux runtime * fix(embedded-mpv): make Linux runtime portable * feat(packaging): ship Linux frame-copy artifacts * fix(embedded-mpv): verify Linux helper linkage * fix(packaging): enforce Linux frame-copy isolation * fix(embedded-mpv): pin Linux display data * docs(embedded-mpv): document Linux frame-copy packaging * feat(embedded-mpv): probe Linux frame-copy runtime * test(embedded-mpv): smoke packaged Linux frame-copy * docs(embedded-mpv): clarify Linux system runtime baseline * fix(embedded-mpv): harden Linux runtime capability gate * ci: verify Linux frame-copy packages * test(embedded-mpv): harden packaged Linux smoke * test(embedded-mpv): preserve packaged GL mode * test(packaging): harden Linux package probes * fix(embedded-mpv): enable private Snap shared memory * fix(embedded-mpv): sanitize Linux helper environment * fix(packaging): enforce private Snap memory semantics * fix(packaging): reject ambiguous Snap memory metadata * fix(embedded-mpv): prioritize trusted Snap GL * fix(packaging): reject advanced Snap YAML semantics * fix(packaging): reject arbitrary Snap YAML aliases * feat(packaging): ship Linux runtime license notices * docs(embedded-mpv): document Linux runtime distribution * fix(packaging): parse Snap trailing comments safely * fix(release): gate Snap publish on public source release * fix(packaging): strip VCS metadata from source bundle * docs(packaging): clarify Linux source release gate * test(embedded-mpv): smoke missing bundled libmpv * style(embedded-mpv): format final validation inputs * fix(e2e): satisfy fixture index signature typing * fix(ci): declare fontconfig gperf generator * fix(embedded-mpv): hash runtime cache identities * fix(packaging): harden Linux frame-copy delivery * fix(packaging): tighten runtime delivery gates * fix(ci): decouple Linux runtime matrix * fix(packaging): harden Linux frame-copy delivery * fix(packaging): validate Linux frame-copy runtimes * fix(packaging): scope Snap Electron library checks * feat(packaging): ship Linux frame-copy runtimes * fix(packaging): improve Linux runtime smoke diagnostics * fix(packaging): expose bounded helper probe details * test(packaging): trace Snap EGL probe failures * fix(packaging): prefer core22 ABI in Snap helper * fix(packaging): bound helper probe capture * fix(packaging): harden Linux frame-copy releases * fix(packaging): canonicalize libplacebo submodule identity * fix(packaging): make source archive inspection portable * fix(packaging): harden Snap release verification
48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
# Embedded MPV Runtime Artifacts
|
|
|
|
This directory is the staging location for generated embedded MPV runtime/build
|
|
artifacts.
|
|
|
|
Generated architecture folders are expected at:
|
|
|
|
- `vendor/embedded-mpv/darwin-arm64/`
|
|
- `vendor/embedded-mpv/darwin-x64/`
|
|
- `vendor/embedded-mpv/win32-x64/`
|
|
- `vendor/embedded-mpv/linux-x64/`
|
|
|
|
Each generated folder must contain `include/mpv/client.h` and
|
|
`runtime-manifest.json`. Platform runtime/build inputs live under `lib/` or
|
|
`bin/`. In particular, `linux-x64/lib/` contains the pinned, dynamically linked
|
|
LGPL-compatible libmpv closure used to link the out-of-process frame-copy
|
|
helper. `linux-x64/notices/` contains the generated
|
|
`embedded-mpv-notices.json`, `THIRD_PARTY_NOTICES.txt`, and exact
|
|
`licenses/<package>/**` tree. The generated runtime directories are ignored by
|
|
git; generate, stage, or restore them before building the Electron backend.
|
|
|
|
Linux package profiles consume that one staged x64 source runtime differently:
|
|
|
|
- DEB/RPM/Pacman remove the private closure and declare the system libmpv
|
|
dependency.
|
|
- AppImage/Snap/Flatpak retain the manifest-declared closure under
|
|
`app.asar.unpacked/electron-backend/native/lib/` and flatten the validated
|
|
notice manifest, aggregate notice, and `licenses/**` tree beside it.
|
|
- The strict Snap resolves the helper's remaining graphics interfaces through
|
|
the external `mesa-core22` content provider at `$SNAP/graphics`; that shared
|
|
provider is not staged below `vendor/embedded-mpv/`, bundled into IPTVnator,
|
|
or included in IPTVnator's source/notices archive.
|
|
- DEB/RPM/Pacman and marker-only packages do not retain bundled-runtime
|
|
notices or license files.
|
|
- Non-x64 Linux packages retain no native artifacts and ship only the
|
|
unavailable marker.
|
|
- Electron Builder excludes the staged native tree from `app.asar`; only
|
|
`afterPack` writes the profile-specific unpacked payload, and package
|
|
verification rejects archived native entries.
|
|
|
|
The DEB dependency is specifically `libmpv2` (verified on Ubuntu 24.04+).
|
|
Ubuntu 22.04 provides `libmpv1`; use the x64 AppImage there.
|
|
|
|
Only `iptvnator_mpv_helper` may link libmpv. Electron,
|
|
`embedded_mpv.node`, and `embedded_mpv_frame_reader.node` must remain free of
|
|
direct libmpv dependencies. See `tools/embedded-mpv/README.md` and
|
|
`docs/architecture/embedded-mpv-native.md`.
|