Attention is currently required from: fixeria, laforge, neels, pespin.
Timur Davydov has posted comments on this change by Timur Davydov. ( https://gerrit.osmocom.org/c/libosmocore/+/41813?usp=email )
Change subject: Add Emscripten build support and JS callback logging backend ......................................................................
Patch Set 6:
(1 comment)
Patchset:
PS5:
While I'm personally not a big believer in the "let's run SDR software and/or telecom protocol stack […]
Thanks a lot for the thorough review and for the positive assessment of the patch cleanliness — really appreciate it!
I get the skepticism about browser-based SDR/telecom stacks — it's niche and has clear trade-offs. Still, I see value in it for education, quick prototyping, client-side analysis, and zero-setup experimentation.
**On the CI side:**
I fully agree — some form of build verification is essential to prevent regressions. Nightly testing of master (with email notifications on failure) seems like the best low-impact compromise. It avoids bloating Gerrit verification times while still catching issues early.
A quick note on the current Emscripten build setup:
To make libosmocore buildable under Emscripten/WebAssembly: - We use Emscripten as the toolchain. - The main dependency issue is talloc (from Samba), which lacks official Emscripten support and a static-library-only mode (needed for WASM). - Forking talloc long-term with patches is undesirable (upstream divergence + extra maintenance).
Instead, I apply the necessary adjustments at build time using a custom Conan 2 recipe for talloc — this keeps upstream sources untouched while enabling reproducible static builds for Emscripten.
I also prepared a small auxiliary shell script locally (for development/testing only) that: - sets up a Python venv, - installs Conan 2, - builds talloc via the Emscripten recipe, - then compiles libosmocore with the required flags.
Clarification: neither the Conan recipe nor the script are included in this patchset.
Happy to share them separately if useful for CI setup.