# ============================================================================= # WZ Phone — Linux x86_64 Tauri desktop build image # # Thin extension of wzp-android-builder that adds the GTK3 + WebKit2GTK 4.1 + # libsoup-3.0 + AppIndicator dev packages needed to build the Tauri desktop # app for Linux. Everything else (Rust, Node.js, cmake, pkg-config, cpal # libasound deps, tauri-cli) is inherited from the base image. # # Build: # docker build -t wzp-linux-desktop-builder -f Dockerfile.linux-desktop-builder . # # Run: driven by scripts/build-linux-desktop-docker.sh (see that file). # ============================================================================= FROM wzp-android-builder USER root # Tauri 2.x Linux dependencies. # - libwebkit2gtk-4.1-dev: the WebView backend. Tauri 2.x uses 4.1 (not 4.0). # - libsoup-3.0-dev: HTTP client used by webkit2gtk. Must match its major. # - libgtk-3-dev: GTK3 headers (webkit2gtk still uses GTK3). # - libayatana-appindicator3-dev: system tray / status icon. Optional at # runtime but tauri-build's feature-detection includes it. # - librsvg2-dev: SVG rendering in the menu/icon code. # - libglib2.0-dev: GObject introspection headers (transitive, but explicit). # - patchelf: used by the tauri bundler to rewrite rpaths in the final binary. # - file: already in the base, but tauri-build checks for it by name. RUN apt-get update && apt-get install -y --no-install-recommends \ libwebkit2gtk-4.1-dev \ libsoup-3.0-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libglib2.0-dev \ patchelf \ meson \ ninja-build \ python3 \ clang \ && rm -rf /var/lib/apt/lists/* # ── webrtc-audio-processing build requirements ────────────────────────────── # The `webrtc-audio-processing` Rust crate with the `bundled` feature vendors # the PulseAudio webrtc-audio-processing C++ library and builds it via meson # + ninja at `cargo build` time. That avoids Debian Bookworm's stale # libwebrtc-audio-processing-dev 0.3-1 package (which predates AEC3) and gives # us a self-contained static link — no runtime .so dependency, same algorithm # on every Linux distro regardless of what apt ships. # # apt deps for the bundled build: meson, ninja-build, python3, clang, # build-essential (already present via android-builder base). USER builder WORKDIR /build/source