Files
codex/third_party/voice/BUILD.bazel
T
Benjamin Carlsson 379d50be35 Add pinned native voice source preparation (#41884)
## What changed

- Pin the GStreamer, codec, native library, and build-tool archives needed by
  the native voice runtime, including their SHA-256 digests.
- Add lazy Bazel repositories and a manual `//third_party/voice:sources` target
  for fetching and unpacking the pinned archives.
- Add an offline Python adapter that verifies archive identity and extraction
  bounds, refuses existing output directories, cleans up failed preparations,
  and records a completion receipt.
- Document that this stage prepares source inputs only; it does not compile or
  link the libraries or enable voice.

## Testing

- Add unit coverage for digest failures, unsafe links, expansion limits,
  cleanup after extraction failures, existing-output preservation, and systems
  where archive links cannot be created.

GitOrigin-RevId: 42a71d7b6b91d49b3954a40932033c44f9861f04
2026-08-31 17:25:50 +00:00

30 lines
832 B
Python

# All native build consumers must receive the same pinned source manifest.
filegroup(
name = "source_inputs",
srcs = [
"prepare_sources.py",
"sources.json",
],
visibility = ["//visibility:public"],
)
# Fetch and unpack only when this source target is requested by a build.
filegroup(
name = "sources",
srcs = [
"@voice_glib//:sources",
"@voice_gst_plugins_base//:sources",
"@voice_gst_plugins_good//:sources",
"@voice_gstreamer//:sources",
"@voice_libffi//:sources",
"@voice_meson//:sources",
"@voice_ninja//:sources",
"@voice_opus//:sources",
"@voice_pcre2//:sources",
"@voice_proxy_libintl//:sources",
"@voice_zlib//:sources",
],
tags = ["manual"],
visibility = ["//visibility:public"],
)