The other half of the audio-substrate decision (spikes S2+S3 green, minted
endpoints landed in the previous commit): stop bundling a third-party
kernel driver the host no longer needs.
installer the VB-CABLE task, payload, silent-install run and the
donationware notice are gone; a suppressible notice tells
a Steam-less box that audio needs Steam INSTALLED (never
running) and that installing it later just works. A cable
from an older install is still deliberately not removed.
packer + CI -VbCableDir/VBCABLE_DIR, the staged-payload check and the
runner provisioning download are gone; SBOM drops the
redistributed-driver component.
winget the VB-Audio bundling-grant agreement becomes the honest
Steam requirement (surfaced on the unattended path where
no wizard is on screen).
docs windows-host/uninstall/security/echo say what actually
ships: no kernel-mode driver of our own, endpoints minted
from Valve's vendor-signed drivers, VB-CABLE mentioned
only as the historical fallback that keeps working.
host wording the mic-open guidance and module headers lead with Steam;
the NAME ladder itself is untouched — demoting 'cable
input' was considered and rejected (on a box where minting
transiently fails, the SSM would outrank an installed
cable, steal the silent sink, and make audio host-audible).
32 lines
1.4 KiB
Bash
Executable File
32 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Generate the per-release CycloneDX SBOM (CRA Annex I Part II §1 — machine-readable component
|
|
# inventory, attached to every stable release by .gitea/workflows/sbom.yml).
|
|
#
|
|
# syft walks the checkout and catalogs every lockfile-pinned dependency (both Rust workspaces via
|
|
# their Cargo.locks, the Bun/pnpm/npm trees, the Swift Package.resolved);
|
|
# compliance/sbom/manual-components.cdx.json contributes the components no lockfile records —
|
|
# vendored C/C++ trees (pyrowave/Granite/volk/Vulkan-Headers, libvpl), dynamically-linked/bundled
|
|
# libraries (FFmpeg, SDL3), and the patched gamescope. Keep that file current when vendoring
|
|
# changes (scripts/vendor-pyrowave.sh etc.).
|
|
#
|
|
# Usage: scripts/ci/gen-sbom.sh VERSION [OUTPUT]
|
|
# Requires: syft (pinned install in the workflow), python3 (a proven runner dependency).
|
|
set -eu
|
|
VERSION="${1:?usage: gen-sbom.sh VERSION [OUTPUT]}"
|
|
OUT="${2:-punktfunk-${VERSION}.cdx.json}"
|
|
TMP="${OUT}.syft.tmp"
|
|
|
|
syft scan "dir:." --source-name punktfunk --source-version "$VERSION" \
|
|
-o "cyclonedx-json=$TMP" -q
|
|
|
|
OUT="$OUT" TMP="$TMP" python3 - <<'PY'
|
|
import json, os
|
|
gen = json.load(open(os.environ["TMP"]))
|
|
manual = json.load(open("compliance/sbom/manual-components.cdx.json"))
|
|
gen.setdefault("components", []).extend(manual["components"])
|
|
with open(os.environ["OUT"], "w") as f:
|
|
json.dump(gen, f, indent=2)
|
|
print("SBOM: %d components -> %s" % (len(gen["components"]), os.environ["OUT"]))
|
|
PY
|
|
rm -f "$TMP"
|