Splitting libHYPRE.so into sublibs
==================================

The entire HYPRE library libHYPRE.so, taken as a single monolithic
library, is quite large (approx. 6 MB with symbols stripped).

Debian has therefore split HYPRE into sublibraries to bring the size
of each sublibrary into line with other libraries. Specifically, the
FEI component is split into a separate library.  Due to circular
dependencies between other components, we are not able split other
components out into separate sublibraries.

Starting from HYPRE 2.15.1, the sublibraries are
  libHYPRE_core.so
  libHYPRE_FEI.so
which you may link with '-lHYPRE_FEI -lHYPRE_core'.
If you do not use FEI then you may save space by
linking only against -lHYPRE_core.

libHYPRE.so is provided as a "dummy" library which is dynamically linked
to libHYPRE_core.so and libHYPRE_FEI.so.


Library version, soname and package name
========================================

HYPRE does not provide ABI backwards compatibility. The ABI might
change, even between patch version updates (Z in X.Y.Z).

This makes it inconvenient to follow the usual Debian practice of
creating a library binary package libhypre-X.Y containing the
library for a given ABI soname. The package would have to pass through
the NEW queue as a new package each time, even for a minor patch update.

For this reason, starting with 2.18.1, the library binary package is
provided as libhypre without the soname version embedded in the name.
Version dependency is enforced via a strict shlibs patch version
dependency in the shlibs file,
  libHYPRE_core __HYPRE_VERSION__ libhypre (>= __HYPRE_VERSION__), libhypre (<< __HYPRE_VERSION_NEXT__)

This practice of strict shlibs dependency is not normally done since
it impedes transition of packages into testing: all dependent packages
need to be rebuilt against the new library version and transition at
the same time. For hypre this is expected to be less of an
inconvenience than the inconvenience of traversing the NEW queue with
each version update. There are only 2* dependent packages:
  petsc (*and slepc)
  sundials
