cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

feat: package in-process GStreamer host (#21)

FelineStateMachine committed 54a4b7d
commit
54a4b7d2868822bf3fd00aac68a2f99a8c8b98da
parent
1c3e7a958228c1346d904fce41707f636bb561ef
author
FelineStateMachine <dami.etoile@gmail.com>
10 files changed, +42 -23
M.github/workflows/sigil-release.yml9+++++++++
MREADME.md10+++++-----
Mdocs/fresh-bazzite-host.md12++++++------
Mscripts/install-bazzite-package.sh2+-
Mscripts/package-bazzite-release.sh12++++++------
Mscripts/tests/bazzite-package-install-e2e.sh2+-
Mscripts/tests/package-bazzite-product-contract.sh1+
Mscripts/tests/sigil-release-verifier.sh7+++++--
Mscripts/verify-demo-build.sh8+++++++-
Mscripts/verify-sigil-release.sh2+-
M .github/workflows/sigil-release.yml +9 -0
M README.md +5 -5
M docs/fresh-bazzite-host.md +6 -6
M scripts/install-bazzite-package.sh +1 -1
M scripts/package-bazzite-release.sh +6 -6
@@ -23,9 +23,8 @@ an isolated Cargo target directory. The package includes atomic install,
2323 upgrade/rollback support, the systemd user unit, PipeWire sink, staged udev2424 rule, complete checksums, and build provenance. It never includes the source2525 tree, host identity, hardware configuration, environment files, or evidence.26-Product mode intentionally uses Sigil's default feature set; the opt-in27-in-process-gstreamer backend is excluded until its native/cross-build gate is28-approved.26+Product mode builds Sigil with the default feature set plus the approved27+in-process-gstreamer backend. The manifest records that exact feature contract.2928 3029 Options:3130 --output PATH New .tar.gz bundle path (required; must not exist)
@@ -195,8 +194,9 @@ else
195194 git -C "$repo_dir" archive --format=tar "$git_commit" | tar -xf - -C "$build_source"196195 (197196 cd "$build_source"198- CARGO_TARGET_DIR="$build_target" cargo zigbuild --locked -p sigil-host --bins \199- --target "$linux_target" --release197+ PKG_CONFIG_ALLOW_CROSS=1 CARGO_TARGET_DIR="$build_target" \198+ cargo zigbuild --locked -p sigil-host --bins \199+ --target "$linux_target" --release --features in-process-gstreamer200200 )201201 host_binary="$build_target/$linux_output_target/release/sigil"202202 probe_binary="$build_target/$linux_output_target/release/sigil-probe"
@@ -269,7 +269,7 @@ manifest = {
269269 "version": version,270270 "target": target,271271 "profile": "release",272- "features": ["default"],272+ "features": ["default", "in-process-gstreamer"],273273 "demo_direct_node": False,274274 "git_commit": commit,275275 "git_dirty": dirty == "true",
M scripts/tests/bazzite-package-install-e2e.sh +1 -1
M scripts/tests/package-bazzite-product-contract.sh +1 -0
M scripts/tests/sigil-release-verifier.sh +5 -2
@@ -49,7 +49,7 @@ manifest = {
4949 "version": tag[1:],5050 "target": "x86_64-unknown-linux-gnu.2.17",5151 "profile": "release",52- "features": ["default"],52+ "features": ["default", "in-process-gstreamer"],5353 "demo_direct_node": False,5454 "git_commit": commit,5555 "git_dirty": False,
@@ -62,6 +62,8 @@ manifest = {
6262 "asset_name": asset,6363 "release_kind": "product-candidate",6464 }65+if variant == "default-features":66+ manifest["features"] = ["default"]6567 binary = b"fixture executable\n"6668 release = {6769 "sigil": binary,
@@ -168,7 +170,7 @@ printf '%064d %s\n' 0 "$(basename -- "$bad_archive")" >"$bad_archive.sha256"
168170 assert_rejected bad-checksum 'checksum declaration does not exactly match' \169171 "$verifier" --tag "$release_tag" --archive "$bad_archive" --candidate170172 171-for variant in symlink duplicate unexpected; do173+for variant in symlink duplicate unexpected default-features; do172174 fixture_dir="$temp_root/$variant"173175 make_fixture "$fixture_dir" "$variant"174176 fixture_archive="$fixture_dir/sigil-$release_tag-bazzite-x86_64.tar.gz"
@@ -176,6 +178,7 @@ for variant in symlink duplicate unexpected; do
176178 symlink) expected='unsafe type' ;;177179 duplicate) expected='duplicate members' ;;178180 unexpected) expected='do not match the package allowlist' ;;181+ default-features) expected='field features does not match the product contract' ;;179182 esac180183 assert_rejected "$variant" "$expected" \181184 "$verifier" --tag "$release_tag" --archive "$fixture_archive" --candidate
M scripts/verify-demo-build.sh +7 -1
M scripts/verify-sigil-release.sh +1 -1