fedrq - Man Page

Simplified repository querying

Syntax

fedrq uses the TOML syntax for its configuration files.​

Directories

PYTHON_SITELIB/fedrq/data/*.​toml

Builtin configuration files.​ These should not be modified directly but may be overridden or used as examples.​

/etc/fedrq/*.​toml

System wide configuration files.​ Has precedence over builtin configuration files.​

~/.​config/fedrq/*.​toml

User configuration files.​ Highest precedence.​ Top level options and releases in the [releases] table can be redefined by creating a configuration file with higher precedence.​

Options

default_branch <str> (default: rawhide)

What branch to query by default when -b/--branch is not specified.​

smartcache <bool|Literal["always"]> (default: true)

Different releases have different releasevers.​ Switching the releasever (i.​e.​ passing a different value to --branch) clears the dnf cache.​ When smartcache is true, fedrq sets base.​conf.​cachedir to $XDG_CACHE_DIR/fedrq/BRANCH when changing the releasever.​ Unless smartcache is set to always, the system cache is used if the requested branch'​s releasever is the same as the system'​s releasever.​

releases <dict[str, ReleaseConfig]>

Keys are a friendly name for the distribution.​ Release specifies the format for the values.​

filelists <always|never|auto> (default: auto)

See --filelists in fedrq(1)

backend <dnf|libdnf5>

See --backend in fedrq(1)

Release

defs <dict[str, list[str]]>

Keys are repo types to pass to -r/--repo.​ Each repo type takes a list of repo ids to query.​ All releases MUST have a base def.​

   defs​.base = ["rawhide", "rawhide-source"]
   # These are defined in rawhide-buildroot​.repo which
   # is referenced in `releases​.rawhide​.defpaths`​.
   defs​.buildroot = ["fedrq-koji-rawhide", "fedrq-koji-rawhide-source"]
matcher <regex>

Python regex to match -b/--branch names against.​ Regexes must have one capture group to use as the branch'​s releasever.​
(example: matcher = "^(rawhide)$" or matcher = "^f(\d{2})$")

defpaths <list of paths> (default: [])

List of .​repo files to load.​ All repo(s) MUST have enabled=0.​ fedrq will enable the appropriate repos that are specified in defs for the user'​s requested repo type.​ Paths can be relative or absolute.​ Relative paths are searched for in the following directories:

  • PYTHON_SITELIB/fedrq/data/repos/
  • /etc/fedrq/repos/
  • ~/.​config/fedrq/repos/
copr_chroot_fmt <str> (e.​g.​ fedora-{version} or epel-{version} or fedora-rawhide)

Name of the Copr chroot that corresponds to this release.​ {version} will be replaced with the releasever.​

system_repos <bool> (default: true)

Whether to load the system repository configuration.​ If all of the repository definitions are specified in defpaths, then it'​s a good idea to turn this off to avoid conflicts (if e.​g.​ the system configuration defines the same repository IDs) and save time.​

Examples

Here are some example configuration snippets.​

Configuring RPMFusion:

1.​ Install the applicable rpmfusion release packages.​

  $ sudo dnf install 
  	rpmfusion-free-release rpmfusion-free-release-rawhide 
  	rpmfusion-nonfree-release rpmfusion-nonfree-release-rawhide

2.​ Create a configuration

  # ~/​.config/fedrq/rpmfusion​.toml

# `releases​.rawhide` exists in the default configuration​.
# fedrq will merge the extras keys in the `defs` table with the default config​.
[releases​.rawhide]
# Note that the corresponding -source repositories are enabled​.
# All fedrq release defs must have these to ensure all functionality works
# properly (notably subpkgs and whatrequires-src)​.

# `fedrq CMD -b rawhide -r fusion-free` will enable the following two
# repositories and nothing more​.
#
# Use `fedrq CMD -b rawhide -e fusion-free` to enable these repositories
# *in addition* to the default rawhide repositories​.
defs​.fusion-free = [
    "rpmfusion-free-rawhide", "rpmfusion-free-rawhide-source",
]
defs​.fusion-nonfree-only = [
    "rpmfusion-nonfree-rawhide", "rpmfusion-nonfree-rawhide-source"
]
# Enable everything
defs​.rpmfusion = [
    # Include all repositories in defs​.rpmfusion-free above
    "@fusion-free",
    # Include all repositories in defs​.rpmfusion-nonfree-only above​.
    "@fusion-nonfree-only",
]
# Make sure that fedrq loads repositories from the system configuration​.
# This is the default but better to explicitly specify​.
system_repos = true

[releases​.branched]
defs​.fusion-free = [
    "rpmfusion-free", "rpmfusion-free-source",
    "rpmfusion-free-updates", "rpmfusion-free-updates-source"
]
defs​.fusion-nonfree-only = [
    "rpmfusion-nonfree", "rpmfusion-nonfree-source",
    "rpmfusion-nonfree-updates", "rpmfusion-nonfree-updates-source"
]
defs​.rpmfusion = [
    "@fusion-free",
    "@fusion-nonfree-only",
]

system_repos = true

Author

fedrq is maintained by Maxwell G <maxwell@gtmx.​me>.​ See https://fedrq.​gtmx.​me/ for more information about fedrq.​

See Also

fedrq(1)

Referenced By

fedrq(1).

2026-08-15