Isoinspector is an utility to validate consistency of RPM packages from distribution ISO/IMG images with base branch in ALTRepo DB using ALTRepo API.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Danil Shein 4f5450f9b3 0.2.3-alt1
- new version
  + add missing runtime dependencies on Qemu
2026-02-12 16:17:47 +03:00
.gear 0.2.3-alt1 2026-02-12 16:17:47 +03:00
AUTHORS.txt prepared for packaging to Sisyphus 2022-02-08 11:20:31 +03:00
isoinspector refactor code 2026-02-12 16:15:19 +03:00
LICENSE prepared for packaging to Sisyphus 2022-02-08 11:20:31 +03:00
README.md fix: add content-based image format detection 2026-01-29 14:56:24 +03:00
require.txt fix requirements 2022-02-07 10:40:49 +03:00

Isoinspector

Isoinspector is an utility to validate consistency of RPM packages from distribution ISO/IMG images with base branch in ALTRepo DB using ALTRepo API.

Utility supports two types of distribution branches: regular and sp. Supported image formats are ISO, IMG, and compressed IMG (.img.xz).

Version

0.2.2

License

GNU GPLv3

Dependencies

  • fuseiso
  • squashfuse
  • guestmount (for IMG images)
  • unxz (for .img.xz images)
  • python3-module-rpm
  • python3-module-mmh3
  • python3-module-requests

Starting application

Usage is available by run program with -h argument.

usage: isoinspector [-h] --branch BRANCH --type {regular,sp} [-U URL] [-v] [-s] [-J] [-F] path

Inspect RPM packages from ISO/IMG image with branch through RepoDB API

positional arguments:
  path                 Path to ISO/IMG image file (.iso, .img, .img.xz)

options:
  -h, --help           show this help message and exit
  --branch BRANCH      Filesystem image base branch name
  --type {regular,sp}  Branch type
  -U URL, --url URL    RepoDB API URL
  -v, --verbose        verbose output (repeat for increased verbosity)
  -s, --silent         quiet output (show errors only)
  -J, --dumpjson       Dump API response to JSON files
  -F, --files          Dump information about invalid packages to JSON files

Default API URL is https://rdb.altlinux.org.

Verbosity level is controlled by -s and -v options. Specify -v for INFO level loggign or -vv for DEBUG level logging.

Program could generate additional artifacts when -J and -F options are specified.

Inspection result is streamed to stdout in JSON format.

Interpreting results

Note that base branch state is committed to database no more than once a day. Thus some packages could be found as not_in_db even if it is not true.

Regular distribution ISO

For regular distribution ISO packages inspected using it's hashes. If package not found in base branch's history, then it is searched in building task history. Not valid package's information, if any, returned in sections in_tasks and not_in_db of result JSON.

SP distribution ISO

For sp distribution ISO packages inspected using set of NEVRDA (name, epoch, version, release, disttag, arch). If package not found in base branch's history, it is searched in building task history by NEVRDA matching. Found ones is returned with "found_in": "task [%task_id%.%subtask_id%]". Then packages is searched in latest base branch state using NEVRA (disttag excluded). Found one is returned with "found_in": "last branch".

Finaly packages looked up in latest branch state using NA (name, architecture) matching and added to comparison as "last_branch" component.

Not valid package's information, if any, returned in sections "in_tasks" and "not_in_db" of result JSON.

IMG images

IMG images are processed via guestmount and inspected the same way as ISO images. Compressed IMG archives (.img.xz) are decompressed to a temporary file before mounting.

Examples

$> isoinspector /iso/alt-sp8-workstation-x86_64.iso --branch c9f2 --type sp -v | jq
$> isoinspector /iso/alt-sp8-server-x86_64.iso --branch c9f2 --type sp --url http://localhost:5000/ > result.json
$> isoinspector /img/alt-mobile-phosh-def-11.0-x86_64.img.xz --branch p11 --type regular -vv -F -J > result.json