Skip to main content

fedrq

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.

builds.sr.ht status

copr build status (stable)

copr build status (dev)

docsite

fedrq on sr.ht

fedrq on git.sr.ht

fedrq on lists.sr.ht

fedrq on todo.sr.ht

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.

fedrq is also published to PyPI so you can pip install fedrq.

When installing the package with pip, some additional system packages are needed.

The following additional system package is required for the dnf backend:

  • python3-dnf (dnf is currently the default Fedora package manager, so this should already be installed)

The following additional system packages are required for the libdnf5 backend:

  • python3-libdnf5
  • python3-rpm

fedrq defaults to the dnf backend, but fedrq falls back to the libdnf5 backend if the former's dependencies aren't installed. Users can explicitly choose a backend with the --backend CLI option or globally in the fedrq config file.

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 the aforementioned system bindings.

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.

See NEWS.md.

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 the API Summary on the docsite 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 our new docsite for rendered manpages, changelogs, and Python API documentation.

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 UNLICENSEed
  • 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

Metadata

Release files for fedrq 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fedrq 0.7.0
File Size Uploaded
fedrq-0.7.0.tar.gz 89.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fedrq 0.7.0
File Interpreter ABI Platform
fedrq-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 156.5 kB

Release files / fedrq-0.7.0.tar.gz

Download URL fedrq-0.7.0.tar.gz
Size 89.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6a22f6eaba140d0edd0f99edf77b2ce8ca08e30328cee45f8714ec764f16a951
BLAKE2b-256 checksum
How to use checksums
15590916bf31b7358f5b6862eb24bfbe37012534df1709cbcefb3f9acd753501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / fedrq-0.7.0-py3-none-any.whl

Download URL fedrq-0.7.0-py3-none-any.whl
Size 66.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e3203d96042909ba5dc01596bdee44b3b906860141603a658e6ce620d8696fd
BLAKE2b-256 checksum
How to use checksums
a82fc46e9898c9e0aa718f811bf98125b21d6a1cc68b554916ddaf155c632184
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release history Release notifications | RSS feed

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page