Loading
New app: USBridge Client (io.usbridge.client)
App
USBridge Client (io.usbridge.client) — hybrid remote-access client: BIOS-level KVM control via USBridge-KVM hardware, plus a lightweight software remote desktop over the Moonlight streaming protocol (interoperable with Sunshine and NVIDIA GameStream-compatible hosts).
- Source: https://github.com/USBridge-Technologies/USBridge-Remote
- License: GPL-3.0-only (root-level
LICENSEfile added) - This recipe targets the dedicated "market" Gradle flavor, which has the app's self-update path (
internal/update) compiled out entirely via a Go build tag (noselfupdate) and does not requestREQUEST_INSTALL_PACKAGES.
Build recipe status
The init/build/gradle steps in this recipe have been validated end-to-end against F-Droid's own real buildserver (this MR's own CI: fdroid rewritemeta / fdroid lint / fdroid build / check apk all green).
Along the way this also caught and fixed a couple of real project-level bugs (not F-Droid-specific), now also fixed upstream in the app's own build script:
gomobile bind -target android(no ABI suffix) silently builds all four Android ABIs; scoped to-target android/arm64since the app only ships arm64-v8a.- An untargeted NDK clang defaults to API 21, which gates out
libaaudio/libvulkanregardless of-Lsearch paths; the recipe targets API 26 explicitly (matchesminSdk). unzip(no-o) hangs on an interactive overwrite prompt (no TTY) when a laterBuilds:entry's steps re-extract into a path an earlier entry's steps already populated in the same job/VM -- hit this while an earlier (since-removed, never-released) 2.1.13 entry was still present; fixed with-oregardless, since it's cheap insurance for whenever a second entry gets added back for a future release.
Required
- The app complies with the inclusion criteria
- The original app author has been notified (and does not oppose the inclusion) — I am the developer/maintainer
- All related fdroiddata and RFP issues have been referenced in this merge request — no RFP was filed beforehand, went straight to this MR
- Builds with
fdroid buildand all pipelines pass - There is an issue tracker and contact info of the author so that we can report bugs and contact the author (GitHub Issues: https://github.com/USBridge-Technologies/USBridge-Remote/issues)
Strongly Recommended
- The upstream app source code repo contains the app metadata (summary/description/changelog) in a Fastlane folder structure — added at
client/android/fastlane/metadata/android/en-US/(no screenshots yet) - Releases are tagged and auto update is enabled — deliberately
AutoUpdateMode: None/UpdateCheckMode: None: this app'sversionCodeis derived fromclient/VERSION, not the git tag itself (tags bundle all platforms under one release, e.g.v2.1.16), and this recipe's build steps are custom enough (Go/NDK/gomobile/moonlight-common-c from source) that unattended rebuilds aren't realistic anyway — seedocs/fdroid/README.mdin the source tree for the full reasoning and the manual-update-per-release process this project follows instead.
Suggested
- External repos are added as git submodules instead of srclibs (
client/moonlight-common-c, seesubmodules: true) - Enable Reproducible Builds — tried and reverted: the buildserver rebuild did not byte-match the officially released APK (classes.dex/baseline-profiles/every Go+cgo-built .so differed). This app cross-compiles Go+cgo+NDK native code, which needs real reproducibility engineering (pinned toolchain, SOURCE_DATE_EPOCH, deterministic linker flags) not done yet -- documented in MaintainerNotes as a known gap, not blocking.
- Multiple apks for native code — single
arm64-v8aABI only, not applicable
Edited by Amir Fatkulin