feat: add gr-leo and gr-dl5eu, fix binding hash script for GR 3.10

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/).
This commit is contained in:
Ryan Malloy 2026-02-01 10:30:23 -07:00
parent 30a1fecc6b
commit ca114fe2cb
2 changed files with 38 additions and 19 deletions

View File

@ -57,27 +57,30 @@ headers so cmake skips the regeneration step.
import hashlib, pathlib, re, sys
root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path(".")
bindings = root / "python" / "bindings"
if not bindings.is_dir():
# GR 3.9-: python/bindings/ | GR 3.10+: python/<module>/bindings/
binding_dirs = list(root.joinpath("python").glob("**/bindings"))
if not binding_dirs:
sys.exit(0)
for cc in sorted(bindings.glob("*_python.cc")):
text = cc.read_text()
m = re.search(r"BINDTOOL_HEADER_FILE\\((\\S+)\\)", text)
if not m:
continue
header = next(root.joinpath("include").rglob(m.group(1)), None)
if not header:
continue
actual = hashlib.md5(header.read_bytes()).hexdigest()
new_text = re.sub(
r"BINDTOOL_HEADER_FILE_HASH\\([a-f0-9]+\\)",
f"BINDTOOL_HEADER_FILE_HASH({actual})",
text,
)
if new_text != text:
cc.write_text(new_text)
print(f"Fixed binding hash: {cc.name}")
for bindings in binding_dirs:
for cc in sorted(bindings.glob("*_python.cc")):
text = cc.read_text()
m = re.search(r"BINDTOOL_HEADER_FILE\\((\\S+)\\)", text)
if not m:
continue
header = next(root.joinpath("include").rglob(m.group(1)), None)
if not header:
continue
actual = hashlib.md5(header.read_bytes()).hexdigest()
new_text = re.sub(
r"BINDTOOL_HEADER_FILE_HASH\\([a-f0-9]+\\)",
f"BINDTOOL_HEADER_FILE_HASH({actual})",
text,
)
if new_text != text:
cc.write_text(new_text)
print(f"Fixed binding hash: {cc.name}")
"""

View File

@ -286,6 +286,22 @@ CATALOG: dict[str, OOTModuleEntry] = {
branch="master",
homepage="https://github.com/muccc/gr-iridium",
),
_entry(
name="leo",
description="LEO satellite channel simulator (Doppler, path loss, atmosphere)",
category="Satellite",
git_url="https://gitlab.com/librespacefoundation/gr-leo",
branch="gnuradio-3.10",
homepage="https://gitlab.com/librespacefoundation/gr-leo",
),
_entry(
name="dl5eu",
description="DVB-T OFDM synchronization and TPS decoder",
category="Broadcast",
git_url="https://github.com/dl5eu/gr-dl5eu",
branch="main",
homepage="https://github.com/dl5eu/gr-dl5eu",
),
_entry(
name="inspector",
description="Signal analysis toolbox (energy detection, OFDM estimation)",