Re: Proposal: Reduce *-devel packages dependencies on other unneeded *-devel packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Igor Gnatenko wrote on 08/13/2018 06:13 PM:
On Mon, Aug 13, 2018 at 11:03 AM Dominique Martinet <
dominique.martinet@xxxxxx> wrote:

Igor Gnatenko wrote on Sun, Aug 12, 2018 at 10:46:34PM +0200:
I've submitted

https://fedoraproject.org/wiki/Changes/Stop_pulling_dependencies_for_static_libraries
to improve the situation.

I've posted on the other overlinking thread about pkgconfig and got
corrected that Requires.private is not just for static linking.


This is not what man page says.

      Requires.private
              Required dependencies that must be met for the package to be
usable for static linking.  All dependencies must be satisfied or the
pkg-config implementation must not use the package for static
              linking.  (optional; dependency list)

But this is clarify mentioned in freedesktop.org specification:

https://www.freedesktop.org/wiki/Software/pkg-config/
New and veteran users alike may find Dan Nicholson’s Guide to pkg-config informative, particularly the FAQ section which provides examples of where the Requires.private field is appropriate.

https://people.freedesktop.org/~dbn/pkg-config-guide.html
pkg-config needs to output both sets of link flags in this case to ensure that the statically linked application will find all the necessary symbols.
On the other hand, it will always output all the Cflags.

i.e. Requires.private always appears in cflags.



Short version:
  Requires = pulls in link and cflags (include paths etc)
  Requires.private = pulls in cflags and (libs if --static)
  Requires.internal = pulls in libs only with --static



Long version can be found in this freedesktop bug:
https://bugs.freedesktop.org/show_bug.cgi?id=105572

(We, fedora, use pkgconf that already has this implemented in 1.5.0 that
is in f29/rawhide; the original freedesktop pkgconfig has not yet but
would seem to agree on principle)


I will talk to pkgconf developers to clarify behavior.

So going by the same rule, Requires.private means headers from these
libs can be used... and headers are in -devel packages, so they would
need to be pulled as they currently are.


Regards,
Mamoru
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx/message/7FGUASFQDL4NDGJJC7ESTEUE3E366AP3/




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux