                       OpenFOAM Debian Package Description
                       -----------------------------------

The OpenFOAM packages are structured into "back-end" and "front-end"
packages. The "back-end" packages support simultaneous installation
of multiple OpenFOAM versions without conflict. The "front-end"
packages act as a top-level version selector for the back-ends.
They follow the traditional notion of upgrading versions.

Front-end packages
------------------

- openfoam
  The OpenFOAM runtime. Solvers, utilities and libraries.

- openfoam-dev
  The wmake build chain and source code headers.
  Needed for developing with OpenFOAM, but also if dynamic code
  compilation is required.

- openfoam-tutorials
  tutorial examples

- openfoam-default
  A meta-package for "everything":
  openfoam, openfoam-dev, openfoam-tutorials


Back-end packages
-----------------

- openfoam{API}
  The OpenFOAM runtime. Solvers, utilities and libraries.

- openfoam{API}-dev
  The wmake build chain and source code headers.
  Needed for developing with OpenFOAM, but also if dynamic code
  compilation is required.

- openfoam{API}-tutorials
  tutorials

- openfoam{API}-default
  A meta-package for "everything":
  openfoam{API}, openfoam{API}-dev, openfoam{API}-tutorials


Back-end internal packages
--------------------------

These packages are installed as internal dependencies only.
They remain the same regardless of any specific configuration changes
such as label-size, solver precision, MPI etc.

- openfoam{API}-source
  Source code and headers.

- openfoam{API}-common
  Version information and share files (including the etc/ directory)

- openfoam{API}-tools
  Binaries for OpenFOAM-specific build tools.


-----------------
Maintenance Notes
-----------------

When a new major OpenFOAM release occurs (normally every 6 months),
the backend API will also change.
The control file will need to be updated accordingly.

    debian/rules prepare

This will update based on the template/control file.

It is preferable if the changelog contain the SHA1 and commit line
from the upstream openfoam repository. This provides a better link
for end users to determine which bugfixes have actually been included
in the debian package.

Other
-----

It is also possible to include a fallback value for the installed
project directory and/or the installed project etc directory.
For example,

    -DFOAM_CONFIGURED_PROJECT_DIR=\"/usr/lib/openfoam/openfoam2012\"

and use this to remove an internal runtime dependency on the
WM_PROJECT_DIR environment variable, which can simplify certain custom
installations where the end appliance uses ldconfig to handle the
library directory and links for the executables. This needs more testing!

--
