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.
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.
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.
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.
package-version.tar.gz
. This tarball should
unpack into a directory called package-version/
.
configure
.
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.
A package must use make install
for
installation. The specifics are as follows:
make opt
was called previously,
i.e. the install commands have to to examine the state of the source
directory and act accordingly. ${PREFIX}
(for libraries installing via findlib, this is
taken care of automatically). Note that this is true even in the case
that the current ${PREFIX}
differs from the
${PREFIX}
setting from a previous make
invocation. The specific locations should be:
${PREFIX}/bin
${PREFIX}/man/man<n>
(Note: man pages must not be compressed.)
${PREFIX}/info
${PREFIX}/doc/${PKGBASE}/html
${PREFIX}/doc/${PKGBASE}
${PREFIX}/share/${PKGBASE}
Many packages do not adhere to these (GODI-mandated) locations, so packages must often take it upon themselves to patch the makefile.