Bug#1078975: field3d: FTBFS against HDF5 1.14 - Needs -DH5_USE_110_API

Pierre Gruet pgt at debian.org
Fri Nov 1 19:38:08 GMT 2024


Control: tags -1 patch

Hi,

On Sun, 18 Aug 2024 15:16:08 +0200 Gilles Filippini <pini at debian.org> wrote:
 > Source: field3d
 > Version: 1.7.3-4.1
 > Severity: important
 >
 > -----BEGIN PGP SIGNED MESSAGE-----
 > Hash: SHA512
 >
 > Hi,
 >
 > The field3d package fails to build from source in a test rebuild
 > against hdf5 1.14 currently in experimental:
 >
 > /<<PKGBUILDDIR>>/src/Field3DFileHDF5.cpp: In function ‘herr_t 
Field3D::v1_7::InputFileHDF5::parsePartitions(hid_t, const char*, const 
H5L_info2_t*, void*)’:
 > /<<PKGBUILDDIR>>/src/Field3DFileHDF5.cpp:1138:31: error: too few 
arguments to function ‘herr_t H5Oget_info_by_name3(hid_t, const char*, 
H5O_info2_t*, unsigned int, hid_t)’
 > 1138 | status = H5Oget_info_by_name(loc_id, itemName, &infobuf, 
H5P_DEFAULT);
 > In file included from /usr/include/hdf5/serial/H5Apublic.h:21,
 > from /usr/include/hdf5/serial/hdf5.h:22,
 > from /<<PKGBUILDDIR>>/src/Field3DFileHDF5.cpp:50:
 > /usr/include/hdf5/serial/H5Opublic.h:541:15: note: declared here
 > 541 | H5_DLL herr_t H5Oget_info_by_name3(hid_t loc_id, const char 
*name, H5O_info2_t *oinfo, unsigned fields,
 > | ^~~~~~~~~~~~~~~~~~~~
 > /<<PKGBUILDDIR>>/src/Field3DFileHDF5.cpp: In function ‘herr_t 
Field3D::v1_7::InputFileHDF5::parseLayers(hid_t, const char*, const 
H5L_info2_t*, void*)’:
 > /<<PKGBUILDDIR>>/src/Field3DFileHDF5.cpp:1178:32: error: too few 
arguments to function ‘herr_t H5Oget_info_by_name3(hid_t, const char*, 
H5O_info2_t*, unsigned int, hid_t)’
 > 1178 | status = H5Oget_info_by_name (loc_id, itemName, &infobuf, 
H5P_DEFAULT);
 > /usr/include/hdf5/serial/H5Opublic.h:541:15: note: declared here
 > 541 | H5_DLL herr_t H5Oget_info_by_name3(hid_t loc_id, const char 
*name, H5O_info2_t *oinfo, unsigned fields,
 > | ^~~~~~~~~~~~~~~~~~~~
 > In file included from /<<PKGBUILDDIR>>/export/FieldMapping.h:52,
 > from /<<PKGBUILDDIR>>/export/Field.h:57,
 > from /<<PKGBUILDDIR>>/export/ClassFactory.h:51,
 > from /<<PKGBUILDDIR>>/src/ClassFactory.cpp:44:
 > /<<PKGBUILDDIR>>/export/Curve.h:133:17: warning: ‘template<class 
_Arg, class _Result> struct std::unary_function’ is deprecated 
[-Wdeprecated-declarations]
 > 133 | public std::unary_function<std::pair<float, T>, bool>
 > | ^~~~~~~~~~~~~~
 > In file included from /usr/include/c++/14/bits/unique_ptr.h:38,
 > from /usr/include/c++/14/memory:78,
 > from /usr/include/boost/smart_ptr/scoped_ptr.hpp:23,
 > from /usr/include/boost/scoped_ptr.hpp:13,
 > from /<<PKGBUILDDIR>>/export/ClassFactory.h:47:
 > /usr/include/c++/14/bits/stl_function.h:117:12: note: declared here
 > 117 | struct unary_function
 > | ^~~~~~~~~~~~~~
 > /<<PKGBUILDDIR>>/export/Curve.h:148:17: warning: ‘template<class 
_Arg, class _Result> struct std::unary_function’ is deprecated 
[-Wdeprecated-declarations]
 > 148 | public std::unary_function<std::pair<float, T>, bool>
 > | ^~~~~~~~~~~~~~
 > /usr/include/c++/14/bits/stl_function.h:117:12: note: declared here
 > 117 | struct unary_function
 > | ^~~~~~~~~~~~~~
 > make[3]: *** [CMakeFiles/Field3D.dir/build.make:121: 
CMakeFiles/Field3D.dir/src/Field3DFileHDF5.cpp.o] Error 1
 >
 >
 > Adding -DH5_USE_110_API to CFLAGS and CXXFLAGS should fix the problem.

Indeed, altering debian/rules by adding

# HDF5 1.14.x flags
export DEB_CFLAGS_MAINT_APPEND = -DH5_USE_110_API
export DEB_CXXFLAGS_MAINT_APPEND = -DH5_USE_110_API

just before the "%:" line fixed the build.

 >
 > Best,
 > _g.
 >

Best,

-- 
Pierre
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-phototools-devel/attachments/20241101/ae0a867f/attachment.sig>


More information about the Pkg-phototools-devel mailing list