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