On Sun, Apr 28, 2019 at 11:04 PM Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> wrote:
Hi everyone,

currently, we autogenerate a dependency on pkg-config for all rpms
that ship a .pc file. "dnf repoquery --whatrequires /usr/bin/pkg-config"
returns 4632 entries on my laptop.

This has always felt backward to me: those packages *provide* something
that is used by pkg-config, they don't *require* pkg-config for anything.
As an analogy, packages with headers are read by a C compiler, but
we don't make them require gcc, and if a package ships an .so file, we
don't add a dependency on the linker to it. Instead, anything which wants
to consume .pc files should simply depend on the tools that consume those
files (pkg-config, pkgconf, or a custom re-implementation).

Proposal: let's drop the autogenerated dependency on /usr/bin/pkg-config
(this would require a trivial change in /usr/lib/rpm/pkgconfigdeps.sh).

Note: autogenerated Provides/Requires like pkgconfig(foo) are not
part of this proposal.

Advantages:
- less entries in the dependency graph
- removal of illogical dependency
- less packages installed (pkgconf, pkgconf-m4, pkgconf-pkg-config, libpkgconf)
  (Those packages are small, maybe 200k together so this isn't a strong
   reason.)

Disadvantages:
- stuff that uses pkg-config or pkgconf will need to grow a dependency
  (e.g. meson which invokes /usr/bin/pkg-config internally).
  so there will be some churn.

It would be nice to have something like Requires: (pkg-config if pkgconfig(*)) which would install pkgconf if any packages providing pkgconfig(…) are installed.. But I'm afraid we can't do that now.

Zbyszek
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org