1460e776883f
chore: Pin Rust build provenance (PB-26-032, v2.14.96)
- time
- 2026-09-02 11:55 UTC · 1 month ago
- machine
- koh2
- parent
- 6f6df5c7d877
↓ peach-android-1460e776.tar.gzatlas at this save
files changed5 files
VERSION+1 −1build.gradle+2 −2scripts/build-noise-core.sh+20 −0scripts/build-rust-host.sh+31 −0scripts/rust-toolchain.sh+29 −0build.gradle+2 −2
@@ -12,6 +12,6 @@1212 onlyIf {1313 coreDir.exists()1414 }15- workingDir coreDir16- commandLine "cargo", "build", "--locked", "--release"15+ workingDir rootDir16+ commandLine "sh", file("scripts/build-rust-host.sh"), coreDir1717 }scripts/build-noise-core.sh+20 −0
@@ -6,6 +6,10 @@66 CORE_REPOSITORY=${PEACH_NOISE_CORE_DIR:-"$ANDROID_REPOSITORY/../peach-browser/crypto-core"}77 NDK_HOME=${ANDROID_NDK_HOME:-/opt/homebrew/share/android-commandlinetools/ndk/27.3.13750724}88 9+# shellcheck source=scripts/rust-toolchain.sh10+. "$SCRIPT_DIR/rust-toolchain.sh"11+require_pinned_rust_toolchain12+913 if [ ! -f "$CORE_REPOSITORY/Cargo.toml" ]; then1014 echo "Canonical Peach Noise core not found: $CORE_REPOSITORY" >&21115 exit 1@@ -32,3 +36,19 @@3236 3337 shasum -a 256 "$ANDROID_REPOSITORY"/app/src/main/jniLibs/*/libpeach_noise_core.so3438 39+PROVENANCE_DIRECTORY="$ANDROID_REPOSITORY/build/provenance"40+mkdir -p "$PROVENANCE_DIRECTORY"41+{42+ echo "rustc=$PINNED_RUSTC_VERSION"43+ echo "cargo=$PINNED_CARGO_VERSION"44+ echo "cargo_toml_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.toml")"45+ echo "cargo_lock_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.lock")"46+ echo "rust_sources_sha256=$(hash_rust_sources "$CORE_REPOSITORY/src")"47+ echo "ndk=$NDK_HOME"48+ echo "android_api=26"49+ echo "targets=arm64-v8a,armeabi-v7a,x86,x86_64"50+ for native_library in "$ANDROID_REPOSITORY"/app/src/main/jniLibs/*/libpeach_noise_core.so; do51+ target_name=$(basename "$(dirname "$native_library")")52+ echo "artifact_${target_name}_sha256=$(hash_file "$native_library")"53+ done54+} > "$PROVENANCE_DIRECTORY/noise-core-android.txt"scripts/build-rust-host.sh+31 −0
@@ -0,0 +1,31 @@1+#!/bin/sh2+set -eu3+4+SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)5+ANDROID_REPOSITORY=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)6+CORE_REPOSITORY=${1:-${PEACH_NOISE_CORE_DIR:-"$ANDROID_REPOSITORY/../peach-browser/crypto-core"}}7+8+# shellcheck source=scripts/rust-toolchain.sh9+. "$SCRIPT_DIR/rust-toolchain.sh"10+require_pinned_rust_toolchain11+12+if [ ! -f "$CORE_REPOSITORY/Cargo.toml" ] || [ ! -f "$CORE_REPOSITORY/Cargo.lock" ]; then13+ echo "Canonical Peach Noise core manifest/lock not found: $CORE_REPOSITORY" >&214+ exit 115+fi16+17+(cd "$CORE_REPOSITORY" && cargo build --locked --release)18+19+PROVENANCE_DIRECTORY="$ANDROID_REPOSITORY/build/provenance"20+mkdir -p "$PROVENANCE_DIRECTORY"21+HOST_LIBRARY="$CORE_REPOSITORY/target/release/libpeach_noise_core.dylib"22+{23+ echo "rustc=$PINNED_RUSTC_VERSION"24+ echo "cargo=$PINNED_CARGO_VERSION"25+ echo "cargo_toml_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.toml")"26+ echo "cargo_lock_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.lock")"27+ echo "rust_sources_sha256=$(hash_rust_sources "$CORE_REPOSITORY/src")"28+ echo "target=aarch64-apple-darwin"29+ echo "host_library_sha256=$(hash_file "$HOST_LIBRARY")"30+} > "$PROVENANCE_DIRECTORY/noise-core-host.txt"31+scripts/rust-toolchain.sh+29 −0
@@ -0,0 +1,29 @@1+#!/bin/sh2+3+PINNED_RUSTC_VERSION='rustc 1.96.1 (31fca3adb 2026-06-26)'4+PINNED_CARGO_VERSION='cargo 1.96.1 (356927216 2026-06-26)'5+6+require_pinned_rust_toolchain() {7+ actual_rustc=$(rustc --version 2>/dev/null || true)8+ actual_cargo=$(cargo --version 2>/dev/null || true)9+ if [ "$actual_rustc" != "$PINNED_RUSTC_VERSION" ]; then10+ echo "Rust compiler mismatch; required: $PINNED_RUSTC_VERSION" >&211+ exit 112+ fi13+ if [ "$actual_cargo" != "$PINNED_CARGO_VERSION" ]; then14+ echo "Cargo mismatch; required: $PINNED_CARGO_VERSION" >&215+ exit 116+ fi17+}18+19+hash_file() {20+ shasum -a 256 "$1" | awk '{print $1}'21+}22+23+hash_rust_sources() {24+ source_directory=$125+ find "$source_directory" -type f -print | LC_ALL=C sort |26+ while IFS= read -r source_file; do shasum -a 256 "$source_file"; done |27+ shasum -a 256 | awk '{print $1}'28+}29+