rpmqc
The RPM packages quality control tool.
Ideologically, rpmqc is similar to rpmlint, but they solve slightly different tasks: rpmlint is an awesome tool for checking an RPM package for common errors (a packager's tool), while rpmqc is designed to quickly check an entire repository/compose for typical release manager's errors like missing signatures or wrong branding.
Install
All requirements are available from Fedora or EL 8/9 + EPEL repositories:
# EL 9 derivatives
$ sudo dnf install -y --enablerepo=epel python3-createrepo_c \
python3-cryptography python3-rpm python3-schema python3-pyyaml \
python3-virtualenv
Currently, there is no RPM package available, so the recommended way is to install rpmqc from PyPI using a virtual environment:
$ mkdir rpmqc
$ cd rpmqc
$ virtualenv --system-site-packages .venv
$ . .venv/bin/activate
$ pip install rpmqc
$ rpmqc --version
rpmqc 0.0.4
optionally, you can create an rpmqc alias in your ~/.bashrc:
# don't forget to adjust the path accordingly to your configuration
alias rpmqc="rpmqc/.venv/bin/rpmqc"
Configuration
The program expects a configuration file in YAML format:
---
package:
signatures:
# expected RPM package signature PGP key id
pgp_key_id: 8BDA73A4
# IMA signature public certificate path
ima_cert_path: ~/.vault/ima-sign.x509
tags:
# expected RPM tag values, regular expressions are also supported
buildhost: !regex ^builder-(x86|arm64)-\d+\.msvsphere-os\.ru$
packager: MSVSphere
vendor: MSVSphere
...
all inspections are optional and will be performed if a corresponding configuration file option is set.
Usage
Currently, rpmqc supports only two modes: single (or multiple) RPM packages
checking (inspect-rpm) and an entire repository checking (inspect-repo).
For usage instructions see rpmqc inspect-rpm --help and
rpmqc inspect-repo --help, respectively.
License
rpmqc is available under the terms of the GNU General Public License v2.0, or (at your option) any later version of the license.
References
- The Test Anything Protocol v14 specification
- The RPM Package Manager
- IMA Wiki
- rpmlint - a tool for checking common errors in RPM packages.
- rpminspect - an RPM build deviation analysis tool.
Release files for rpmqc 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rpmqc-0.0.4.tar.gz | 18.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rpmqc-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.0 kB
Release files / rpmqc-0.0.4.tar.gz
| Download URL | rpmqc-0.0.4.tar.gz |
|---|---|
| Size | 18.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9435d2ee342b35ac397a215a4634f2eae890a0cd1e4ae322cddfec4c3a507a3
|
|
BLAKE2b-256 checksum How to use checksums |
125c1c49ffc16a462339e71bbd642c6f9608b16220b5c5223f30279770b59c51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / rpmqc-0.0.4-py3-none-any.whl
| Download URL | rpmqc-0.0.4-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a247d02b322dccf16b55de71cd2c28ade27f90d26025f04473a3859a0cc0503c
|
|
BLAKE2b-256 checksum How to use checksums |
96cd224347840be37577ee76d6f5ed44123d51b289897a440699321c74811066
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|