build_module() now re-registers when a Docker image exists but the
registry entry is missing (e.g., after manual registry edits or
schema migrations). This fixes auto-build in combo workflows where
a module's image exists but isn't tracked.
Also fixes gr-rds catalog branch (main → maint-3.10) and adds
tests for per-entry registry validation and orphan re-registration.
Add two new OOT modules to the catalog:
- gr-leo: LEO satellite channel simulator from LibreSpace Foundation
- gr-dl5eu: DVB-T OFDM synchronization and TPS decoder
Update fix_binding_hashes.py to search python/**/bindings/ recursively,
supporting both GR 3.9 layout (python/bindings/) and GR 3.10 layout
(python/<module>/bindings/).
New installable modules:
- foo: Wireshark PCAP connector, burst tagger (bastibl, maint-3.10)
- owc: Optical Wireless Communication simulation (UCaNLab, main)
- dab: DAB/DAB+ digital audio broadcast receiver (hboeglen, maint-3.10)
gr-dab requires fdk-aac-dab (bundled subdir) + libfaad-dev at build time.
gr-foo is a dependency of the already-cataloged gr-ieee802-11.
Catalog now has 22 modules (12 preinstalled, 10 installable).
All 3 new modules built and verified in Docker.
- Fix branch names for 5 modules discovered during install attempts:
ieee802_11, ieee802_15_4, adsb (maint-3.10), iridium, nrsc5 (master)
- Remove packet_radio (repo gone/private)
- Add build_deps for modules that need them (castxml, autotools, Qt5)
- Add fix_binding_hashes.py helper script to Dockerfile builds to
prevent castxml regen failures from stale pybind11 header hashes
- Use tar build context in Docker builds to support COPY instruction
- Note inspector as incompatible with GR 3.10 (API changes)
Successfully built: ieee802_11, ieee802_15_4, adsb, iridium, nrsc5
Curated catalog of 20 GNU Radio OOT modules served via two MCP
resources (oot://directory, oot://directory/{name}). Each entry
includes git URL, branch, build deps, and a ready-to-use
install_oot_module() example.
Modules are tagged preinstalled when they ship with the
gnuradio-runtime base Docker image (12 of 20), so agents can
distinguish what's already available from what needs building.