Skip to content

Backend vnStat 214

alexphillips-dev edited this page Nov 4, 2026 · 1 revision

vnStat 2.14 backend

The vnStat dependency is supplied by DVM, not selected by an Unraid OS update. The plugin manifest downloads the dependency from the selected DVM release channel and installs it through Unraid's package manager. The executables are installed system-wide, so library and other-plugin compatibility matter.

The current package is vnstat-2.14-x86_64-1_dvm.txz, containing vnstat, vnstatd, and vnstati. It targets baseline x86_64 and glibc 2.17 or later; the recorded current binaries require no GLIBC symbol newer than 2.14. Runtime application libraries are libsqlite3.so.0 and, for images, libgd.so.3. The package does not replace the host's shared libraries or install a competing service/configuration/database.

The bundled backend is built from the signed upstream 2.14 release. Its corresponding source and detached signature are included in the repository. To rebuild it as an unprivileged Linux user, install Python 3.12+, make, GnuPG, and readelf (binutils), then run:

python3 scripts/build_vnstat.py

The build verifies the source SHA-256 and pinned upstream signing fingerprint 23EF1DD76E65248FB055201ADAFE84E63D140114. It downloads a pinned Zig/LLVM toolchain and checksum-pinned baseline GD/SQLite headers and link libraries into ~/.cache/dvm-vnstat-build/ (override with --cache PATH). Build inputs remain in that local cache; host libraries are not shipped. Builds occur in fresh isolated directories and do not run make install or start a service. Executables must pass x86_64, GLIBC symbol, library dependency, and embedded-path checks before publication. Package ownership/modes/timestamps are deterministic, and GPL license, upstream documentation, and manpages are included.

The builder writes the dependency archive, MD5/SHA-256 sidecars, and build metadata. Update the dependency identity/MD5 in the plugin manifest when introducing a new backend build. The old 2.12 archive is retained for historical downloads and isolated database/threshold compatibility tests.

The 2.14 upgrade retains saved configuration and traffic databases. New installs and resets receive a configuration documenting the new optional settings while retaining DVM's collection/save intervals and automatic-interface defaults. Native qualification covers reading a 2.12 database without losing its traffic history; vnStat updates its own version metadata. Keep an independent backup when testing upgrades on a real host.

Native tests compare threshold decisions with the old 2.12 executable, query an old database without losing traffic history, exercise JSON/XML special-character escaping, generate the six report images, and pass actual backend responses through all PHP report formats. Package checks verify source signature, documentation/license bytes, hashes, x86_64 loader, and glibc requirements. These results do not establish that every supported Unraid host has suitable image libraries or that a real reboot has been accepted.

Clone this wiki locally