Plea to fix the [ parallel | serial ] HDF5 problem
Gilles Filippini
pini at debian.org
Thu May 29 09:26:39 UTC 2014
Hi,
Gilles Filippini a écrit , Le 24/05/2014 11:58:
> Alastair McKinstry a écrit , Le 21/05/2014 15:40:
>> The best solution I can think of is:
>> (1) make the packages install into
>> /usr/lib/$MPIV/...
>> with $MPIV equalling either mpiversion (openmpi, mpich2, ...) or
>> 'serial', or 'any'.
>> (2) Use alternatives to set a default.
>> (3) Mangle the libnames as follows:
>> /usr/lib/openmpi/lib/libhdf5.so -->
>> /usr/lib/$(DEB_HOST_MULTIARCH)/libhdf5_openmpi.so.7.1.1
>> ie. adding _$(MPIV) to the libname.
>> This results in a library that uses it being hard-coded to use that
>> particular version, but
>> (4) the version in /usr/lib/any/ does _not_ mangle the libname, but
>> points to a version with
>> libhdf5.so.7.1.1 with SONAME 'libhdf5.so.7', which is just a shell for
>> linking against, but which itself
>> is linked against a version (any, default serial) of the HDF5 libs.
>> Hence any application which does not
>> care of the given features (threadsafe, compression, parallelism) can
>> use this version.
>> Binaries built with it will resolve /usr/lib/*/libhdf5.so.7.1.1 pointing
>> to the default version on the system.
>>
>> This will enable the building of a libnetcdf-$mpi version, for parallel
>> writes, and other libraries.
>>
>> Any comments?
>
> I like the idea, especially part [3] which is the clever trick I was
> missing. But then do we actually need the /alternatives/ + /any/ stuff?
> Shouldn't [1] and [3] be sufficient? Application which do not care could
> just go with the serial version.
Following Alastair's proposal I've adapted my previous try on this
topic. Here is a summary of the proposed changes from my local git log:
Make serial and $mpi flavors co-installable
* Patch autotools configuration to add option --with-flavor which
append _<flavor-name> to the libraries' names
* Configure $mpi builds with flavor-name=$mpi
* link $mpi flavor development libs to
/usr/lib/$MULTIARCH/$mpi/libhdf5-<legacy-names> (so that existing
makefiles still work using -L/usr/lib/$MULTIARCH/$mpi)
* install $mpi flavor include files into /usr/include/$mpi (so
that existing makefiles still work using -I/usr/include/$mpi)
* Use alternatives to choose default h5p{cf}c
* Deactivate patch skip_cxx_inclusion.diff
* Remove related Conflicts / Provides from debian/control*
I've successfully tested the co-installation with all packages and the
build of an example using each flavor.
All this work was done against upstream release 1.8.13. I've had to bump
the soname to 8 because of the MPI-POSIX driver removal [1].
Of course this will require a transition.
Any comments before I upload to experimental?
Thanks in advance,
[1] <http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html>
_g.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-grass-devel/attachments/20140529/5c6aca44/attachment.sig>
More information about the Pkg-grass-devel
mailing list