Debian OCaml Packaging Policy

The Debian OCaml Task Force

This manual is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License is available as /usr/share/common-licenses/GPL on Debian GNU/Linux systems or on the World Wide Web at The GNU Public Licence.


Table of Contents
1. Generalities about OCaml packages in Debian
1.1. The Name of the Game
1.2. Bytecode and Native Code
1.2.1. Bytecode and Native Code Executables
1.2.2. Bytecode and Native Code Compilers
1.3. OCaml in Debian
1.3.1. Packages for OCaml
1.3.2. OCaml Location
1.4. Files Used and Produced by the OCaml Compiler
1.5. Locally Installing OCaml Programs and Libraries
1.6. Registering Documentation with doc-base
1.7. Choose the Right Archive Section
2. Packaging OCaml Programs
2.1. Creating Packages for OCaml Programs
2.2. Bytecode Packages
2.3. Bytecode and native versions of programs
3. Packaging OCaml libraries
3.1. Creating Packages for OCaml Libraries
3.2. Paths for libraries
3.3. Handling dependencies on OCaml
3.4. Providing META files
3.5. Camlp4/Camlp5
3.6. Documentation
A. The OCaml CDBS class
B. The Debian OCaml Task Force resources
C. Using the SVN repository
C.1. Use SVN and let your users know about it
C.2. How to obtain a copy of the SVN repository
C.3. Structure of the SVN repository
C.4. How to add a new package to the SVN repository
C.5. How to set up your package for use with svn-buildpackage
C.6. How to build a package with svn-buildpackage
C.7. dpatch
D. Using Git for packaging
D.1. Using Git for packaging
D.2. How to obtain a copy of a package's Git repository
D.3. Structure of a Git repository
D.4. How to add a new package
D.5. How to set up your package for use with git-buildpackage
D.6. How to build a package with git-buildpackage
D.7. Patches
D.7.1. Quilt-serialized patches
List of Tables
1-1. OCaml Compilers
List of Examples
3-1. Dependency from a -dev package to its companion share library stub package (if any), from the pcre-ocaml package
C-1. Usage example of the Vcs-* fields, from the findlib package
D-1. Usage example of the Vcs-* fields, from the findlib package