Metadata-Version: 2.4
Name: rpm-policy-checker
Version: 0.1.1
Summary: GTK4 RPM Policy Checker — validate packages against Fedora packaging guidelines
Author-email: Daniel Nylander <daniel@danielnylander.se>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/yeager/rpm-policy-checker
Project-URL: Repository, https://github.com/yeager/rpm-policy-checker
Project-URL: Issues, https://github.com/yeager/rpm-policy-checker/issues
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: license-expression<31,>=30
Dynamic: license-file

# RPM Policy Checker

A GTK4/Adwaita application to validate RPM packages against Fedora packaging guidelines and RPM standards.

![License](https://img.shields.io/badge/license-GPL--3.0--or--later-blue)

## Features

- **Spec file analysis** — Check naming, required fields, macro usage, scriptlets, changelog format
- **RPM binary checks** — File placement, dependencies, metadata validation
- **SPDX license validation** — Detect old Fedora license identifiers and suggest SPDX equivalents
- **rpmlint integration** — Use rpmlint as backend for comprehensive checks
- **Grouped results** — Issues organized by category (naming, dependencies, licensing, etc.)
- **Fix recommendations** — Every issue includes actionable suggestions
- **Drag and drop** — Drop .rpm or .spec files directly onto the window
- **Modern UI** — GTK4 with libadwaita for a native GNOME experience

## Installation

### From source

```bash
pip install .
rpm-policy-checker
```

The package is also published on PyPI. Install it in an environment that can
access the host's GTK libraries:

```bash
pipx install --system-site-packages rpm-policy-checker
```

### Dependencies

- Python ≥ 3.10
- GTK 4.10 or newer and libadwaita 1.5 or newer
- PyGObject
- rpmlint (optional, for rpmlint integration)
- rpm (for RPM binary analysis)

On Fedora, install the system dependencies first:

```bash
sudo dnf install python3-gobject gtk4 libadwaita rpmlint
```

The checks target Fedora packaging policy. Other RPM distributions can run
the generic RPM and `rpmlint` checks, but do not have a separate policy profile
in this version.

## Usage

1. Open the app
2. Click the open button or drag and drop a `.rpm` or `.spec` file
3. Review the categorized results with fix recommendations

## License

GPL-3.0-or-later

## Author

Daniel Nylander <daniel@danielnylander.se>
