On 08/12/2018 10:50 AM, Igor Gnatenko wrote:
On Sat, Aug 11, 2018 at 10:01 PM Robert Marcano <rob...@marcanoonline.com <mailto:rob...@marcanoonline.com>> 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@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@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/message/KCFXB2GD3PGY6M6MADOXKUNPNWXASDRY/

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@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/message/JE6PZTKQLUYC4HB3SG4CHGY7DHZXTK2G/

Reply via email to