Feature: Add package readsb-wiedehopf#29411
Conversation
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>
There was a problem hiding this comment.
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-wiedehopfandviewadsb-wiedehopfpackages with build/install rules and postinst/prerm hooks. - Adds procd init script + USB hotplug logic and ships a default
/etc/config/readsbUCI 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.
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>
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>
|
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>
c4c33df to
76e5f22
Compare
… optimization flags Signed-off-by: GitHub <noreply@github.com>
|
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 |
📦 Package Details
Maintainer: @billmcilhargey
Description:
New package
readsb-wiedehopf— a Mode-S / ADS-B / TIS decoder forRTL-SDR and other SDR devices. This is the wiedehopf fork of
readsb, an actively maintained
alternative to the existing
readsbpackage (which tracks thenow-archived Mictronics upstream).
It adds many features required by modern aggregators:
It is the upstream used by
tar1090,adsb.lol,airplanes.live,adsb.fiand similar projects.The package:
/usr/bin/readsband a companionviewadsb-wiedehopfpackage providing
/usr/bin/viewadsbPROVIDES:=readsb/CONFLICTS:=readsb(and the same forviewadsb) so either fork can satisfy areadsbdependency, butnot both at once
/etc/config/readsb), a procd init script,USB hotplug glue, and an interactive
readsb-setupwizard plusreadsb-uuid/readsb-geoip/readsb-feederhelpers under/usr/sbin/The existing
readsbpackage and its maintainer are not touched.🧪 Run Testing Details
Build verified with
make package/readsb-wiedehopf/{clean,compile} V=sagainst 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 isenabled and started by procd via
/etc/init.d/readsb, decodes Mode-Sframes from an attached RTL-SDR over USB (hotplug binds correctly),
JSON output is served on the configured port, and
readsb-setupwalks through location / UUID / SDR / feeder configuration without
errors.
viewadsb-wiedehopfconnects to the local daemon and rendersthe live aircraft list.
✅ Formalities
If your PR contains a patch:
git am