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?
Best,
Rafael
* Gilles Filippini <[email protected]> [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 <[email protected]> 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)
+