Red Hat Bugzilla – Bug 241471
In OCaml, *.cmi files are not source files
Last modified: 2007-11-30 17:12:05 EST
Description of problem:
When I run rpmlint on an OCaml package, I get lots of errors like this:
W: ocaml-ocamlnet devel-file-in-non-devel-package
In OCaml *.cmi files are not source files but compiled files which describe the
signature of a module. An easy way to detect this is to look for "/ocaml"
(note: no trailing slash) in the path. Or you can run 'file' on it, for example:
# file /usr/lib64/ocaml/calendar/calendar.cmi
/usr/lib64/ocaml/calendar/calendar.cmi: Objective caml interface file (.cmi)
Version-Release number of selected component (if applicable):
# rpm -q rpmlint
OCaml draft packaging policy: http://fedoraproject.org/wiki/PackagingDrafts/OCaml
Note that rpmlint doesn't say that *.cmi are source files, it just treats them
as development related ones.
Not doing that is easy, just remove cmi from includefile_regex in FilesCheck.py,
but as I know next to nothing about ocaml, I'd like you to confirm that they are
indeed something that should generally be packaged in "main" rather than -devel
Related reading just for reference:
Mandriva bug report asking for *.cmi to be treated as devel files in rpmlint:
Debian ocaml policy mentions *.cmi only in the "documentation" section and they
appear to package all *.cm* in devel packages:
PLD appears to package all *.cm* in devel packages too:
Will also ask for comments from the Mandriva bug submitter.
I don't think those policies are correct because they stop OCaml scripts from
working. For Fedora, this is the draft policy (note however that I wrote it):
and the rationale behind it is in this thread (you have to read all the way
Created attachment 155520 [details]
Thanks. Just in case you didn't know, rpmlint's upstream is no longer
Mandriva, but http://rpmlint.zarb.org/. But it's useful to gather opinions
from elsewhere too.
Here's a candidate patch I intend to apply in the next upstream rpmlint version
unless some flaws are found in it - it removes *.cmi from list of files being
treated as devel ones, and adds *.cmx, *.cmxa, *.ml, *.mli and *.o.
The patch looks OK to me.
Applied upstream in smaller chunks, will be in the next release:
rpmlint-0.81-1.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report.