Skip to content

Feature: Add package readsb-wiedehopf#29411

Open
billmcilhargey wants to merge 3 commits into
openwrt:masterfrom
billmcilhargey:add-readsb-wiedehopf
Open

Feature: Add package readsb-wiedehopf#29411
billmcilhargey wants to merge 3 commits into
openwrt:masterfrom
billmcilhargey:add-readsb-wiedehopf

Conversation

@billmcilhargey
Copy link
Copy Markdown

@billmcilhargey billmcilhargey commented May 10, 2026

📦 Package Details

Maintainer: @billmcilhargey

Description:
New package readsb-wiedehopf — a Mode-S / ADS-B / TIS decoder for
RTL-SDR and other SDR devices. This is the wiedehopf fork of
readsb
, an actively maintained
alternative to the existing readsb package (which tracks the
now-archived Mictronics upstream).

It adds many features required by modern aggregators:

  • BeastReduce output
  • station UUIDs
  • globe history / heatmap recording
  • JSON / binCraft outputs
  • built-in HTTP API

It is the upstream used by tar1090, adsb.lol, airplanes.live,
adsb.fi and similar projects.

The package:

  • installs /usr/bin/readsb and a companion viewadsb-wiedehopf
    package providing /usr/bin/viewadsb
  • declares PROVIDES:=readsb / CONFLICTS:=readsb (and the same for
    viewadsb) so either fork can satisfy a readsb dependency, but
    not both at once
  • ships a UCI config (/etc/config/readsb), a procd init script,
    USB hotplug glue, and an interactive readsb-setup wizard plus
    readsb-uuid / readsb-geoip / readsb-feeder helpers under
    /usr/sbin/

The existing readsb package and its maintainer are not touched.


🧪 Run Testing Details

  • OpenWrt Version: 23.05-SNAPSHOT (git-25.163.46318-26086b5, kernel 5.4.164)
  • OpenWrt Target/Subtarget: ipq60xx/generic
  • OpenWrt Device: GL.iNet GL-AXT1800 (Slate AX, ARMv8 / Qualcomm IPQ6018)

Build verified with make package/readsb-wiedehopf/{clean,compile} V=s
against the 23.05 SDK for ipq60xx/generic.

Runtime verified on a GL-AXT1800 (GL Technologies, Inc. AXT1800,
hostname GL-AXT1800, uptime 1d 0h at time of test): the daemon is
enabled and started by procd via /etc/init.d/readsb, decodes Mode-S
frames from an attached RTL-SDR over USB (hotplug binds correctly),
JSON output is served on the configured port, and readsb-setup
walks through location / UUID / SDR / feeder configuration without
errors. viewadsb-wiedehopf connects to the local daemon and renders
the live aircraft list.


✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

If your PR contains a patch:

  • It can be applied using git am
  • It has been refreshed to avoid offsets, fuzzes, etc., using
    make package/readsb-wiedehopf/refresh V=s
  • It is structured in a way that it is potentially upstreamable

readsb is a Mode-S/ADSB/TIS decoder for RTL-SDR and other SDR devices.
This is the wiedehopf fork (https://github.com/wiedehopf/readsb), an
actively maintained alternative to the readsb package (which tracks
the now-archived Mictronics upstream). It adds many features used by
aggregators (BeastReduce, UUIDs, globe history, heatmaps, JSON/binCraft
outputs, http API) and is the upstream used by tar1090, adsb.lol,
airplanes.live, adsb.fi and similar projects.

Signed-off-by: Dr Bill Mcilhargey <contributor@mcilhargey.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new OpenWrt package readsb-wiedehopf (wiedehopf fork of readsb) including procd integration, UCI configuration, USB hotplug handling, and a suite of operator-focused helper CLIs for setup, feeder management, UUID handling, and geoip location.

Changes:

  • Introduces the readsb-wiedehopf and viewadsb-wiedehopf packages with build/install rules and postinst/prerm hooks.
  • Adds procd init script + USB hotplug logic and ships a default /etc/config/readsb UCI config.
  • Adds helper tools (readsb-setup, readsb-feeder, readsb-uuid, readsb-geoip) plus shared shell helper library and README documentation.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
utils/readsb-wiedehopf/Makefile Defines the new packages, build flags, dependencies, and install/postinst hooks
utils/readsb-wiedehopf/README.md Documents configuration model, wizard/CLI usage, hotplug behavior, and feeders
utils/readsb-wiedehopf/files/readsb.config Ships default UCI config for the readsb main section
utils/readsb-wiedehopf/files/readsb.init Adds procd init script wiring UCI → daemon flags + boot-time waits/reconciliation
utils/readsb-wiedehopf/files/readsb.hotplug Adds USB hotplug handler to pin/unpin RTL-SDR devices and restart service
utils/readsb-wiedehopf/files/readsb.functions.sh Shared shell library for logging, presets, health/stats parsing, and wizard helpers
utils/readsb-wiedehopf/files/readsb.setup Adds a guided setup wizard plus --status/--health/--stats/--config modes
utils/readsb-wiedehopf/files/readsb.feeder Adds feeder management CLI (add/set/enable/disable/remove/probe/health/url)
utils/readsb-wiedehopf/files/readsb.uuid Adds UUID inspection/generation CLI with interactive and non-interactive modes
utils/readsb-wiedehopf/files/readsb.geoip Adds geoip-based best-effort lat/lon population + self-test

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread utils/readsb-wiedehopf/files/readsb.geoip Outdated
Comment thread utils/readsb-wiedehopf/files/readsb.geoip Outdated
Comment thread utils/readsb-wiedehopf/files/readsb.init
Comment thread utils/readsb-wiedehopf/files/readsb.setup Outdated
Comment thread utils/readsb-wiedehopf/files/readsb.feeder Outdated
billmcilhargey pushed a commit to billmcilhargey/packages that referenced this pull request May 11, 2026
ADSBexchange.com statistics uploader for OpenWrt.

Periodically reads aircraft.json from readsb (via readsb-wiedehopf),
aggregates per-aircraft RSSI and counts, and POSTs the result to
https://adsbexchange.com identified by the station UUID stored at
readsb.main.uuid -- shared with readsb's BEAST connectors so a single
`readsb-uuid` configures both.

Procd-supervised bash uploader with no compile step. Configuration is
UCI-only (/etc/config/adsbexchange-stats); the station UUID is shared
with readsb-wiedehopf via readsb.main.uuid so a single identity is
used by the BEAST feed connector and this uploader. Logging goes to
syslog under the `adsbexchange-stats` tag at user-selectable verbosity.

Hard-depends on readsb-wiedehopf (PR openwrt#29411) for the shared UUID,
the readsb-uuid CLI, and /usr/lib/readsb/functions.sh.

Upstream: https://github.com/ADSBexchange/adsbexchange-stats pinned
at commit 11647f27. Upstream license preserved as MIT; OpenWrt
packaging files are GPL-2.0-only.

Signed-off-by: Dr Bill Mcilhargey <contributor@mcilhargey.com>
BKPepe pushed a commit to billmcilhargey/packages that referenced this pull request May 13, 2026
ADSBexchange.com statistics uploader for OpenWrt.

Periodically reads aircraft.json from readsb (via readsb-wiedehopf),
aggregates per-aircraft RSSI and counts, and POSTs the result to
https://adsbexchange.com identified by the station UUID stored at
readsb.main.uuid -- shared with readsb's BEAST connectors so a single
`readsb-uuid` configures both.

Procd-supervised bash uploader with no compile step. Configuration is
UCI-only (/etc/config/adsbexchange-stats); the station UUID is shared
with readsb-wiedehopf via readsb.main.uuid so a single identity is
used by the BEAST feed connector and this uploader. Logging goes to
syslog under the `adsbexchange-stats` tag at user-selectable verbosity.

Hard-depends on readsb-wiedehopf (PR openwrt#29411) for the shared UUID,
the readsb-uuid CLI, and /usr/lib/readsb/functions.sh.

Upstream: https://github.com/ADSBexchange/adsbexchange-stats pinned
at commit 11647f27. Upstream license preserved as MIT; OpenWrt
packaging files are GPL-2.0-only.

Signed-off-by: Dr Bill Mcilhargey <contributor@mcilhargey.com>
@billmcilhargey
Copy link
Copy Markdown
Author

Marked the other package as ready for review, I was not sure if it should be left in draft stage or not, so shifted it to Ready for Review stage in case it was holding this package up

Appreciate the time too!

Address five review comments from copilot-pull-request-reviewer:

* readsb.geoip: exit rc=2 (not rc=0) when required runtime tooling
  (jsonfilter / HTTP client) is missing, matching the documented
  exit-code contract so that automation does not treat the run as
  success when no lookup can possibly occur.

* readsb.geoip: error-handle each 'uci set' and 'uci commit' in
  update_section() and return non-zero on failure, so callers no
  longer see a success notice for a half-written or un-committed
  change.

* readsb.init: declare 'tbool' / 'tparam' as 'local' inside
  append_bool, append_bool_no, and append_param so they no longer
  leak into the global scope across helper invocations.

* readsb.setup: correct the comment on _status_cmdline_arg() to
  reflect the implementation (only --flag=VALUE is recognised; the
  space-separated --flag VALUE form is intentionally not supported
  because readsb's own init script always emits the '='-joined form).

* readsb.feeder: rewrite the _probe_tcp() comment so it no longer
  claims 'pure-busybox' coverage of bash's /dev/tcp; document that
  the redirection silently fails on busybox-ash and the helper
  falls through to 'nc -z' on stock OpenWrt.

Signed-off-by: Dr Bill Mcilhargey <contributor@mcilhargey.com>
@billmcilhargey billmcilhargey force-pushed the add-readsb-wiedehopf branch from c4c33df to 76e5f22 Compare May 21, 2026 22:56
Comment thread utils/readsb-wiedehopf/Makefile Outdated
… optimization flags

Signed-off-by: GitHub <noreply@github.com>
@billmcilhargey
Copy link
Copy Markdown
Author

Implemented recommended change by @Yang-Wei-Ting

--update readsb-wiedehopf Makefile to set PKG_FORTIFY_SOURCE and adjust optimization flags

Thank you!

Ready for continued review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants