github valnesfjord/tg-ws-proxy-rs v2.5.1
tg-ws-proxy-rs v2.5.1

4 hours ago

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
    -upx twin, built for the soft-float ABI.
  • install.sh picks it for arm_cortex-a9 and arm_cortex-a7, the two ARMv7
    architectures OpenWrt builds without FPU support. Every other ARMv7 name keeps
    the musleabihf build.
  • 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 --version reports. If the binary is missing — for instance because the
    archive's tg-ws-proxy was never saved under the -rs name — 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 upstream tg-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 --version and /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 -lnt on every
    status refresh.

Don't miss a new tg-ws-proxy-rs release

NewReleases is sending notifications on new releases.