v0.9.57
Pre-releaseFixes the Toon 1 crash-loop in v0.9.56. If you were stuck on the original qt-gui after updating, this is the fix — thanks @guustflater89 and @Michel30 for the reports and the logs, they made this a five-minute diagnosis.
What went wrong
v0.9.56 crash-looped to qt-gui on Toon 1 with:
relocation error: /mnt/data/toonui: symbol , version GLIBC_2.4 not defined in file libc.so.6
Diffing the binaries (not guessing): the v0.9.56 Toon 1 executable imported exactly the v0.9.54 set plus three symbols — strcasecmp, fputc and pthread_attr_destroy@GLIBC_2.4 — that the device's firmware glibc doesn't resolve. The loader aborts on the first one it hits, which is why only one is named. v0.9.54 loads; v0.9.56 didn't; that three-symbol delta was the entire difference. It's the same class of failure as the getifaddrs one back in v0.9.47.
They crept in from ordinary code — one was even fprintf(stderr, "\n"), which the compiler quietly turns into fputc.
The fix, and why it's trustworthy this time
All three symbols are removed (routed through local implementations built into the binary). The result: v0.9.57's imports are now an exact subset of v0.9.54's — a binary you've already run successfully. That's a stronger guarantee than reasoning about what the device's glibc does or doesn't have.
Applied to the Toon 2 build as well. No Toon 2 user reported this, but the v0.9.56 Toon 2 binary carried the same three imports and I couldn't reach a Toon 2 to confirm it's harmless there — so this closes that gap rather than betting on it.
So it can't happen again
The build's ABI check now compares every release against a recorded baseline of v0.9.54's imports and fails the build on any new on-device dependency — I confirmed it flags exactly the three symbols that slipped through into v0.9.56. Previously the check only knew about symbols that had already caused a problem.
Everything from v0.9.56 is still here
The energy work you were trying to reach is unchanged and now actually gets to run: the Zuidwijk / ESPHome P1 source, Home Assistant energy sensors, the solar tile, the HA https fix, the weather fallback, and the DIM tile-sync fix. See the v0.9.56 notes for details.
Verified: v0.9.56 added three @GLIBC_2.4 imports the Toon 1 firmware couldn't resolve; v0.9.54 didn't have them; v0.9.57's import set is now identical to v0.9.54's on both Toon 1 and Toon 2, and the ABI baseline check enforces that going forward. The wrapper code was unit-tested against real libc. Built from a clean v0.9.57 tag.