On Mon, Aug 19, 2019 at 12:47:20PM -0400, Todd Zullinger wrote:
Hi,
Stefan Schulze Frielinghaus wrote:
How can I list all packages which have a *build* requirement on package foo? AFAIK build requirements are not stored as meta data in RPM files. Thus, repoquery won't help. The only option I am aware of would be to download all SPEC files and search for build requirements manually. Any other ideas? If not, is there a central repository of all SPEC files?
The use case is that I would like to find out which package depends on package foo. The "normal" / runtime dependencies, i.e.,
Requires: foo
can be queried via repoquery. However, it is unclear to me how to list packages which have a build requirement, i.e.,
BuildRequires: foo
on package foo.
If you enable the '-source' repositories, you'll be able to do this with `dnf repoquery`. Something like this, I believe:
dnf repoquery --disablerepo '*' --enablerepo '*-source' --alldeps --whatrequires foo(You may want to be more selective in which source repos you enable, of course.)
I wasn't aware of this. Thanks for letting me know. It seems like the recursive option is not working like for "normal" queries, e.g.,
dnf repoquery --alldeps --recursive --whatrequires ghc-compiler
lists 600 packages while without the recursive option 586. However,
dnf repoquery --disablerepo '*' --enablerepo '*-source' --alldeps --recursive --whatrequires ghc-compiler
lists only 5 packages. I would have expected that at least some packages like "happy" or "alex" have a build requirement on the GHC compiler. Maybe not directly but at least through other dependencies.
Do I miss something here?
Cheers, Stefan