FEDRQ(5)
π FEDRQ(5) β the fedrq config files, bestie β¨
okay so you found the manual page for fedrq config files (that's the File Formats Manual one, not the command one, don't get it twisted π«Ά) and honestly? it's giving "simplified repository querying" and it ATE. let's get into it.
πΈ NAME πΈ
fedrq β Simplified repository querying. that's it. that's the whole name. iconic.
β¨ SYNTAX β¨
so the tea is: fedrq uses the TOML syntax for its configuration files. that's the vibe. TOML girlies stay winning π
π¦ DIRECTORIES π¦
there are like, three (3) places config files can live, and they have a whole hierarchy situation going on. precedence queen behavior:
PYTHON_SITELIB/fedrq/data/*.tomlβ these are the builtin configuration files. ngl bestie, do not modify these directly, okay? π you may override them, or use them as examples (which is actually such a good idea, they're basically free inspo)./etc/fedrq/*.tomlβ system wide configuration files. these have precedence over the builtin ones, so they get to talk over them π~/.config/fedrq/*.tomlβ user configuration files. highest precedence π top level options andreleasesin the[releases]table can be redefined by creating a configuration file with higher precedence. so you can literally just make a higher-precedence file and rewrite the top level options and the releases. main character energy fr fr.
π OPTIONS π
here's every single one, no skips, no crumbs left behind:
default_branch <str>(default:rawhide) β what branch to query by default when-b/--branchis not specified. it's the fallback babe πsmartcache <bool|Literal["always"]>(default:true) β okay so different releases have different releasevers. switching the releasever (i.e. passing a different value to--branch) clears the dnf cache. whensmartcacheistrue,fedrqsetsbase.conf.cachedirto$XDG_CACHE_DIR/fedrq/BRANCHwhen changing the releasever. unlesssmartcacheis set toalways, the system cache is used if the requested branch's releasever is the same as the system's releasever. she's smart, that's the point πreleases <dict[str, ReleaseConfig]>β keys are a friendly name for the distribution. RELEASE specifies the format for the values. (see below bestie, there's a whole section β¬οΈ)filelists <always|never|auto>(default:auto) β see--filelistsinfedrq(1)π«Άbackend <dnf|libdnf5>β see--backendinfedrq(1)π«Ά
π RELEASE π
this is what goes inside each release entry, k? each one is a whole little moment:
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 abasedef. like, non-negotiable. periodt.
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>β a Python regex to match-b/--branchnames against. regexes must have one capture group to use as the branch's releasever. exactly one, don't be greedy (well, greedy quantifiers are fine, greedy capture groups are not).
# example:
matcher = "^(rawhide)$"
# or
matcher = "^f(\d{2})$"
defpaths <list of paths>(default:[]) β list of.repofiles to load. All repo(s) MUST haveenabled=0.fedrqwill enable the appropriate repos that are specified indefsfor 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}orepel-{version}orfedora-rawhide) β name of the Copr chroot that corresponds to this release.{version}will be replaced with the releasever. it's like mad libs but for chroots β¨system_repos <bool>(default:true) β whether to load the system repository configuration. if all of the repository definitions are specified indefpaths, 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. so like, if you already brought your own repos, don't also grab the system's. sharing is not always caring π
π§ EXAMPLES π§
here are some example configuration snippets. real ones. you can literally copy these.
configuring RPMFusion π
- Install the applicable rpmfusion release packages.
$ sudo dnf install \
rpmfusion-free-release rpmfusion-free-release-rawhide \
rpmfusion-nonfree-release rpmfusion-nonfree-release-rawhide
- 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
bestie the @fusion-free syntax is literally including all the repos from that other def. it's defs referencing defs. so meta. slay π
π AUTHOR π
fedrq is maintained by Maxwell G <maxwell@gtmx.me>. see https://fedrq.gtmx.me/ for more information about fedrq. ty for your service king π«‘
π SEE ALSO π
fedrq(1)β the command itself, go read it, it's right there
and that's the whole page bestie, you're officially a fedrq config girly now β¨
this lil doc is from the File Formats Manual, version-dated 2026-07-13, and it's filed under FEDRQ(5) π mwah, go configure something cute ππ¦
π¦ where this page comes from
- epel 10: fedrq 1.7.0-1.el10_3 Β· GPL-2.0-or-later AND Unlicense AND MIT AND PSF-2.0
- fedora 43: fedrq 1.7.0-1.fc43 Β· GPL-2.0-or-later AND Unlicense AND MIT AND PSF-2.0
- fedora 44: fedrq 1.7.0-1.fc44 Β· GPL-2.0-or-later AND Unlicense AND MIT AND PSF-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms