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