OpenWrt: a soft-float ARMv7 build for routers without an FPU, the installed
version on the LuCI page, and a STOPPED status that says why. Plus a CI fix that
stops a flaky emulator step from failing green Android runs. No change to the
proxy itself.
Soft-float ARMv7 for arm_cortex-a9 (#127)
install.sh refused arm_cortex-a9 routers with unsupported OpenWrt architecture. That is bcm53xx: Netgear R7000/R6400/R8000, ASUS
RT-AC56U/RT-AC68U and the like, whose Broadcom Cortex-A9 has no FPU at all. The
only ARMv7 binary so far was musleabihf, which needs one and dies with
SIGILL there.
- New release asset
tg-ws-proxy-armv7-unknown-linux-musleabi.tar.gz, plus its
-upxtwin, built for the soft-float ABI. install.shpicks it forarm_cortex-a9andarm_cortex-a7, the two ARMv7
architectures OpenWrt builds without FPU support. Every other ARMv7 name keeps
themusleabihfbuild.- Release CI runs the new binary, plain and UPX-packed, under QEMU on a
Cortex-A9 with VFP and NEON switched off. Until now every leg ran on QEMU's
default CPU, which has every extension there is.
LuCI
- Version (#122): the status block shows what
/usr/bin/tg-ws-proxy-rs --versionreports. If the binary is missing — for instance because the
archive'stg-ws-proxywas never saved under the-rsname — or does not run
on this router, it says that instead. - Why the service is stopped (#126): the proxy exits at once when its port
is taken, and procd only knows that it stopped, so the page showed a bare
STOPPED that the Start button could not fix. It now says when the configured
port is held by another program, and names the upstreamtg-ws-proxy
package's service if that is running: it listens on 1443 by default too. - The rpcd ACL gains the two read-only commands behind this,
/usr/bin/tg-ws-proxy-rs --versionand/bin/netstat -lnt.
docs/OpenWrtPackage.md gains a Troubleshooting section. It also covers the
breaks: world[…><Q1…] error from #126, which comes from another package's
checksum pin in /etc/apk/world, not from this one, and blocks every apk add
until that pin is gone.
CI: a flaky adb pull no longer fails a green emulator run
android-emulator failed twice on tags whose instrumentation suite had already
finished clean:
TestRunner: run finished: 4 tests, 0 failed, 0 ignored
It died afterwards, in the step that pulls the installed APK back off the device
to see which packaging AGP chose: adb pull broke off partway with the emulator
already winding down. That step is diagnostic. What proves the packaged library
sound is the suite itself and Check the packaged JNI symbols in the android
job, neither of which depends on it.
- The pull retries three times; if the device still does not answer, the run is
annotated with a notice and continues. - The identity check skips cleanly when there is no file to check, rather than
moving the same failure one step down. - A wrong answer still fails: a pull that succeeds and names an APK this build
did not produce is reported as before.
What it costs
- Two more release assets, and one more build leg and one more UPX leg per
release. - The soft-float build has not been run on bcm53xx hardware. What stands behind
it is the target ABI and the QEMU run above, which covers startup and argument
parsing only. - While the service is stopped, the LuCI page runs
netstat -lnton every
status refresh.