fedrq is a tool to query the Fedora and EPEL repositories
Project description
fedrq
⚠️ This project is a work in progress. ⚠️
A tool for querying the Fedora and EPEL repositories
fedrq makes it easy to query any branch of Fedora or EPEL. It uses the dnf
Python bindings and does not shell out to dnf repoquery
. It allows querying
for reverse dependencies, packages that contain a certain Provide or file,
subpackages of an SRPM, and package metadata.
The tool doesn't seek to replace every feature of dnf repoquery. It provides a
more user friendly interface than dnf repoquery
for certain common tasks.
Installation
fedrq has a copr repository at gotmax23/fedrq that contains released versions. Development snapshots are available at gotmax23/fedrq-dev. The RPM specfile is in the repository root.
The package can also be installed from source with pip
or any other PEP 517
frontend. The following additional system packages are required:
- python3-dnf
- fedora-repos-rawhide
Note that fedrq can only be installed for the system python interpreter.
fedrq cannot be installed in a venv unless it has --system-site-packages
,
as it needs to find dnf.
fedrq check-config --dump
requires tomli-w
.
The RPM package weakly depends on python3-tomli-w
.
Versioning
This project is in beta and its versioning scheme follows semver.
Python API
The fedrq.config
module and the fedrq.backend
package are public API.
Everything under fedrq.cli
is internal. fedrq is a primarily a CLI tool and
its API abstracts the specific dnf/libdnf5 functionality that it uses. The
API's main purpose is repoquerying, but you can use the fedrq functionality
you'd like and then access the underlying dnf Base object to preform other
tasks if needed.
See API.md for more information. See api-examples for some example code. As always, direct any feedback, questions, or issues to the mailing list (see ## Contributing).
Documentaion
See fedrq(1) (source) for the CLI interface and fedrq(5) (source) for the config file format.
Contributing
Development, issue reporting, and project discussion happen on the mailing list (~gotmax23/fedrq@lists.sr.ht).
See CONTRIBUTING.md.
Credits
Thank you to the dnf maintainers. This tool is inspired by dnf repoquery
and
uses the dnf
python bindings.
License
This project follows the REUSE specification. In general:
- Code is licensed under GPL-2.0-or-later. This is the same license as dnf.
- Configuration and repo files in fedrq/data/ are
UNLICENSE
ed - fedrq.spec is licensed under MIT to match Fedora
- The embedded repo defs in src/fedrq/data/repos from fedora-repos.rpm are MIT licensed. These are only used when the needed repo defs are not available in the system config (i.e. for querying the Fedora repos from a non Fedora system).
enum.StrEnum
is copied from Cpython 3.11 for older Python versions. It's ~30 lines of PSF-2.0 licensed code.
SPDX-License-Identifier: GPL-2.0-or-later AND Unlicense AND MIT AND PSF-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.