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

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

 



On 08/12/2018 10:50 AM, Igor Gnatenko wrote:
On Sat, Aug 11, 2018 at 10:01 PM Robert Marcano <robert@xxxxxxxxxxxxxxxxx <mailto:robert@xxxxxxxxxxxxxxxxx>> wrote:

    Greetings.


Hello,

    Current *-devel packages tend to pull a lot of dependencies,
    probably to
    make developers life easier, but I think some of them are not needed.

    For example, someone developing against krb5-devel for a GSSAPI client,
    probably doesn't need openssl-devel installed, that they are linking
    against Kerberos doesn't means they use the same crypto library
    directly, they could use nss for example.


⋊> ~ rpm -qR krb5-devel | grep openssl | wc -l 16:47:02
0

This is weird, before I forced with --nodeps I got this, after a "dnf remove openssl-devel" (thanks dnf.log for logging even not accepted transactions), any ideas why? DNF bug?


==========================================================================================================================================================================================
 Package                                            Arch                                  Version                                           Repository                               Size
==========================================================================================================================================================================================
Removing:
 openssl-devel                                      x86_64                                1:1.1.0h-3.fc28                                   @fedora                                 2.9 M
Removing dependent packages:
 krb5-devel                                         x86_64                                1.16.1-13.fc28                                    @updates                                1.0 M
 nodejs-devel                                       x86_64                                1:8.11.3-1.fc28                                   @updates                                 31 M
Removing unused dependencies:
 http-parser-devel                                  x86_64                                2.8.0-1.fc28                                      @fedora                                  18 k
 keyutils-libs-devel                                x86_64                                1.5.10-6.fc28                                     @fedora                                  33 k
 libcom_err-devel                                   x86_64                                1.44.2-0.fc28                                     @updates                                 17 k
 libselinux-devel                                   x86_64                                2.8-1.fc28                                        @updates                                187 k
 libsepol-devel                                     x86_64                                2.8-1.fc28                                        @updates                                127 k
 libuv-devel                                        x86_64                                1:1.22.0-1.fc28                                   @updates                                 90 k
 libverto-devel                                     x86_64                                0.3.0-5.fc28                                      @fedora                                  26 k
 nodejs-packaging                                   noarch                                17-1.fc28                                         @updates                                 27 k
 pcre2-devel                                        x86_64                                10.31-8.fc28                                      @updates                                1.8 M
 pcre2-utf32                                        x86_64                                10.31-8.fc28                                      @updates                                550 k
 zlib-devel                                         x86_64                                1.2.11-8.fc28                                     @updates                                138 k

Transaction Summary
==========================================================================================================================================================================================
Remove  14 Packages



Do you have better example?

    This is somewhat related to the remove excessive linking change [1]. We
    could help developers detect they are over linking by not installing
    unnecessary *-devel dependencies. So in summary, the proposal is to
    reduce inter *-devel packages dependencies, and only add them when one
    module exports symbols, data structures or other stuff that make
    linking
    against the other library necessary.


Auto-generated pkgconfig() dependencies take Requires.private into account which adds quite some dependencies which are needed only when you are using pkg-config --static, but if you don't ship static library - it is just useless.

In order to solve this problem, we need to change dependency generator to produce something like:
Provides: pkgconfig(foo)
Requires: (pkgconfig(foo) if pkgconfig-static(foo))

And ask packagers to manually put Provides: pkgconfig-static(foo) into their -static subpackages.

Does above sound reasonable?

    Note: this all started with bug 1613852 [2], where nodejs-devel is
    pulling compat-openssl10-devel and my NodeJS development needs don't
    require to link to OpenSSL (the native module being built doesn't do
    crypto), but for others projects I really need openssl-devel (not
    compat*) and both, openssl-devel and compat-openssl10-devel conflicts


    [1] https://fedoraproject.org/wiki/Changes/RemoveExcessiveLinking
    [2] https://bugzilla.redhat.com/show_bug.cgi?id=1613852

--

-Igor Gnatenko



_______________________________________________
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/KCFXB2GD3PGY6M6MADOXKUNPNWXASDRY/

_______________________________________________
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/JE6PZTKQLUYC4HB3SG4CHGY7DHZXTK2G/




[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