Bug#1124933: wscript: support cmake built HDF5 and fix HDF5+MPI detection
Gilles Filippini
pini at debian.org
Thu Jan 8 18:20:44 GMT 2026
Rafael Laboissière a écrit le 08/01/2026 à 13:42 :
> Control: tags -1 patch upstream
>
> Hi Gilles,
>
> Thank you for the diagnosis and for the patch.
>
> Your patch does not apply to the current version of the xmds2 package,
> because there is an extraneous line containing "auto-gitignore" in the
> hunk for the debian/patches/series file.
>
> Could you please clarify this?
I downloaded the sources from unstable, and this 'auto-gitignore' line
is there:
$ dget
https://deb.debian.org/debian/pool/main/x/xmds2/xmds2_3.1.0+dfsg2-11.dsc
...
$ cat xmds2-3.1.0+dfsg2/debian/patches/series
revision-number-as-deb-pkg.patch
decrease-mpirun-slots.patch
no-generation-timestamps.patch
deterministic-id.patch
no-parallel-waf-build.patch
wscript-no-shebang-line.patch
pygments-style-lexer.patch
extra-alignment-tab.patch
numpy-asscalar.patch
vanilla-cblas.patch
do-not-use-imp-module.patch
use-importlib-resources-module.patch
drop-useless-imports.patch
invalid-escape-sequences.patch
replace-deprecated-distutils.patch
auto-gitignore
Best,
g.
>
> Best,
>
> Rafael
>
> * Gilles Filippini <pini at debian.org> [2026-01-07 13:47]:
>
>> Source: xmds2
>> Version: 3.1.0+dfsg2-11
>> Severity: normal
>>
>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
>>
>> Hi,
>>
>> While testing the build of xmds2 against cmake built HDF5 (1.14.6
>> currently in experimental) I noticed a couple if issues regarding HDF5
>> detection by the wscript tool.
>>
>> Firstly, it extracts the HDF5 libpath from the full path of HDF5
>> static library returned by 'h5cc -show -noshlib'. While it works
>> currently, it doesn't work with a cmake built HDF5 where the h5cc
>> output comes from pkg-config.
>>
>> I propose to parse the -L link option from 'h5cc -show -shlib' instead
>> which works in both cases.
>>
>> Secondly the HDF5 detection with MPI is not correct as is uses 'h5cc'
>> instead of 'h5pcc'.
>>
>> Please see the attached patch proposal which should fix both issues.
>> I've tested it against autotools built HDF5 1.14.5 in unstable and
>> cmake built HDF5 1.14.6 in experimental.
>>
>> Best, _g.
>>
>> - -- System Information: Debian Release: 12.0 Architecture: amd64
>> (x86_64)
>>
>> Kernel: Linux 6.1.0-34-amd64 (SMP w/12 CPU threads; PREEMPT)
>> Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale:
>> LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not
>> set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/
>> systemd/system) LSM: AppArmor: enabled
>>
>> -----BEGIN PGP SIGNATURE-----
>>
>> iQEzBAEBCgAdFiEEoJObzArDE05WtIyR7+hsbH/+z4MFAmleVeQACgkQ7+hsbH/+
>> z4MYGQgAiyGpyeFO+VQ4IsMiHEuemFRu+morkQQf+zdGPUP2oVacWtAjeEfv3mlf TM/
>> XPsZSwb+ilY9YHWP4f9V+FY++m1n6bQM+zwSKIaR7CTwKPPcy8Ie36iDhokIp
>> 1nDe6VrR4Ih9pn3PleKZts6Dzp5TEZT6m2ReUSMdXkk1FCg3dNPlBb57EXkhS7PU /
>> P2MwaSVmIR0/pplczcVBilJMZTWzbhkZjgzBrGRt0evYTntHQrGkbB1iz/4ikpZ
>> vpdQmWkzbR2CTYwu8PYf8ap23Tg/zQfKrtq2opYWm7lpBAz25/SNR0gCKCrJuGiZ
>> dsNIQdEJH4nlCE6z+GrdvutGbJF9HQ== =EQzW -----END PGP SIGNATURE-----
>
>> diff -Nru xmds2-3.1.0+dfsg2/debian/changelog xmds2-3.1.0+dfsg2/debian/
>> changelog --- xmds2-3.1.0+dfsg2/debian/changelog 2025-09-26
>> 15:19:18.000000000 +0200 +++ xmds2-3.1.0+dfsg2/debian/changelog
>> 2026-01-07 10:38:44.000000000 +0100 @@ -1,3 +1,13 @@ +xmds2
>> (3.1.0+dfsg2-11.1) UNRELEASED; urgency=medium + + * Non-maintainer
>> upload. + * New patches for wscript: + - support for cmake built
>> HDF5 + - use the correct MPI HDF5 variant when building with MPI +
>> * The last item above requires libhdf5-mpi-dev as build dependency + +
>> -- Gilles Filippini <pini at debian.org> Wed, 07 Jan 2026 10:38:44 +0100
>> + xmds2 (3.1.0+dfsg2-11) unstable; urgency=medium
>>
>> * d/control:
>> diff -Nru xmds2-3.1.0+dfsg2/debian/control xmds2-3.1.0+dfsg2/debian/
>> control --- xmds2-3.1.0+dfsg2/debian/control 2025-09-26
>> 15:19:18.000000000 +0200 +++ xmds2-3.1.0+dfsg2/debian/control
>> 2026-01-07 10:38:44.000000000 +0100 @@ -12,6 +12,7 @@
>> libfftw3-mpi-dev <!nocheck>, libgsl-dev <!nocheck>,
>> libhdf5-dev <!nocheck>, + libhdf5-mpi-dev
>> <!nocheck>, libopenblas-dev | libblis-dev <!nocheck>,
>> mpi-default-bin <!nocheck>, mpi-default-
>> dev <!nocheck>, diff -Nru xmds2-3.1.0+dfsg2/debian/patches/series
>> xmds2-3.1.0+dfsg2/debian/patches/series --- xmds2-3.1.0+dfsg2/debian/
>> patches/series 2025-09-26 15:19:18.000000000 +0200 +++
>> xmds2-3.1.0+dfsg2/debian/patches/series 2026-01-07
>> 10:38:44.000000000 +0100 @@ -14,3 +14,5 @@ invalid-escape-
>> sequences.patch replace-deprecated-distutils.patch auto-gitignore
>> +wscript-hdf5-cmake-support.patch +wscript-hdf5-mpi-support.patch diff
>> -Nru xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-cmake-support.patch
>> xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-cmake-support.patch ---
>> xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-cmake-support.patch
>> 1970-01-01 01:00:00.000000000 +0100 +++ xmds2-3.1.0+dfsg2/debian/
>> patches/wscript-hdf5-cmake-support.patch 2026-01-07
>> 10:38:44.000000000 +0100 @@ -0,0 +1,19 @@ +Description: fix the weird
>> way wscript has to find out the HDF5 libpath + It should relies on the
>> standard -L link flag instead of the broken + way the autotools
>> generated h5cc tool handles static linking. + . + BTW this fix adds
>> support for the cmake built HDF5 1.14.6 currently in + experimental.
>> +Index: xmds2-3.1.0+dfsg2/xpdeint/support/wscript
>> +===================================================================
>> +--- xmds2-3.1.0+dfsg2.orig/xpdeint/support/wscript ++++
>> xmds2-3.1.0+dfsg2/xpdeint/support/wscript +@@ -401,7 +401,7 @@ def
>> configure(conf): + h5cc_shared_flags =
>> conf.cmd_and_log([conf.env['H5CC'][0], '-show', '-shlib'])
>> + h5cc_static_flags = conf.cmd_and_log([conf.env['H5CC']
>> [0], '-show', '-noshlib']) + +- hdf5_libpath =
>> re.search(r'(\S*)/libhdf5\.a', h5cc_static_flags).group(1) +
>> + hdf5_libpath = re.search(r'\s-L(\S+)',
>> h5cc_shared_flags).group(1) + +
>> conf.env.append_unique("LIBPATH_hdf5", hdf5_libpath) + diff -Nru
>> xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-mpi-support.patch
>> xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-mpi-support.patch ---
>> xmds2-3.1.0+dfsg2/debian/patches/wscript-hdf5-mpi-support.patch
>> 1970-01-01 01:00:00.000000000 +0100 +++ xmds2-3.1.0+dfsg2/debian/
>> patches/wscript-hdf5-mpi-support.patch 2026-01-07
>> 10:38:44.000000000 +0100 @@ -0,0 +1,27 @@ +Description: When building
>> for the MPI variant of HDF5 the helper should + be 'h5pcc' ('p' for
>> 'parallel') instead of 'h5cc' which relates to the + serial variant.
>> +Index: xmds2-3.1.0+dfsg2/xpdeint/support/wscript
>> +===================================================================
>> +--- xmds2-3.1.0+dfsg2.orig/xpdeint/support/wscript ++++
>> xmds2-3.1.0+dfsg2/xpdeint/support/wscript +@@ -397,9 +397,16 @@ def
>> configure(conf): + ) + + # Check for hdf5 +- if
>> conf.find_program('h5cc', var='H5CC', mandatory = False): +-
>> h5cc_shared_flags = conf.cmd_and_log([conf.env['H5CC'][0],
>> '-show', '-shlib']) +- h5cc_static_flags =
>> conf.cmd_and_log([conf.env['H5CC'][0], '-show', '-noshlib']) ++
>> if conf.env['ENVIRONMENT_NAME'] == 'default': ++
>> hdf5_helper = 'h5cc' ++ hdf5_helper_var = 'H5CC' ++
>> else: ++ hdf5_helper = 'h5pcc' ++
>> hdf5_helper_var = 'H5PCC' ++ ++ if
>> conf.find_program(f'{hdf5_helper}', var=hdf5_helper_var, mandatory =
>> False): ++ h5cc_shared_flags =
>> conf.cmd_and_log([conf.env[hdf5_helper_var][0], '-show', '-shlib']) +
>> + h5cc_static_flags =
>> conf.cmd_and_log([conf.env[hdf5_helper_var][0], '-show', '-noshlib'])
>> + + hdf5_libpath = re.search(r'\s-L(\S+)',
>> h5cc_shared_flags).group(1) +
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20260108/b75bdc67/attachment-0001.sig>
More information about the debian-science-maintainers
mailing list