GODIVA Packaging Policy

The GODIVA Packaging Policy is a collection of rules that a software distribution must follow before it can be packaged into GODI with GODIVA. Some of the rules carry over from GODI itself; some are GODIVA-specific.

For O'Caml Software Authors

Authors who want their code to be easily packageable should adhere to this policy as closely as possible. If it doesn't adhere, the packager is going to have to patch it. This policy tries to be relatively standard and not overly strict.

For GODI Packagers

Packagers should ensure that all software distributions adhere to this policy before attempting to package it with GODIVA -- if the code does not already adhere, it must be patched.

The Policy

Conventions

If a package violates a must rule, it may not work properly with GODI or GODIVA. Following should rules is highly recommended as it simplifies packaging.

  1. Distribution.
    Source code should come in a tarball called package-version.tar.gz. This tarball should unpack into a directory called package-version/.
  2. Configuration.
    If a package requires a configuration step, it must be performed by an executable called configure.
  3. Compilation.
    A package must have one or more make targets for building software and documentation. The names should be as follows:
    [required] 'make all'     builds bytecode versions of your software.
    [optional] 'make opt'     builds native code versions of your software.
    

    If compilation requires knowledge of the final location of the software or documentation, it should consult the ${PREFIX} variable.

  4. Installation.

    A package must use make install for installation. The specifics are as follows:

    Many packages do not adhere to these (GODI-mandated) locations, so packages must often take it upon themselves to patch the makefile.