On Mon, Sep 28, 2009 at 04:33:24PM -0600, Orion Poplawski wrote:
I package plplot which ships bindings for oodles of languages, among
them perl and ocaml. The ocaml packaging guidelines suggest:
%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
to add the required ocaml Requires/Provides. However, this breaks the
automatic perl (and other?) generation for the perl sub-package.
How should this be handled? Is there a way to add the
ocaml-find-requires/provides to the normal list of providers? Shouldn't
this be done automatically by the build system?
Yes - really those should be pushed into upstream RPM. However that
isn't done at the moment.
The reason for having the alternate dependency generator is to
make dependencies of the form:
ocaml(Module) = MD5
where MD5 is the md5sum of the dependent Module's interface (use
'ocamlobjinfo plplot.cma' to discover this). This avoids the dreaded
'interface mismatch' error, and ensures that only a consistent set of
packages can be installed together, which is good news if you are
developing OCaml software that uses plplot.
If you are willing to have the occasional inconsistent package set,
you can just as easily forgo the above and simply add explicit
dependencies on any packages you need, plus the ABI, eg:
Requires: ocaml(runtime) = 3.11.1
This is still how Debian package things, although they are moving
slowly to a system which is similar (but different in the details)
from the one we use in Fedora. In Debian you still get 'interface
Really we need to get the OCaml dep generator into upstream RPM ...
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd