Dependency chaos. Some packagers have started with adding
Requires: %{_libdir}/pkgconfig
instead of the good old "Requires: pkgconfig". Not only is this dependency expensive -- the filelists metadata must be loaded and parsed -- it doesn't work correctly either, because
1) package "pkgconfig" is not multilib'ed, so e.g. pkgconfig.i386 is not available in the x86_64 repo, and hence nothing provides the /usr/lib/pkgconfig directory, (and it would be a broken dep) but
2) a couple of other packages include %_libdir/pkgconfig by accident, which violates the packaging guidelines. Namely:
openchange-devel 499655 ipod-sharp-devel 499658 sane-backends-devel 499659 libXScrnSaver-devel 499660 freetype-devel 499661 anthy-devel 499663
Since these are multilib'ed, a dependency on /usr/lib/pkgconfig doesn't pull in pkgconfig.i386 but one of these -devel packages instead.
[...]
Conclusively, neither "Requires: %{_libdir}/pkgconfig" nor "Requires: pkgconfig%{_isa}" will work as expected.
On Thu, 2009-05-07 at 17:26 +0200, Michael Schwendt Dependency chaos. Some packagers have started with adding
Requires: %{_libdir}/pkgconfig
instead of the good old "Requires: pkgconfig". Not only is this dependency expensive -- the filelists metadata must be loaded and parsed -- it doesn't work correctly either, because
- package "pkgconfig" is not multilib'ed, so e.g. pkgconfig.i386 is
not available in the x86_64 repo, and hence nothing provides the /usr/lib/pkgconfig directory, (and it would be a broken dep) but
- a couple of other packages include %_libdir/pkgconfig by accident,
which violates the packaging guidelines. Namely:
openchange-devel 499655 ipod-sharp-devel 499658 sane-backends-devel 499659 libXScrnSaver-devel 499660 freetype-devel 499661 anthy-devel 499663
Since these are multilib'ed, a dependency on /usr/lib/pkgconfig doesn't pull in pkgconfig.i386 but one of these -devel packages instead.
[...]
Conclusively, neither "Requires: %{_libdir}/pkgconfig" nor "Requires: pkgconfig%{_isa}" will work as expected.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thu, 2009-05-07 at 17:26 +0200, Michael Schwendt wrote:
Conclusively, neither "Requires: %{_libdir}/pkgconfig" nor
"Requires: pkgconfig%{_isa}" will work as expected.
Is it correct to use:
Requires: pkgconfig ...
%files devel %defattr(-,root,root,-) %{_libdir}/libpst.so %{_includedir}/%{name}-@LIBPST_SO_MAJOR@/ %{_libdir}/pkgconfig/libpst.pc
These days RPM automatically adds a dependency on /usr/bin/pkg-config. So in most cases where a package provides a *.pc file it should not be required to manually add the runtime dependency.
Cheerio, Debarshi
On Fri, 8 May 2009 12:51:17 +0530, Debarshi wrote:
These days RPM automatically adds a dependency on /usr/bin/pkg-config. So in most cases where a package provides a *.pc file it should not be required to manually add the runtime dependency.
Cheerio, Debarshi
"These days" translates to "Fedora >= 11". Packagers who push mass-dist-updates should not eliminate their manual "Requires: pkgconfig" yet.
The /usr/bin/* file entries can be found in the primary metadata, so dependencies on them are not as expensive as other file paths.
"These days" translates to "Fedora >= 11". Packagers who push mass-dist-updates should not eliminate their manual "Requires: pkgconfig" yet.
That is why I enclose the pkg-config related lines in a conditional block that evaluates to true only for Fedora 9 and Fedora 10.
Cheers, Debarshi
On Thu, 7 May 2009 17:26:23 +0200, Michael wrote:
Dependency chaos. Some packagers have started with adding
Requires: %{_libdir}/pkgconfig
instead of the good old "Requires: pkgconfig". Not only is this dependency expensive -- the filelists metadata must be loaded and parsed -- it doesn't work correctly either, because
- package "pkgconfig" is not multilib'ed, so e.g. pkgconfig.i386 is
not available in the x86_64 repo, and hence nothing provides the /usr/lib/pkgconfig directory, (and it would be a broken dep) but
Meanwhile, pkgconfig is being multilib'ed. For F-11 and F-12. I see pkgconfig.i386 in the x86_64 repo, and that means one could require pkgconfig%{?_isa} where automatic .pc file dependencies don't pull it in.
devel@lists.stg.fedoraproject.org