Two packages provide librespeed-cli, and for a dependency written with a
leading plus, package-metadata.pl re-emits the chosen provider's
architecture gate under a condition that names the consuming package.
Kconfig reads that as a self-dependency, once for librespeed-common and
again for luci-app-librespeed. Naming the client without the plus emits
a plain either-or instead, and the user picks.
The provide also crosses package boundaries, where package-pack.mk asks
for an unversioned one: with a version the higher one wins, so a release
on either side would decide which client apk installs. Unversioned, the
package called librespeed-cli keeps the name, and a default variant
gives the Rust client the provider priority so it is still chosen where
the Go client is not built.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Add a common backend for running librespeed-cli measurements on a router.
The package provides a locked measurement runner, live progress state, and
an rpcd ucode plugin exposing start/stop/status/result/history/config over
ubus. Scheduled measurements are managed through cron and can run within a
configurable time window. Optional daily aggregation keeps longer-term
history compact.
Raw measurements are kept in JSONL for a configurable retention period.
When persistent archive storage is configured, completed days are reduced
to daily min/avg/max values.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>