jw-pkg/test/unit/python/jw/pkg/lib
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann cae983479c
lib.Distro.verify(): Add method
jw-base verify pipes the output of rpm -qV for all janware packages
into a grep for md5 mismatches and missing files. The same capability,
distribution-independent, belongs in the Distro abstraction so that tools
like jw-nettools can check the integrity of the packages they install on a
fleet of hosts.

- Add Distro.verify(), which verifies the given package names, or all
  packages selected by the package filter when none are given, and returns
  the flagged files
- Add Distro._verify() as the distribution hook
- Add FlaggedFile, the record for a flagged file: package, file, and the
  package manager's verify status line - not distribution independent as of
  today, but it's a start
- pm/rpm.py: parse_verify_output() parses the output of `rpm -qV` and
  reports md5 mismatches and missing files, the latter reported with the
  literal word "missing" in the flag field; size, mode, mtime, user, and
  group mismatches are noise on dev machines and are ignored.
  verify_packages() runs `rpm -qV` per package and collects the findings
- pm/dpkg.py: parse_verify_output() parses the output of `dpkg -V` and
  reports md5sum (P) mismatches and missing files (M); verify_packages()
  runs `dpkg -V` per package
- The SUSE, Red Hat, and Debian Distro classes implement _verify() with the
  respective pm helpers; the Arch Distro raises NotImplementedError, like
  its other package manager hooks

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.2.0
2026-10-16 09:40:22 +02:00
..
App test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Distro lib.Distro.verify(): Add method 2026-10-16 09:40:22 +02:00
ec lib.FileContext: Add readdir() method 2026-09-29 15:29:19 +02:00
ExecApp test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Package lib.Package: Add unit tests 2026-09-14 20:52:59 +02:00
PackageFilter lib.PackageFilter: Add unit tests 2026-09-14 20:53:00 +02:00
pm lib.Distro.verify(): Add method 2026-10-16 09:40:22 +02:00
ProcFilter lib.ProcFilter: Add unit tests 2026-09-14 20:52:59 +02:00
ProjectConf test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Result test: apply yapf formatting to test.py files 2026-07-04 07:35:17 +02:00
TarIo lib.TarIo: Add unit tests 2026-09-14 20:53:00 +02:00
Uri lib.Uri: Fix __assemble(): No '://' for relative paths 2026-09-05 14:01:46 +02:00
util util.copy(): Add recursive directory copy 2026-09-29 15:29:19 +02:00
version lib.version.Dependency.__version_boundaries(): Use Version.next() 2026-09-15 21:43:47 +02:00
Makefile test: Move unit tests below jw/pkg 2026-06-25 20:57:05 +02:00