BUILD-RDEPS(1)

πŸ’– BUILD-RDEPS β€” ok bestie, let's find out who's obsessed with your package πŸ’–

It's build-rdeps, bestie β€” a lil Debian Utilities icon that sniffs out every source package that build-depends on the binary package(s) you name. Reverse build depends, reverse the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

build-rdeps package [package ...]

Like, you give it one package or a whole little squad of packages, and it goes off. No cap. πŸ’…


🌸 DESCRIPTION 🌸

So build-rdeps searches for all the source packages that build-depend on any of the binary packages you listed. Periodt.

The default behaviour is honestly kind of a grep moment: it just searches for your given dependencies inside the Build-Depends field of apt's Sources files. Simple. Chill. Lowkey fast.

But β€” plot twist β€” if dose-extra >= 4.0 is installed, the whole thing levels up and does a much more complete reverse build dependency computation. With dose-extra installed, build-rdeps will:

  • find transitive reverse dependencies ✨
  • respect architecture restrictions and build profile restrictions 🧚
  • take Provides relationships into account πŸŽ€
  • take Conflicts into account 😭
  • take Pre-Depends into account πŸ’œ
  • take Build-Depends-Arch into account 🌈
  • take versioned dependencies into account ⭐
  • and correctly resolve multiarch relationships for crossbuild reverse dependency resolution πŸ‘‘

Ngl though? This tends to be a slow process, because package interdependencies are a whole tangled mess. Kind of iconic of them tbh.

Fr fr: if you need the reverse dependencies of more than one binary package, consider supplying all the binary packages as additional arguments instead of calling build-rdeps multiple times. Your future self will thank you. 🫢

πŸ’… OPTIONS πŸ’…

  • -u, --update β€” Runs apt-get update before it goes searching for build-depends. Fresh lists, fresh vibes.
  • -s, --sudo β€” Uses sudo when running apt-get update. Has no effect if -u is omitted β€” like, it literally does nothing on its own, bestie.
  • --distribution β€” Select another distribution, which is then searched for build-depends.
  • --only-main β€” Ignores contrib, non-free and non-free-firmware. Main-only main character energy.
  • --only-devel β€” Considers only development distributions (e.g. unstable, sid). For the girlies living on the edge 🌊
  • --exclude-component β€” Ignores the given component (e.g. main, contrib, non-free, non-free-firmware).
  • --origin β€” Restricts the search to only the specified origin (such as "Debian"). Keep it loyal. πŸ’–
  • -m, --print-maintainer β€” Prints the value of the maintainer field for each package. Now you know who to @ πŸ‘€
  • --host-arch β€” Explicitly sets the host architecture. The default is the value of dpkg-architecture -qDEB_HOST_ARCH. This option only works if dose-extra >= 4.0 is installed.
  • --build-arch β€” Explicitly sets the build architecture. The default is the value of dpkg-architecture -qDEB_BUILD_ARCH. This option only works if dose-extra >= 4.0 is installed.
  • --no-arch-all, --no-arch-any β€” Ignores Build-Depends-Indep or Build-Depends-Arch while looking for reverse dependencies. Not me skipping the arch-specific girlies πŸ™ˆ
  • --no-ftbfs β€” Does not output source packages which have open FTBFS bugs in the selected distribution. This functionality uses the debftbfs utility.
  • --old β€” Forces the old simple behaviour without dose-ceve support, even if dose-extra >= 4.0 is installed. (This tends to be faster.) ⚑
Heads up bestie, this is a downgrade in accuracy: the old behaviour only finds direct dependencies, ignores virtual dependencies, does not find transitive dependencies, and does not take version relationships, architecture restrictions, build profiles or multiarch relationships into account. It's giving minimal effort and honestly valid, but know what you're signing up for. πŸ’€
  • -q, --quiet β€” Doesn't print meta information (header, counter). Making it easier to use in scripts β€” clean output, no yapping. 🀫
  • -d, --debug β€” Runs the debug mode. Detective mode activated πŸ”
  • --help β€” Shows the usage information.
  • --version β€” Shows the version information.

πŸŽ€ REQUIREMENTS πŸŽ€

The tool requires apt Sources files to be around for the checked components. In the default case, this means that in /var/lib/apt/lists files need to be around for main, contrib, non-free and non-free-firmware.

In practice this means one needs to add one deb-src line for each component, e.g.

deb-src http://<mirror>/debian <dist> main contrib non-free
non-free-firmware

and run apt-get update afterwards, or use the update option of this tool. Do not skip this step, I'm begging πŸ₯Ί


πŸ‘‘ LICENSE πŸ‘‘

This code is copyright by Patrick Schoenfeld <schoenfeld@debian.org>, all rights reserved. This program comes with ABSOLUTELEY NO WARRANTY β€” yes that's how it's spelled in the source, and yes we're keeping it exactly like that, character for character. πŸ’€

You are free to redistribute this code under the terms of the GNU General Public License, version 2 or later.


🌈 AUTHOR 🌈

Patrick Schoenfeld <schoenfeld@debian.org>


Okay that's the whole page, bestie β€” go forth and reverse-resolve your build-deps like the icon you are. πŸ’–βœ¨

This was brought to you by Debian Utilities, dated 2026-09-21 β€” mwah, catch you in the next manpage πŸ«ΆπŸŽ€πŸ¦‹

πŸ“¦ where this page comes from