From 7e04941bccb2683f8a6e3ee38a99c50129234dd1 Mon Sep 17 00:00:00 2001 From: Lena Date: Thu, 1 Jan 2026 00:00:00 +0000 Subject: rsend: push phone folders to a home SSH host over rsync A small Android app for one-way folder backup, a KISS alternative to Syncthing. It bundles rsync (built from pinned source via the NDK) and a pure-Go SSH transport, both shipped in the APK as lib*.so and run from the native library directory. rsend pins the host key, stores the ed25519 identity Keystore-encrypted, pushes each folder additively or as a mirror, and runs on demand or on a WiFi-only schedule. The build is self-contained and reproducible: make setup provisions the toolchain, make builds rsync, rsh, and the APK. --- ci/verify-repro.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 ci/verify-repro.sh (limited to 'ci/verify-repro.sh') diff --git a/ci/verify-repro.sh b/ci/verify-repro.sh new file mode 100755 index 0000000..d412713 --- /dev/null +++ b/ci/verify-repro.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Build the native libs twice and diff them, catching nondeterminism early. +# Requires the Android NDK and Go. +set -eu + +root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) +a=$(mktemp -d) +b=$(mktemp -d) +trap 'rm -rf "$a" "$b"' EXIT + +make -C "$root" native +cp -r "$root/app/src/main/jniLibs" "$a/jniLibs" + +rm -rf "$root/app/src/main/jniLibs" "$root/rsync/work" "$root/out" +make -C "$root" native +cp -r "$root/app/src/main/jniLibs" "$b/jniLibs" + +if diff -r "$a/jniLibs" "$b/jniLibs"; then + echo "verify-repro: native libs are bit-identical" +else + echo "verify-repro: NONDETERMINISM detected" >&2 + exit 1 +fi -- cgit v1.2.3