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
Providesrelationships into account π - take
Conflictsinto account π - take
Pre-Dependsinto account π - take
Build-Depends-Archinto 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β Runsapt-get updatebefore it goes searching for build-depends. Fresh lists, fresh vibes.-s,--sudoβ Usessudowhen runningapt-get update. Has no effect if-uis omitted β like, it literally does nothing on its own, bestie.--distributionβ Select another distribution, which is then searched for build-depends.--only-mainβ Ignorescontrib,non-freeandnon-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 ofdpkg-architecture -qDEB_HOST_ARCH. This option only works ifdose-extra >= 4.0is installed.--build-archβ Explicitly sets the build architecture. The default is the value ofdpkg-architecture -qDEB_BUILD_ARCH. This option only works ifdose-extra >= 4.0is installed.--no-arch-all,--no-arch-anyβ IgnoresBuild-Depends-IndeporBuild-Depends-Archwhile 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 thedebftbfsutility.--oldβ Forces the old simple behaviour withoutdose-cevesupport, even ifdose-extra >= 4.0is 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
- ubuntu stonking: devscripts 2.26.11ubuntu1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms