Bug 460872

Summary: useless-explicit-provides not useless for OCaml packages
Product: [Fedora] Fedora Reporter: Richard W.M. Jones <rjones>
Component: rpmlintAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 13CC: bugs.michael, manuel.wolfshant, tcallawa, tmz
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-01-18 15:39:55 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Richard W.M. Jones 2008-09-02 08:58:47 UTC
Example:

ocaml-ocamlnet.i386: E: useless-explicit-provides ocaml(Netcgi1_compat)
ocaml-ocamlnet.i386: E: useless-explicit-provides ocaml(Netcgi)
ocaml-ocamlnet.i386: E: useless-explicit-provides ocaml(Netcgi_fcgi)

$ rpm -q --provides -p ocaml-ocamlnet-2.2.9-7.fc10.i386.rpm | grep Netcgi1_compat
ocaml(Netcgi1_compat) = 040e51a87a15ddae2cdb63d0efccaf20
ocaml(Netcgi1_compat) = 7a1ab8c08928af286149e2615562dd72

The package & its dependencies are correct.  This package provides two
distinct versions of the Netcgi1_compat module.  Developers may link with
either (via some command line options to ocamlfind).  Binary packages built
against this must link to precisely one or the other, and not to any other
version.

So this error should be suppressed for OCaml modules.

(A similar bug related to Mono packages:
https://bugzilla.novell.com/show_bug.cgi?id=282121)

Comment 1 Richard W.M. Jones 2008-09-02 09:00:16 UTC
I should also add that both of this dependencies were generated
automatically by our ocaml-find-provides script.

Comment 2 Ville Skyttä 2008-09-02 17:58:48 UTC
Suppressing is not really the right thing to do here, this is a genuine rpmlint bug.  It simply checks if the same Provides name is encountered more than once and issues a warning if yes.  It should take Provides versions and all <, <=, =, >=, > also into account and compute which are the Provides that are covered by other ones and issue a warning for those, but this is quite a bit of work so it could take some time to get it fixed.

Comment 3 Bug Zapper 2008-11-26 02:56:40 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 4 Bug Zapper 2009-11-18 08:21:16 UTC
This message is a reminder that Fedora 10 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 10.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '10'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 10's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 10 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 5 Bug Zapper 2010-03-15 12:05:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 13 development cycle.
Changing version to '13'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 6 Fedora Admin XMLRPC Client 2010-12-07 21:19:13 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 7 Tom "spot" Callaway 2011-04-25 01:20:34 UTC
I'm not sure I understand Ville's logic in comment #2. Yes, these sorts of packages will have duplicated explicit provides by design, but how is rpmlint supposed to know that these are acceptable vs incorrectly duplicated Provides, 

We can't go off the package name, that's a recipe for disaster. As is, rpmlint errs on the side of caution when generating warnings and errors, and I believe that is the correct approach. When common sense and rpmlint are in conflict, go with common sense.

I'm closing this as WONTFIX, Ville, if you can explain the bug to me as you see it in more detail, please feel free to reopen.

Comment 8 Michael Schwendt 2014-06-24 08:27:11 UTC
> ocaml(Netcgi1_compat) = 040e51a87a15ddae2cdb63d0efccaf20
> ocaml(Netcgi1_compat) = 7a1ab8c08928af286149e2615562dd72

The bug here is more of a missing feature.

rpmlint ought to notice that there are _multiple_ versions provided, and there even may be a valid reason to provide them (e.g. a package telling that it supports multiple APIs/ABIs). Calling them "E: useless-provides" (rpmlint-1.5) is a mistake. At most, it's could become a warning.


$ cat -n /usr/share/rpmlint/TagsCheck.py|less
…
   811          # TODO: should take versions, <, <=, =, >=, > into account here
   812          #       https://bugzilla.redhat.com/460872
   813          useless_provides = []
…

Comment 9 Jan Kurik 2015-12-22 11:32:20 UTC
This bug is currently assigned to an unsupported release. If you think this bug is still valid and should remain open, please re-assign it to a supported release (F22, F23) or to rawhide.

Bugs which will be assigned to an unsupported release are going to be closed as EOL (End Of Life) on January 26th, 2016.

Comment 10 Richard W.M. Jones 2015-12-22 12:06:19 UTC
The warning no longer occurs for ocaml-ocamlnet.  However that
is because ocaml-ocamlnet no longer exports two 'ocaml(Netcgi1_compat)'
provides (only one).  So I don't know if this is fixed in
rpmlint or not, although looking at the bug history I suspect
it is not fixed.

Comment 11 Tom "spot" Callaway 2016-01-18 15:39:55 UTC
Upstream is aware of that, they're the ones that will add this feature, so I'm closing this bug out (again).