FEDRQ(1)

πŸ“¦
version 1.7.0 Β· 4 versions
, in epel 10, fedora 43, fedora 44

ok so this is fedrq from section 1 of the General Commands Manual, and bestie, she's giving powerful. πŸ’…

🌸 NAME 🌸

fedrq β€” Simplified repository querying. that's the whole name section, she's concise and she knows it. ✨

πŸ¦‹ SYNOPSIS πŸ¦‹

<fedrq | python -m fedrq> QUERY TYPE [OPTIONS] [PACKAGE...]

<fedrq | python -m fedrq> QUERY TYPE [OPTIONS] <-i|--stdin>

<fedrq | python -m fedrq> check-config [--dump] [--debug]

<fedrq | python -m fedrq> formatters [FORMATTERS OPTIONS...]

like, you can run her as fedrq or as python -m fedrq, either one, she doesn't care, she serves either way. 🫢

πŸ‘‘ DESCRIPTION πŸ‘‘

fedrq is a tool to simplify querying the Fedora and EPEL repositories. that's literally her whole job and she ate. πŸ”₯

πŸ’€ SUBCOMMANDS πŸ’€

  • check-config β€” verify fedrq configuration. ngl she only has --debug and --dump, and --dump dumps the config. heads up though: --dump requires tomli-w. πŸŽ€
  • pkgs β€” find the packages that match a list of package specs. allows --whatprovides-like functionality with the --resolve-packages flag. πŸ’–
  • subpkgs β€” find the subpackages provided by a list of SRPMs. doesn't support a --src flag, because subpkgs aren't SRPMs (the audacity of them, honestly). 😭
  • whatenhances β€” find the packages that Enhance [PACKAGE...]
  • whatrecommends β€” find the packages that Recommend [PACKAGE...]
  • whatrequires β€” find the packages that Require [PACKAGE...]
  • wr β€” alias for whatrequires
  • whatrequires-src β€” find the packages Require the subpackages of [PACKAGE...]. [PACKAGE...] must be source package(s). ⭐
  • wrsrc β€” alias for whatrequires-src
  • whatsuggests β€” find the packages that Suggest [PACKAGE...]
  • whatsupplements β€” find the packages that Supplement [PACKAGE...]
  • make-cache β€” load the repodata for the current branch/repo config 🌈
  • download β€” download an RPM from the repos. no GPG checking is performed. ⚠️
  • download-spec β€” download an (S)RPM and extract its specfile. no GPG checking is performed. ⚠️

✨ OPTIONS ✨

🌟 GLOBAL OPTIONS 🌟

  • -h, --help β€” show help message and quit. you can also drop it after a command to get more information about that command. πŸ‘‘

πŸ’… SHARED OPTIONS πŸ’…

these options have the same meaning across multiple subcommands, so no plot twists, bestie.

  • -i, --stdin β€” read package names from stdin. cannot be used when passing positional [PACKAGE...]. pick a lane. πŸ™ˆ
  • -b BRANCH NAME, --branch BRANCH NAME (default: rawhide) β€” distribution release. this matches distgit branch names by convention. see BUILTIN RELEASES for the releases available out of the box. extra configurations may be specified by the user. the chosen release impacts what the value of $releasever is and which repositories will be enabled by default. πŸ¦‹
  • -r REPO CLASS, --repo REPO CLASS (default: @base) β€” enable REPO CLASS and disable all others for this operation. REPO CLASS can be a standard repoid that's configured in /etc/yum.repos.d or a custom one specified in a ReleaseConfig's defpaths (see fedrq(5)). in addition, release-specific repo groups and generic release class macros (e.g., @copr) are accepted. when --repo isn't specified, the repositories in a Release's @base repo group are selected. see REPO CLASSES for more info. πŸ’–
  • -e REPO CLASS, --enablerepo REPO CLASS β€” enable certain repositories for this operation. all repositories in the system configuration and any fedrq repo classes are accepted. the option can be specified multiple times. accepts comma separated values. see REPO CLASSES. ✨
  • -l <integer|"all">, --latest <integer|"all"> (default: 1) β€” how many package versions to show for a given name.arch. by default, only the latest is included.
NOTE: dnf repoquery includes all by default. (not her. she's picky. πŸ’…)
  • -F, --formatter <str> (default: plain) β€” how the output should be formatted. this is similar to dnf repoquery --qf but more limited. all Package attributes from dnf repoquery --querytags are supported. some custom formatters are also available. see FORMATTERS for a list. 🌸
  • --debug β€” enable debug logging. useful for development or bug reporting. πŸ›
  • -P, --resolve-packages β€” resolve the correct Package when given a virtual Provide or file path. for instance, /usr/bin/yt-dlp would resolve to yt-dlp. iconic behaviour, honestly. πŸ‘‘
  • -A <str>, --arch <str> β€” only include packages that match this arch. this does not apply --forcearch.
NOTE: unlike other tools, the -source repositories are always enabled. you need to filter out src packages if you don't want them in the output. 😭
  • -s, --src β€” equivalent to --arch=src.
NOTE: the semantics of this option are different than dnf repoquery's version. our --arch does not affect the way the input is handled. in dnf repoquery, --arch=src effectively disables querying for source packages that depend on a virtual Provide of the input packages, because arch filtering is applied when resolving the input packages' virtual Provides and files. πŸ’€ (yeah. it's a whole thing.)
  • -S, --notsrc β€” equivalent to --arch=notsrc. this is a pseudo arch that does not exist in rpm. it includes noarch and the system architecture. it does NOT include multilib. periodt. πŸŽ€
  • --forcearch ARCHITECTURE β€” query a foreign architecture's repositories 🌍
  • -B <dnf|libdnf5>, --backend <dnf|libdnf5> β€” which package manager backend to use. by default, fedrq uses dnf and falls back to libdnf5. set -B / --backend to make an explicit choice. if you explicitly choose a backend whose dependencies are not met on your system, fedrq will not fallback to another one. so choose wisely, bestie. πŸ™ˆ
  • -L <always|auto|never>, --filelists <always|auto|never> (default: auto) β€” whether to load filelists. by default, filelists are only loaded when using the files formatter (i.e. -F files or -F json:files). this only applies when using the libdnf5 backend or newer versions of dnf4, which do not load filelists by default to save memory and bandwidth. dnf < 4.19.0 always loads filelists. πŸ¦‹
  • --refresh β€” force refresh repository metadata πŸ”₯

πŸŽ€ whatrequires, whatrecommends, whatsuggests πŸŽ€

  • -X, --exclude-subpackages β€” filter out reverse dependencies that are built from the same source package as any of the input packages. see the whatrequires EXAMPLES. πŸ’…

πŸ“ subpkgs πŸ“

  • -M PATTERN, --match PATTERN (can be repeated to match against multiple patterns) β€” only show subpackages whose name matches this string. glob patterns are permitted. when specified multiple times, any match is included. ✨

🧚 download and download-spec 🧚

  • -o PATH, --destdir PATH β€” directory in which to download/extract files. defaults to the current directory. πŸ“

🌈 formatters 🌈

the formatters subcommand lists available formatters. by default, all available formatters are shown, but they can be filtered by passing one or more of the following options.

  • --attrs, --only-attrs β€” only list package attributes
  • --formatters, --only-formatters β€” only list regular formatters
  • --special-formatters, --only-special-formatters β€” only list special formatters (i.e., formatters that accept their own arguments) πŸ’…

✨ FORMATTERS ✨

πŸŽ€ Package attributes

okay so this list is non-exhaustive bestie, fr fr. Run fedrq formatters --attrs to see the whole menu πŸ’…

  • -F name β€” just the package names, nothing else
    • example line: yt-dlp
  • -F arch β€” only the arches, that's it
    • example line : noarch
  • -F repoid β€” shows you which repo the package came from
    • example line: updates-testing

🌸 Regular formatters

  • -F na β€” package name.arch
    • example line: yt-dlp.noarch
  • -F nv β€” package name-version
    • example line: yt-dlp-2022.11.11
  • -F nev β€” package name-epoch:version
    • example line: bind-32:9.18.8
  • -F source β€” package queries can include both source and binary RPMs, and this formatter combines and deduplicates all of the source names. So like, if python3-setuptools.noarch is in the result, it'll become python-setuptools. And if python-setuptools.src is also in the result, it'll become python-setuptools too, but python-setuptools won't get duplicated in the output. no double-dipping 🫢
  • -F breakdown β€” only supported by fedrq --whatrequires. Shows a breakdown of runtime and buildtime dependencies.

πŸ¦‹ Special formatters

"Special formatters" accept arguments. yes queen, they take input.

  • -F json:[comma separated list of Package attrs] β€” returns an array of objects containing the Package attributes you asked for. The JSON output is formatted with indent=2. You can pipe the output straight into jq 😌
  • -F line:[comma separated list of Package attrs] β€” puts the package attributes you specified all on a single line.
NOTE: the attributes you provide must fit on one line. Attributes such as files or requires that contain a list of items are not supported by the line formatter. See -F multiline for that usecase.
  • -F multiline:[single line attribute],[multiline attribute] β€” displays two package attributes together.
    • example call: -F multiline:name,files
    • example line: yt-dlp : /usr/bin/yt-dlp
  • -F queryformat:[format string] β€” a formatter that accepts a queryformat string, just like dnf repoquery --qf
  • -F qf:[format string] β€” alias to the queryformat formatter
  • -F plainwithrepo β€” shows the default format and the repoid separated by a space:
    • example line: yt-dlp-2023.01.06-2.fc38.noarch rawhide
  • -F nevrr β€” alias to the plainwithrepo formatter.
  • -F requiresmatch:[comma- or semicolon-separated list of packages] β€” lists the Requires of [package ...] that resolve to the list of packages you handed to requiresmatch. Like for example, python3dist(ansible-core) resolves to requiresmatch:ansible-core. it's giving matchmaker πŸ’˜
  • -F rm:[comma- or semicolon-separated list of packages] β€” alias for -F requiresmatch
  • -F na-requiresmatch:[comma- or semicolon-separated list of packages] β€” combines -F na and -F requiresmatch on a single line. Peep the whatrequires EXAMPLES for usage.
  • -F narm:[comma- or semicolon-separated list of packages] β€” shortcut for -F na-requiresmatch
  • -F source+requiresmatch:[comma- or semicolon-separated list of packages] β€” combines -F source and -F requiresmatch on a single line.
  • -F source+rm:[comma- or semicolon-separated list of packages] β€” shortcut for -F na-requiresmatch

There are also requiresmatch-src / rmsrc and na-requiresmatch / narmsrc formatters that work similarly to their non-src counterparts, except they take a list of source packages. That list of source packages gets converted into a list of binary packages (like the subpkgs subcommand does) and then processed the same way. So if, say, a source package named foo has foo, foo-devel, and foo-static subpackages, then -F rmsrc:foo is equivalent to -F rm:foo,foo-devel,foo-static πŸͺ„


πŸ‘‘ REPO CLASSES

These generic repo class macros are available for all releases:

  • @file:[url or local path] β€” loads a .repo file from a local path or a url. Repositories with enabled=0 won't be loaded unless they're enabled explicitly with --enablerepo.
  • @baseurl:[url] β€” loads a repository from [url]. Heads up: gpgcheck will be disabled. πŸ™ˆ
  • @baseurl:[url],[gpgkey] β€” loads a repository from url and sets its gpgkey to [gpgkey]
  • @copr:[user/name] or @copr:[@group/name] β€” loads a Copr repository. The Copr instance defaults to https://copr.fedoraproject.org but it may be configured in fedrq's configuration. copr_chroot_fmt must be specified in the selected branch's release configuration for this repo class to work. This is configured for the builtin releases.
  • @copr:[user/name@copr_baseurl] or @copr:[@group/name@copr_baseurl] β€” the @copr repo class also accepts a custom Copr instance. Just append @ and a url.
  • @source-repos β€” enables the corresponding -source repos of the repositories that are currently enabled
  • @base or base or other group β€” the default repositories for a release, specified in a ReleaseConfig's defs.base. Any other repo group specified in a release's configuration is accepted too, with or without the @. See SPECIAL REPOS for which repo groups are available for each release.
  • @repo:[key] or key (fallback) β€” accepts any repoid available in the system configuration or a .repo file specified in the current ReleaseConfig's defpaths. And if key is the name of a release's repo group (see above), that gets enabled instead. versatile icon πŸ’…

And these generic repo class macros are available for Fedora and EPEL releases:

  • @koji:[key] β€” loads the repositories for a koji.fedoraproject.org tag.
    • Example: @koji:f39-build-side-XXXX
  • @koji-src:[key] β€” loads the source repositories for a koji.fedoraproject.org tag. It does not seem that Fedora Koji provides source repositories for tags other than rawhide and eln-build. For rawhide, see the preconfigured @buildroot repository group.

🌈 ENVIRONMENT VARIABLES

  • $FEDRQ_BRANCH β€” see --branch. This sets the default branch if it's not specified via CLI.
  • $FEDRQ_BACKEND β€” see --backend. This sets the default backend if it's not specified via the CLI.

✨ BUILTIN RELEASES ✨

okay so this is the big one, bestie. fedrq ships with a whole roster of releases already baked in β€” you don't have to configure anything, you just point at one and go. Each one comes with three things: a matcher (that's the thing you hand to --branch), a set of release repo groups (that's what you hand to --repo), and sometimes some special cases where the repos do something extra spicy that you just need to know about. 🫢

Here's the entire roster, one icon at a time. πŸ’…


πŸ¦‹ Fedora Rawhide

  • Matcher (--branch): rawhide
  • Release repo groups (--repo): @base, @buildroot
  • Special cases: nope, nothing extra β€” she's uncomplicated and we love that for her ✨

πŸ¦‹ Fedora stable and branched

  • Matcher (--branch): fXX
  • Release repo groups (--repo): @base, @testing, @release, @updates, @testing-only
  • Special cases: @release only contains fedora and fedora-source β€” i.e. no updates. so if you wanted updates in there, no she didn't πŸ’€

πŸ¦‹ EPEL

  • Matcher (--branch): epelX
  • Release repo groups (--repo): @base, @testing, @testing-only
  • Special cases: does not include any EL distribution. like, at all. it's just out here doing its own thing 🌸

πŸ¦‹ EPEL Next

  • Matcher (--branch): epelX-next
  • Release repo groups (--repo): @base, @testing, @testing-only, @next-base, @next-testing, @next-testing-only
  • Special cases: @base, @testing, and @testing-only are supersets of the epelX equivalent. Meanwhile @next-base, @next-testing, and @next-testing-only only contain epel-next. two flavours, one icon πŸ‘‘

πŸ¦‹ CentOS 7

  • Matcher (--branch): c7
  • Release repo groups (--repo): @base
  • Special cases: none, it's giving simple and nostalgic πŸŽ€

πŸ¦‹ CentOS Stream

  • Matcher (--branch): cXs
  • Release repo groups (--repo): @base, @epel, @no-crb, @compose-latest
  • Special cases: @epel contains epel, epel-next, and crb. And @no-crb contains base minus the crb repo. so if crb is not the vibe for you, @no-crb is your girl πŸ’œ

πŸ¦‹ CentOS Stream 8 (legacy)

  • Matcher (--branch): c8s
  • Release repo groups (--repo): @base, @epel, @no-powertools, @compose-latest
  • Special cases: @epel contains epel, epel-next, baseos, appstream, and powertools. And @no-powertools contains @base minus the powertools repo. yes it's legacy, no we don't talk about it, but she's still on the list 🫑

πŸ¦‹ Almalinux

  • Matcher (--branch): alX
  • Release repo groups (--repo): @base, @epel, @no-crb
  • Special cases: @base always includes crb. @epel contains @base along with the EPEL repository. And @no-crb contains @base minus the crb repository. so @base is the main character here, periodt πŸ‘‘

πŸ¦‹ Almalinux 8 (Legacy)

  • Matcher (--branch): al8
  • Release repo groups (--repo): @base, @epel, @no-powertools
  • Special cases: @base always includes powertools. @epel contains @base along with the EPEL repository. And @no-powertools contains @base minus the powertools repository. same energy as her older sister, different repo name πŸ’œ

πŸ¦‹ UBI

  • Matcher (--branch): ubiX
  • Release repo groups (--repo): @base, @epel, @no-crb
  • Special cases: nothing extra to report, she's chill 🌈

πŸ¦‹ Oracle Linux 8 and 9

  • Matcher (--branch): ol8 / ol9
  • Release repo groups (--repo): @base, @epel, @no-crb, @extra
  • Special cases: @extra contains the distro_builder and UEK repos. that's the whole tea β˜•

πŸ¦‹ Rocky Linux 8

  • Matcher (--branch): rl8
  • Release repo groups (--repo): @base, @epel, @no-powertools
  • Special cases: none, clean, no drama, iconic πŸ’…

πŸ¦‹ Rocky Linux 9+; local should always be last in the above table

  • Matcher (--branch): rl9
  • Release repo groups (--repo): @base, @epel, @no-crb
  • Special cases: none β€” but bestie, heads up: local should always be last in the table above. that's not a suggestion, that's the law 🚨

πŸ¦‹ Amazon Linux

  • Matcher (--branch): amazon2023
  • Release repo groups (--repo): @base
  • Special cases: nope, she keeps it simple πŸ“

πŸ¦‹ Fedora ELN

  • Matcher (--branch): eln
  • Release repo groups (--repo): @base, @no-crb, @buildroot
  • Special cases: nothing extra, just out here being the buildroot bestie she is 🧚

πŸ¦‹ Default local system

  • Matcher (--branch): local
  • Release repo groups (--repo): N/A
  • Special cases: This uses the default…

…and the last two rows of that table, since we're mid-scroll bestie:

  • Default local system repositories β€” this one is the repositories class, and what it does is grab the repositories with enabled=1 in /etc/yum.repos.d and and the system's releasever.
  • Default local system repositories with a different releasever β€” this one's the local:[releasever] class, the middle cell literally just says N/A, and it uses the default repositories with enabled=1 in /etc/yum.repos.d and and a custom releasever.
not the manpage saying "and and" 😭 iconic typo behavior, we're keeping it, no notes πŸ’…

🌈 SPECIAL REPOS 🌈

These are the little magic nicknames that stand in for whole groups of repos, and they are so handy, fr fr:

  • @base β€” the release repositories that are enabled by default in the distro. Like for Fedora stable that's fedora, fedora-source, updates, updates-source.
  • @testing β€” a superset of base, but with the -testing repos also enabled. Like for Fedora stable that's fedora, fedora-source, updates, updates-source, updates-testing-source.
  • @testing-only β€” this one's the -testing repositories without base. Like updates-testing, updates-testing-source for Fedora stable.
  • @buildroot (rawhide only) β€” Koji buildroot repositories. Okay so heads up: buildroot repositories are available for stable Fedora releases, but they don't have corresponding source repos, and that causes problems for fedrq, so those definitions are not available. Just so you know. 🫢

πŸ“ FILES πŸ“

πŸ› οΈ CONFIGURATION πŸ› οΈ

  • PYTHON_SITELIB/fedrq/data/*.toml β€” the builtin configuration files. Bestie, do not modify these directly. You can override them, or peek at them as examples, but leave the originals alone, okay? πŸ™ˆ
  • /etc/fedrq/*.toml β€” system wide configuration files. These have precedence over the builtin configuration files.
  • ~/.config/fedrq/*.toml β€” user configuration files. Highest precedence. Yours wins, main character energy. πŸ‘‘

See fedrq(5) for the configuration file syntax.


πŸŽ€ EXAMPLES πŸŽ€

Okay this is the part everyone actually reads, and honestly? Correct. Let's go. ✨

pkgs

Find a package's runtime dependencies:

$ fedrq pkgs -S -F requires ansible
/usr/bin/python3
/usr/bin/bash
python(abi) = 3.11
(python3.11dist(ansible-core) >= 2.14.1 with python3.11dist(ansible-core) < 2.15)

Resolve a package's runtime dependencies:

$ fedrq pkgs -S -F requires ansible | fedrq pkgs -iSP
ansible-core-2.14.1-1.fc38.noarch
bash-5.2.9-3.fc38.x86_64
python3-3.11.1-1.fc38.x86_64

Find the package(s) that contain(s) a file on f35:

$ fedrq pkgs -b f35 -P /usr/bin/ansible
ansible-2.9.27-4.fc35.noarch
ansible-core-2.12.10-1.fc35.noarch

Return a JSON object containing certain package attributes:

$ fedrq pkgs scdoc -F json:name,evr,arch,files,requires
[
  {
    "name": "scdoc",
    "evr": "1.11.2-3.fc37",
    "arch": "x86_64",
    "requires": [
      "rtld(GNU_HASH)",
      "libc.so.6(GLIBC_2.34)(64bit)",
      "/usr/bin/pkg-config"
    ],
    "files": [
      "/usr/bin/scdoc",
      "/usr/lib/.build-id",
      "/usr/lib/.build-id/c1",
      "/usr/lib/.build-id/c1/62fcbc2f7d9b41ce409071b05905bdbfa6ffe7",
      "/usr/share/doc/scdoc",
      "/usr/share/doc/scdoc/README.md",
      "/usr/share/licenses/scdoc",
      "/usr/share/licenses/scdoc/COPYING",
      "/usr/share/man/man1/scdoc.1.gz",
      "/usr/share/man/man5/scdoc.5.gz",
      "/usr/share/pkgconfig/scdoc.pc"
    ]
  },
  {
    "name": "scdoc",
    "evr": "1.11.2-3.fc37",
    "arch": "src",
    "requires": [
      "make",
      "gcc",
      "sed"
    ],
    "files": [
      "/scdoc-1.11.2.tar.gz",
      "/scdoc.spec"
    ]
  }
]

Show packages' name, evr, arch, and reponame with each package on a single line:

$ fedrq pkgs ansible ansible-core -F line:name,evr,arch,reponame
ansible : 7.2.0-1.fc38 : noarch : rawhide
ansible : 7.2.0-1.fc38 : src : rawhide-source
ansible-core : 2.14.2-1.fc38 : noarch : rawhide
ansible-core : 2.14.2-1.fc38 : src : rawhide-source

Incorrect usage of the line filter:

$ fedrq pkgs ansible ansible-core -F line:name,evr,files
ERROR: 'line' FormatterError: invalid argument 'files'
See fedrq(1) for more information about formatters.

(files cannot fit on a single line)

like, they physically cannot, bestie, there's a whole tree in there 😭

Find the latest version of fedrq available in the gotmax23/fedrq-dev copr:

$ fedrq pkgs -F nevrr -b f36 -r @copr:gotmax23/fedrq-dev fedrq
fedrq-0.4.1^25.20230318.76d7910-1.fc36.noarch copr:copr.fedorainfracloud.org:gotmax23:fedrq-dev
fedrq-0.4.1^25.20230318.76d7910-1.fc36.src copr:copr.fedorainfracloud.org:gotmax23:fedrq-dev

In a single query, print the Requires of more than one package:

$ fedrq pkgs -F requires ansible-core.src yt-dlp.noarch
make
python3-devel
python3dist(packaging)
[...]
/usr/bin/python3
python3.12dist(requests)
python3.12dist(urllib3)
[...]

In a single query, print the Requires of more than one package, qualified by package name:

$ fedrq pkgs -F multiline:name,requires ansible-core.src yt-dlp.noarch
ansible-core : make
ansible-core : python3-devel
ansible-core : python3dist(packaging)
[...]
yt-dlp : /usr/bin/python3
yt-dlp : python3.12dist(requests)
yt-dlp : python3.12dist(urllib3)
[...]

whatrequires

Find the packages that require another package, at buildtime or runtime:

$ fedrq whatrequires yt-dlp
audiotube-24.01.95-1.fc40.src
audiotube-24.01.95-1.fc40.x86_64
celluloid-0.26-1.fc40.x86_64
gpodder-3.11.4-4.fc40.noarch
lollypop-1.4.37-7.fc40.noarch
media-downloader-4.2.0-4.fc40.x86_64
persepolis-3.2.0-16.fc40.noarch
video-downloader-0.12.10-3.fc40.noarch
yt-dlp-bash-completion-2023.12.30-2.fc40.noarch
yt-dlp-fish-completion-2023.12.30-2.fc40.noarch
yt-dlp-zsh-completion-2023.12.30-2.fc40.noarch

Find a package's reverse dependencies, excluding subpackages:

$ fedrq whatrequires -X yt-dlp
audiotube-24.01.95-1.fc40.src
audiotube-24.01.95-1.fc40.x86_64
celluloid-0.26-1.fc40.x86_64
gpodder-3.11.4-4.fc40.noarch
lollypop-1.4.37-7.fc40.noarch
media-downloader-4.2.0-4.fc40.x86_64
persepolis-3.2.0-16.fc40.noarch
video-downloader-0.12.10-3.fc40.noarch

Find the packages that require another package, at buildtime or runtime and show which package spec it depends on.

$ fedrq whatrequires -F multiline:plain,rm:ansible-core: ansible-core
ansible-9.2.0-1.fc40.noarch : (python3.12dist(ansible-core) >= 2.16.3 with python3.12dist(ansible-core) < 2.17)
ansible-9.2.0-1.fc40.src : (python3dist(ansible-core) >= 2.16.3 with python3dist(ansible-core) < 2.17)
ansible-bender-0.10.1-5.fc40.noarch : (ansible-core or ansible)
ansible-collection-ansible-netcommon-6.0.0-3.fc40.noarch : (ansible-core or (ansible < 2.10.0 with ansible >= 2.9.10))
[...]

Shortcut for the above:

$ fedrq whatrequires -F narm:ansible-core ansible-core
ansible.noarch : (python3.12dist(ansible-core) >= 2.16.3 with python3.12dist(ansible-core) < 2.17)
ansible.src : (python3dist(ansible-core) >= 2.16.3 with python3dist(ansible-core) < 2.17)
ansible-bender.noarch : (ansible-core or ansible)
ansible-collection-ansible-netcommon.noarch : (ansible-core or (ansible < 2.10.0 with ansible >= 2.9.10))
[...]

subpkgs

Find an epel9 SRPM's subpackages:

$ fedrq subpkgs -b epel9 -F na epel-release
epel-next-release.noarch
epel-release.noarch

whatrequires-src / wrsrc (alias)

Find the components that would be directly affected by the removal of pcre:

$ fedrq whatrequires-src -X -F source pcre
ClanLib
Thunar
adanaxisgpl
aide
[...]
xgrep
xmlcopyeditor
yara
zsh

Find the packages the need to be rebuilt when libindi's .so name is bumped:

$ fedrq whatrequires-src -X -F source libindi
indi-3rdparty-drivers
indi-3rdparty-libraries
kstars
phd2

πŸ‘‘ AUTHOR πŸ‘‘

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


πŸ¦‹ SEE ALSO πŸ¦‹

fedrq(5), dnf(1)


and that's the whole page, bestie, you made it to the end πŸŽ‰ go forth and query some packages, you absolute legend. this was the FEDRQ(1) manual, dated 2026-07-13 β€” bookmark it, screenshot it, tattoo it, whatever, just come back when you need it. mwah πŸ’–βœ¨

πŸ“¦ where this page comes from