English
*.a (contains the compiled machine code)
A library must depend on the precise version of the OCaml compiler, for example: ocaml(runtime) = 3.10.0
a license file (if present) marked %doc
Binaries should be stripped, as per ordinary Fedora packaging guidelines.
%build
make byte
%if %opt
make opt
%endif
Bytecode-only architectures
*.cma (contains the bytecode)
*.cmi (contains the compiled signature)
.cmo files are not normally included. There are two exceptions where *.cmo files may be included:
*.cmo object files. Exception: see above.
*.cmxa (describes the compiled machine code)
*.cmx (if present, allows cross-module optimizations)
-data subpackage
-devel subpackage
-doc subpackage
Documentation, examples and other articles which are useful to the developer may be included in the -devel sub-package. The license file (which is in the main package) does not need to be included again in the -devel subpackage.
For each module that library A uses from another library B, library A must have a Requires of the form: ocaml(Modulename) = MD5hash Similarly for each module that library A may provide to other libraries, library A must have a Provides of the same form.
Further reading
%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
%global _use_internal_dependency_generator 0
%global __find_requires /usr/lib/rpm/ocaml-find-requires.sh
%global __find_provides /usr/lib/rpm/ocaml-find-provides.sh