Skip to content

ci: add static Android NDK build workflow#906

Merged
tridge merged 1 commit into
RsyncProject:masterfrom
tridge:pr-android-CI
May 22, 2026
Merged

ci: add static Android NDK build workflow#906
tridge merged 1 commit into
RsyncProject:masterfrom
tridge:pr-android-CI

Conversation

@tridge
Copy link
Copy Markdown
Member

@tridge tridge commented May 22, 2026

Cross-compiles statically-linked rsync binaries with the Android NDK for arm64-v8a (all modern phones) and armeabi-v7a (older 32-bit devices), and uploads them as workflow artifacts for adb push / Termux use.

The build is self-contained (optional external libraries disabled; keeps md5/md4 and the bundled zlib) and forces a few configure cache values that can't be probed when cross-compiling: lchmod()/lutimes() off (Bionic doesn't declare them until API 36 though the symbols link), and socketpair / mknod-FIFO / mknod-socket on (Android runs a Linux kernel, so these match the native result). IPv6 is enabled explicitly.

Since the binaries are cross-compiled the test suite can't run; the job instead asserts each binary is static and the correct architecture, and smoke-tests --version under qemu-user.

Cross-compiles statically-linked rsync binaries with the Android NDK for
arm64-v8a (all modern phones) and armeabi-v7a (older 32-bit devices), and
uploads them as workflow artifacts for adb push / Termux use.

The build is self-contained (optional external libraries disabled; keeps
md5/md4 and the bundled zlib) and forces a few configure cache values
that can't be probed when cross-compiling: lchmod()/lutimes() off (Bionic
doesn't declare them until API 36 though the symbols link), and
socketpair / mknod-FIFO / mknod-socket on (Android runs a Linux kernel,
so these match the native result). IPv6 is enabled explicitly.

Since the binaries are cross-compiled the test suite can't run; the job
instead asserts each binary is static and the correct architecture, and
smoke-tests `--version` under qemu-user.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tridge tridge merged commit 8839314 into RsyncProject:master May 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant