Bug 894029 - Building coccinelle rpm: missing several (automatic) provides: ocaml(..whatever...)
Summary: Building coccinelle rpm: missing several (automatic) provides: ocaml(..whatev...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: coccinelle
Version: 17
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Richard W.M. Jones
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-01-10 14:55 UTC by Håkon Løvdal
Modified: 2013-08-01 09:53 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-08-01 09:53:41 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Håkon Løvdal 2013-01-10 14:55:37 UTC
Description of problem:

The current release of coccinelle for Fedora 17 is 1.0.0-rc9 while the latest upstream release is 1.0.0-rc16. Downloading the srpm and updating the spec file to build the newest release works fine, but then when trying to install those new rpm files yum fails because it requires certain versions of ocaml modules that it only finds such in the yum repository for the older coccinelle package.

E.g.

(root) jobbpc:~>yum localinstall ~hlovdal/rpmbuild/001/RPMS/x86_64/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64.rpm 
Loaded plugins: auto-update-debuginfo, changelog, downloadonly, etckeeper, fastestmirror, langpacks, list-data, presto, refresh-packagekit, security, verify
Examining /home/hlovdal/rpmbuild/001/RPMS/x86_64/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64.rpm: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
Marking /home/hlovdal/rpmbuild/001/RPMS/x86_64/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package coccinelle.x86_64 0:1.0.0-0.rc16.0.bf_fc17 will be installed
--> Processing Dependency: ocaml(Ast0_cocci) = 40bed8166018981502b96bafd9d809da for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
Loading mirror speeds from cached hostfile
 * fedora: fedora.uib.no
 * fedora-debuginfo: fedora.uib.no
 * rpmfusion-free: fedora.uib.no
 * rpmfusion-free-debuginfo: fedora.uib.no
 * rpmfusion-free-updates: fedora.uib.no
 * rpmfusion-free-updates-debuginfo: fedora.uib.no
 * updates: fedora.uib.no
 * updates-debuginfo: fedora.uib.no
--> Processing Dependency: ocaml(Commands) = 7da7f35253efde64cbe619c1d7423251 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Config) = 78c604daed2e1d3e4542f035662808db for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Control_flow_c) = 1db925cc57e1271197adb6b7091f7922 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Exposed_modules) = 70e4339a00e81bd9b3a4b41e44a3e198 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Externalanalysis) = 397ef23efdf555f4b466765981df6f14 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Iteration) = e9d6cf2f10fa6f65162b670b4a31319d for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Lexer_c) = 00737a2a607144a7e120490febaf59c3 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Lib_parsing_c) = 6c7d73a7f9032c70d074b074b76d6ae0 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Oassoc) = 7f1991093f23c7ab4c0efeb2c85e88ec for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Objet) = a723c7298159962ce8144886f658f5f0 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Ocollection) = 7ab5877d35763f561e8b8e7393360d30 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Ograph_extended) = b73cb07be551c1fd8763291e07b01d95 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Oset) = 8e649c43811e1df340e6f742dc6ee6e3 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Parser_c) = d51b2c1a2db2e356d98a1ce782286110 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Pretty_print_c) = b15ec7449d108fb5bd178b840d9d3c80 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Seti) = 5d18c0d6c5a7cf77b4e7f5f212d7a823 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Token_annot) = c222a8715162e4dce6c48ec8c3940745 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Processing Dependency: ocaml(Visitor_c) = f03b4b6fb26f98bd0fefbe8baf80f838 for package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64
--> Finished Dependency Resolution
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Exposed_modules) = 70e4339a00e81bd9b3a4b41e44a3e198
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Oset) = 8e649c43811e1df340e6f742dc6ee6e3
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Oset) = 8e649c43811e1df340e6f742dc6ee6e3
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Lexer_c) = 00737a2a607144a7e120490febaf59c3
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Lexer_c) = 0b545dc7359d8a889eeeb8038cb0ddf7
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Iteration) = e9d6cf2f10fa6f65162b670b4a31319d
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Iteration) = e9d6cf2f10fa6f65162b670b4a31319d
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Pretty_print_c) = b15ec7449d108fb5bd178b840d9d3c80
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Pretty_print_c) = d83517d38c6a164b59eff041d8c23303
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Config) = 78c604daed2e1d3e4542f035662808db
           Installed: ocaml-ocamldoc-3.12.1-12.fc17.x86_64 (@updates)
               ocaml(Config) = e4c27b9790736236103b35b2de656168
           Installed: ocaml-runtime-3.12.1-12.fc17.x86_64 (@updates)
               ocaml(Config) = e4c27b9790736236103b35b2de656168
           Available: frama-c-1.7-3.fc17.i686 (fedora)
               ocaml(Config) = f871c5ddfc7dc8f084cd4c6c5a266414
           Available: frama-c-devel-1.7-3.fc17.i686 (fedora)
               ocaml(Config) = f871c5ddfc7dc8f084cd4c6c5a266414
           Available: ocaml-ocamldoc-3.12.1-1.fc17.x86_64 (fedora)
               ocaml(Config) = e4c27b9790736236103b35b2de656168
           Available: ocaml-runtime-3.12.1-1.fc17.x86_64 (fedora)
               ocaml(Config) = e4c27b9790736236103b35b2de656168
           Available: whenjobs-0.7.3-1.fc17.x86_64 (updates)
               ocaml(Config) = 22e56187c01934c5147c0c3b5e3fa721
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Parser_c) = d51b2c1a2db2e356d98a1ce782286110
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Parser_c) = d51b2c1a2db2e356d98a1ce782286110
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Objet) = a723c7298159962ce8144886f658f5f0
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Objet) = a723c7298159962ce8144886f658f5f0
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Oassoc) = 7f1991093f23c7ab4c0efeb2c85e88ec
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Oassoc) = 7f1991093f23c7ab4c0efeb2c85e88ec
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Ast0_cocci) = 40bed8166018981502b96bafd9d809da
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Ograph_extended) = b73cb07be551c1fd8763291e07b01d95
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Ograph_extended) = b73cb07be551c1fd8763291e07b01d95
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Visitor_c) = f03b4b6fb26f98bd0fefbe8baf80f838
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Visitor_c) = d7fa0c552a92854fe4ba96b6ea3c6a07
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Commands) = 7da7f35253efde64cbe619c1d7423251
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Seti) = 5d18c0d6c5a7cf77b4e7f5f212d7a823
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Seti) = 5d18c0d6c5a7cf77b4e7f5f212d7a823
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Lib_parsing_c) = 6c7d73a7f9032c70d074b074b76d6ae0
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Lib_parsing_c) = 6c7d73a7f9032c70d074b074b76d6ae0
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Token_annot) = c222a8715162e4dce6c48ec8c3940745
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Ocollection) = 7ab5877d35763f561e8b8e7393360d30
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Ocollection) = 7ab5877d35763f561e8b8e7393360d30
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Control_flow_c) = 1db925cc57e1271197adb6b7091f7922
           Available: coccinelle-1.0.0-0.rc9.6.fc17.x86_64 (fedora)
               ocaml(Control_flow_c) = 6f585859da9adf92ffaf5a5f35647458
Error: Package: coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64 (/coccinelle-1.0.0-0.rc16.0.bf_fc17.x86_64)
           Requires: ocaml(Externalanalysis) = 397ef23efdf555f4b466765981df6f14
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest


All those Requires dependencies are generated by /usr/lib/rpm/ocaml-find-requires.sh. Comparing it with /usr/lib/rpm/ocaml-find-provides.sh (which is ~90% identical) I see that ocaml-find-requires has the following line

    grep -Ev "^ocaml\((Annot|Asttypes|Outcometree|Cmo_format|Parsetree)\) 

which strongly smells like special coccinelle package handling in the system general script, and now that the upstream version have named some ocaml modules different than expectes it breaks... So this does not seem to be a very robust way of handling ocaml dependencies.

For myself I worked around the problem by just adding
    Provides: ocaml(Exposed_modules) = 70e4339a00e81bd9b3a4b41e44a3e198
    Provides: ocaml(Oset) = 8e649c43811e1df340e6f742dc6ee6e3
    Provides: ocaml(Lexer_c) = 00737a2a607144a7e120490febaf59c3
    ...
manually in the spec file, but that is not a proper solution, hence this bug report.

Comment 1 Richard W.M. Jones 2013-01-10 22:47:59 UTC
Have a look in the spec file for a line which has lots of '-i ...'
options, and add the new internal modules to that list.

Comment 2 Fedora End Of Life 2013-07-04 02:58:52 UTC
This message is a reminder that Fedora 17 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 17. 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 '17'.

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 17'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 17 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, you are encouraged  change the 
'version' to a later Fedora version prior to Fedora 17's end of life.

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.

Comment 3 Fedora End Of Life 2013-08-01 09:53:51 UTC
Fedora 17 changed to end-of-life (EOL) status on 2013-07-30. Fedora 17 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.