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.
Attachment:
signature.asc
Description: OpenPGP digital signature