Fix the remaining prerequisite docs and record review decisions

Point the build blocks and troubleshooting pages at the Debian front-end,
fix the non-existent ./build-rust.sh references in the Spanish update
pages, and replace the stale Ubuntu-only package list in src/rust/README.md.

Record the review decisions for libzstd1, the unexpired-lease race, and
the unexercised postinst in the plan, and mark the review phase complete.
This commit is contained in:
Herbert Wolverson committed 2026-09-23 13:45:45 -05:00
1 parent 14a7fca24c
commit 7c4e63e060
9 files changed
+23 -15

No files matched your search

+6 -3
View File
@@ -1,6 +1,6 @@
# Debian 13 Support Plan
Status: in progress (branch `debian13_support`)
Status: complete on branch `debian13_support` (awaiting merge)
## Goal
@@ -15,7 +15,7 @@ and covered by the disposable RADIUS VM harness.
3. `src/build_pkg_debian.sh` — Debian front-end for `build_dpkg.sh`.
4. `src/build_dpkg.sh` — runtime dependency fixes for Debian minimal installs.
5. `radius-harness` — `LAB_GUEST_OS=debian` guest support with a pinned trixie image.
6. Documentation updates (contributor docs now; operator docs after the VM run passes).
6. Documentation updates (developer docs updated; operator-facing support statements remain a product decision).
## Design decisions
@@ -69,7 +69,7 @@ and covered by the disposable RADIUS VM harness.
- [x] Phase 5: VM validation: `lab init` / `up` / `configure` / `test` with `LAB_GUEST_OS=debian`, including the guest-OS and BPF-map assertions.
- [x] Phase 6: validate the built `.deb` inside the Debian guest (`lab check-package`).
- [x] Phase 7: developer docs updated to stop duplicating the apt list; the `bash -n` CI gate is deferred to a separate change.
- [ ] Phase 8: final review pass (heckler, reaper, thomas, beck, jonas) and merge gate.
- [x] Phase 8: final review pass (heckler, reaper, thomas, beck, jonas) and merge gate.
## Validation results
@@ -82,6 +82,7 @@ and covered by the disposable RADIUS VM harness.
## Known gaps
- `build_rust_debian.sh` and `build_pkg_debian.sh` were not executed on a Debian host end-to-end. The harness builds the runtime bundle on the Ubuntu host; the Debian package list and PATH fixes were validated against trixie package data and the Debian guest.
- The `.deb` postinst was not exercised on Debian; `lab check-package` simulates dependency resolution only.
- Repo bug found while testing, outside this branch's scope: `maybe_migrate_uisp_capacity_defaults` writes a `[uisp_integration]` table without the required `enable_uisp` field, so any config lacking that section fails to parse after migration. The harness fixture was updated to the current schema; the migration itself still needs a fix.
## Validation checklist
@@ -103,4 +104,6 @@ and covered by the disposable RADIUS VM harness.
- `netplan.io` stays in `Recommends` rather than `Depends`: runtime shaping does not need it, the setup flow does, and default apt installs recommends. Debian 13's cloud image ships it.
- The `.deb` keeps the time64 dependency names (`libelf1t64`, `libssl3t64`). That matches the supported Ubuntu 24.04+ and Debian 13 targets; older releases are out of scope.
- `libzstd1` stays out of `Depends`: `lqosd` reaches it through `libelf1t64`, which declares it. Generating `Depends` with `dpkg-shlibdeps` is the follow-up that would catch future direct libraries.
- The build scripts keep assuming `sudo`, matching `build_rust.sh` and `update_api.sh`. Minimal installs without `sudo` are out of scope for this branch.
- `management_ip` can still pick a previous lab's *unexpired* lease before the new guest requests DHCP. The documented flow includes a console step between `up` and `configure`, so this is recorded rather than reworked.
@@ -45,7 +45,10 @@ Once that's done, please run:
```shell
cd /opt/libreqos/src/
# Ubuntu 24.04:
./build_rust.sh
# Debian 13 or later:
./build_rust_debian.sh
```
This will take a while the first time, but it puts everything in the right place.
+1 -1
View File
@@ -26,7 +26,7 @@ Esto eliminará los mapas eBPF antiguos y cargará la última versión de LibreQ
1. Cambie a su directorio `LibreQoS`(e.g. `cd /opt/LibreQoS`)
2.Actualización desde Git: `git pull`
3. ```git switch develop```
5. Recompile: `./build-rust.sh`
5. Recompile: `./build_rust.sh` (on Debian 13 or later, `./build_rust_debian.sh`)
6. `sudo rust/remove_pinned_maps.sh`
Ejecute los siguientes comandos para recargar los servicios de LibreQoS.
+3
View File
@@ -44,7 +44,10 @@ Después, ejecute lo siguiente:
```shell
cd /opt/libreqos/src/
# Ubuntu 24.04:
./build_rust.sh
# Debian 13 o posterior:
./build_rust_debian.sh
```
Este proceso tomará algo de tiempo la primera vez, pero colocará todos los componentes en las ubicaciones correspondientes.
+1 -1
View File
@@ -146,7 +146,7 @@ sudo dpkg --configure -a
sudo systemctl restart lqosd lqos_scheduler
```
Las instalaciones basadas en git deben usar `./build_rust.sh` después de actualizar. Ese script reconstruye el entorno virtual antes de actualizar los archivos de servicio o reiniciar servicios. Si systemd informa `status=203/EXEC` en `/opt/libreqos/venv/bin/python`, o una falla en la comprobación previa del scheduler, reconstruya el entorno virtual con el comando anterior y reinicie `lqos_scheduler`.
Las instalaciones basadas en git deben usar `./build_rust.sh` después de actualizar (en Debian 13 o posterior, use `./build_rust_debian.sh`). Ese script reconstruye el entorno virtual antes de actualizar los archivos de servicio o reiniciar servicios. Si systemd informa `status=203/EXEC` en `/opt/libreqos/venv/bin/python`, o una falla en la comprobación previa del scheduler, reconstruya el entorno virtual con el comando anterior y reinicie `lqos_scheduler`.
Las instalaciones antiguas anteriores al entorno virtual pueden mostrar `ModuleNotFoundError` y recomendar comandos de `pip` del sistema. No repare instalaciones actuales con `pip` del sistema ni con `--break-system-packages`; esos paquetes no los usa el servicio `lqos_scheduler` respaldado por el entorno virtual. Actualice a un paquete que cree `/opt/libreqos/venv` y use el comando de reparación anterior.
+1 -1
View File
@@ -91,7 +91,7 @@ Si algo falla, vaya a [Solución de problemas](troubleshooting-es.md) antes de o
1. Cambia a tu directorio `LibreQoS` (por ejemplo `cd /opt/LibreQoS`)
2. Actualiza desde Git: `git pull`
3. ```git switch develop```
4. Recompila: `./build-rust.sh`
4. Recompila: `./build_rust.sh` (en Debian 13 o posterior, `./build_rust_debian.sh`)
5. `sudo rust/remove_pinned_maps.sh`
### Hotfix de Ubuntu 24.04 para instalaciones desde Git
+3
View File
@@ -44,7 +44,10 @@ Once that's done, please run:
```shell
cd /opt/libreqos/src/
# Ubuntu 24.04:
./build_rust.sh
# Debian 13 or later:
./build_rust_debian.sh
```
This will take a while the first time, but it puts everything in the right place.
+1 -1
View File
@@ -262,7 +262,7 @@ sudo dpkg --configure -a
sudo systemctl restart lqosd lqos_scheduler
```
Git-based installs should use `./build_rust.sh` after pulling updates. It rebuilds the virtual environment before refreshing service files or restarting services. If systemd reports `status=203/EXEC` on `/opt/libreqos/venv/bin/python`, or a failed scheduler pre-start check, rebuild the virtual environment with the command above and restart `lqos_scheduler`.
Git-based installs should use `./build_rust.sh` after pulling updates (on Debian 13 or later, use `./build_rust_debian.sh`). It rebuilds the virtual environment before refreshing service files or restarting services. If systemd reports `status=203/EXEC` on `/opt/libreqos/venv/bin/python`, or a failed scheduler pre-start check, rebuild the virtual environment with the command above and restart `lqos_scheduler`.
For manual shaping tests, use the same interpreter as the service:
+4 -8
View File
@@ -17,15 +17,11 @@ This project contains a number of projects arranged in a workspace. The projects
* `xdp_iphash_to_cpu_cmdline` - An almost-compatible command that acts like the tool of the same name from the previous verion.
* `xdp_pping` - Port of the previous release's `xdp_pping` tool, for compatibility. Will eventually not be needed.
## Required Ubuntu packages
## Required packages
* `clang`
* `linux-tools-common` (for `bpftool`)
* `libbpf-dev`
* `gcc-multilib`
* `llvm`
* `pkg-config`
* `linux-tools-5.15.0-56-generic` (the common version doesn't work?)
The build scripts install the required packages with `apt`: run
`./build_rust.sh` on Ubuntu 24.04 and `./build_rust_debian.sh` on Debian 13 or
later. See `src/build_prereqs.sh` for the package lists.
## Helper Scripts