From eb9de988d64d593202b02cbd7b884580cd28d931 Mon Sep 17 00:00:00 2001 From: Siavash Sameni Date: Fri, 10 Apr 2026 15:55:04 +0400 Subject: [PATCH] fix(linux-aec): use git dep for webrtc-audio-processing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The crates.io tarball of webrtc-audio-processing-sys 2.0.3 is missing the vendored C++ submodule — the bundled build fails with 'Directory does not contain a valid build tree' when meson tries to configure the ./webrtc-audio-processing subdirectory. Cargo clones git deps with submodules auto-initialized since ~1.27, so pulling from the upstream git repo (pinned to tag v2.0.3) gives us the full source tree. Co-Authored-By: Claude Opus 4.6 (1M context) --- crates/wzp-client/Cargo.toml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/crates/wzp-client/Cargo.toml b/crates/wzp-client/Cargo.toml index 3580321..3d90202 100644 --- a/crates/wzp-client/Cargo.toml +++ b/crates/wzp-client/Cargo.toml @@ -48,14 +48,19 @@ windows = { version = "0.58", optional = true, features = [ ] } # Linux-only: WebRTC AEC3 (Audio Processing Module) bindings for the -# `linux-aec` feature. The `bundled` sub-feature of webrtc-audio-processing -# statically compiles the vendored PulseAudio webrtc-audio-processing C++ -# sources via meson + ninja at cargo build time, avoiding Debian Bookworm's -# stale system libwebrtc-audio-processing-dev 0.3 package (which predates -# AEC3). Produces a self-contained static link — no runtime .so dep, same -# algorithm on every Linux distro. +# `linux-aec` feature. The `bundled` sub-feature statically compiles the +# vendored PulseAudio webrtc-audio-processing C++ sources via meson+ninja +# at cargo build time, avoiding Debian Bookworm's stale system +# libwebrtc-audio-processing-dev 0.3 package (which predates AEC3). +# +# We pull from git (not crates.io) because the crates.io tarball of +# webrtc-audio-processing-sys 2.0.3 does NOT include the vendored C++ +# submodule contents ("Directory does not contain a valid build tree"), +# and cargo clones git deps with submodules auto-initialized since ~1.27, +# so the git path gives us a complete source tree that bundled-mode can +# build. Pinned to tag v2.0.3 for reproducibility. [target.'cfg(target_os = "linux")'.dependencies] -webrtc-audio-processing = { version = "2", optional = true, features = ["bundled"] } +webrtc-audio-processing = { git = "https://github.com/tonarino/webrtc-audio-processing", tag = "v2.0.3", optional = true, features = ["bundled"] } [features] default = []