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 /usr/lib64/ocaml/netcgi2/netcgi_test.cmi 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 010). Version-Release number of selected component (if applicable): # rpm -q rpmlint rpmlint-0.80-1.fc6 Additional info: 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 packages. Related reading just for reference: Mandriva bug report asking for *.cmi to be treated as devel files in rpmlint: http://archives.mandrivalinux.com/cooker/2004-10/msg03607.php Debian ocaml policy mentions *.cmi only in the "documentation" section and they appear to package all *.cm* in devel packages: http://pkg-ocaml-maint.alioth.debian.org/ocaml_packaging_policy.txt http://packages.debian.org/cgi-bin/search_packages.pl?exact=0&searchon=names&suite=all&case=insensitive§ion=all&keywords=ocaml&arch=any PLD appears to package all *.cm* in devel packages too: http://cvs.pld-linux.org/cgi-bin/cvsweb/SPECS/ 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): http://fedoraproject.org/wiki/PackagingDrafts/OCaml#head-e9ace415008833d09b0eb93bc92d43f2e1ae2c3e and the rationale behind it is in this thread (you have to read all the way through): https://www.redhat.com/archives/fedora-packaging/2007-May/thread.html#00117
Mandriva bug: http://qa.mandriva.com/show_bug.cgi?id=31045
Created attachment 155520 [details] Candidate patch 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: http://rpmlint.zarb.org/cgi-bin/trac.cgi/changeset/1353
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.