[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986142: buster-pu: package h5py/2.8.0-3



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: 984638@bugs.debian.org


[ Reason ]

Bug#984638 has requested a backport of h5py to buster in order to
support other packages used on it.

I've prepared a backport of 2.10.0-9 and am ready to upload if
approved.

Current h5py 2.10 from testing uses python3-mpi4py-dbg, which is not
available in buster.  I therefore removed the python3-h5py-dbg package
(i.e. the build for python3-dbg) from the backport.

The backport builds cleanly in a pbuilder buster chroot, including
passing build-time tests.

[ Impact ]

If not approved, the bug requester will be unable to complete the
tasks they wanted to perform on buster.

[ Tests ]

Build-time tests pass. debian/tests is available.

[ Risks ]

Loses python3-h5py-dbg.

Build using the pkg-config hdf5-mpi.pc file set by alternatives had to
be dropped. The build uses the old mechanism of selected
hdf5-openmpi.pc or hdf5-mpich.pc, which should still work. Release
arches use hdf5-openmpi.pc, which is tested.

Dependent packages in buster have not been tested against this backport.

[ Checklist ]
  [✓] *all* changes are documented in the d/changelog
  [✓] I reviewed all changes and I approve them
  [o] attach debdiff against the package in testing
      (debdiff against package in stable is large)
  [✓] the issue is verified as fixed in unstable

[ Changes ]

  * Backport to stable (buster). Closes: #984638.
    - Standards-Version: 4.3.0
    - revert building python3-h5py-dbg from 2.9.0-7
      (python3-mpi4py-dbg is not available on buster)
      i.e. drop python3-h5py*-dbg packages,
      drop Build-Depends: python3-all-dbg, cython3-dbg
    - revert change in 2.10.0-6 using hdf5-mpi.pc as pkg-config file
      (not available in libhdf5-mpi-dev 1.10.4+repack-10 for buster)
    - revert use of system liblzf-dev from 2.10.0-8
  * use wildcard for mathjax version when replacing references
    (but only replace references if they are found)
diff -Nru h5py-2.10.0/debian/changelog h5py-2.10.0/debian/changelog
--- h5py-2.10.0/debian/changelog	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/changelog	2021-03-30 13:01:26.000000000 +0200
@@ -1,3 +1,20 @@
+h5py (2.10.0-9~bpo1+buster1) stable; urgency=medium
+
+  * Team upload.
+  * Backport to stable (buster). Closes: #984638.
+    - Standards-Version: 4.3.0
+    - revert building python3-h5py-dbg from 2.9.0-7
+      (python3-mpi4py-dbg is not available on buster)
+      i.e. drop python3-h5py*-dbg packages,
+      drop Build-Depends: python3-all-dbg, cython3-dbg
+    - revert change in 2.10.0-6 using hdf5-mpi.pc as pkg-config file
+      (not available in libhdf5-mpi-dev 1.10.4+repack-10 for buster)
+    - revert use of system liblzf-dev from 2.10.0-8 
+  * use wildcard for mathjax version when replacing references
+    (but only replace references if they are found)
+
+ -- Drew Parsons <dparsons@debian.org>  Tue, 30 Mar 2021 13:01:26 +0200
+
 h5py (2.10.0-9) unstable; urgency=medium
 
   * Team upload.
diff -Nru h5py-2.10.0/debian/control h5py-2.10.0/debian/control
--- h5py-2.10.0/debian/control	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/control	2021-03-30 13:01:26.000000000 +0200
@@ -5,28 +5,23 @@
 Section: python
 Priority: optional
 Build-Depends: cython3,
-               cython3-dbg,
                debhelper-compat (= 12),
                dh-python,
                dpkg-dev (>= 1.17.14),
                libhdf5-dev,
-               libhdf5-mpi-dev (>= 1.10.6+repack-1),
+               libhdf5-mpi-dev,
                libjs-mathjax,
-               liblzf-dev,
                mpi-default-dev,
-               python3-all-dbg,
                python3-all-dev,
                python3-mpi4py,
-               python3-mpi4py-dbg,
                python3-numpy,
-               python3-numpy-dbg,
                python3-pkgconfig,
                python3-pytest,
                python3-setuptools,
                python3-six,
                python3-unittest2,
                python3-sphinx <!nodoc>
-Standards-Version: 4.5.0
+Standards-Version: 4.3.0
 Vcs-Browser: https://salsa.debian.org/science-team/h5py
 Vcs-Git: https://salsa.debian.org/science-team/h5py.git
 Homepage: https://www.h5py.org/
@@ -115,97 +110,6 @@
  This package provides the modules for Python 3, built with support
  for MPI (multiprocessor) jobs.
 
-Package: python3-h5py-dbg
-Section: debug
-Architecture: all
-Depends: python3-h5py-serial-dbg | python3-h5py-mpi-dbg, ${misc:Depends}
-Suggests: python-h5py-doc <!nodoc>
-Description: debug extensions for h5py (Python 3)
- HDF5 for Python (h5py) is a general-purpose Python interface to the
- Hierarchical Data Format library, version 5. HDF5 is a versatile, mature
- scientific software library designed for the fast, flexible storage of
- enormous amounts of data.
- .
- From a Python programmer's perspective, HDF5 provides a robust way to
- store data, organized by name in a tree-like fashion. You can create
- datasets (arrays on disk) hundreds of gigabytes in size, and perform
- random-access I/O on desired sections. Datasets are organized in a
- filesystem-like hierarchy using containers called "groups", and accessed
- using the tradional POSIX /path/to/resource syntax.
- .
- H5py provides a simple, robust read/write interface to HDF5 data from
- Python. Existing Python and Numpy concepts are used for the interface;
- for example, datasets on disk are represented by a proxy class that
- supports slicing, and has dtype and shape attributes. HDF5 groups are
- presented using a dictionary metaphor, indexed by name.
- .
- This is a dummy package which depends on the serial or MPI build of h5py
- with debug extensions.
-
-Package: python3-h5py-serial-dbg
-Architecture: any
-Multi-Arch: same
-Section: debug
-Depends: ${misc:Depends},
-         ${python3:Depends},
-         ${shlibs:Depends},
-         python3-h5py-serial (= ${binary:Version}),
-         python3-numpy-dbg
-Description: debug extensions for h5py (Python 3 serial)
- HDF5 for Python (h5py) is a general-purpose Python interface to the
- Hierarchical Data Format library, version 5. HDF5 is a versatile, mature
- scientific software library designed for the fast, flexible storage of
- enormous amounts of data.
- .
- From a Python programmer's perspective, HDF5 provides a robust way to
- store data, organized by name in a tree-like fashion. You can create
- datasets (arrays on disk) hundreds of gigabytes in size, and perform
- random-access I/O on desired sections. Datasets are organized in a
- filesystem-like hierarchy using containers called "groups", and accessed
- using the tradional POSIX /path/to/resource syntax.
- .
- H5py provides a simple, robust read/write interface to HDF5 data from
- Python. Existing Python and Numpy concepts are used for the interface;
- for example, datasets on disk are represented by a proxy class that
- supports slicing, and has dtype and shape attributes. HDF5 groups are
- presented using a dictionary metaphor, indexed by name.
- .
- This package provides the debug extensions for Python 3, built for
- serial (single processor) jobs.
-
-Package: python3-h5py-mpi-dbg
-Architecture: any
-Multi-Arch: same
-Section: debug
-Depends: ${misc:Depends},
-         ${python3:Depends},
-         ${shlibs:Depends},
-         python3-h5py-mpi (= ${binary:Version}),
-         python3-h5py-serial-dbg (= ${binary:Version}),
-         python3-mpi4py-dbg,
-         python3-numpy-dbg
-Description: debug extensions for h5py (Python 3 MPI)
- HDF5 for Python (h5py) is a general-purpose Python interface to the
- Hierarchical Data Format library, version 5. HDF5 is a versatile, mature
- scientific software library designed for the fast, flexible storage of
- enormous amounts of data.
- .
- From a Python programmer's perspective, HDF5 provides a robust way to
- store data, organized by name in a tree-like fashion. You can create
- datasets (arrays on disk) hundreds of gigabytes in size, and perform
- random-access I/O on desired sections. Datasets are organized in a
- filesystem-like hierarchy using containers called "groups", and accessed
- using the tradional POSIX /path/to/resource syntax.
- .
- H5py provides a simple, robust read/write interface to HDF5 data from
- Python. Existing Python and Numpy concepts are used for the interface;
- for example, datasets on disk are represented by a proxy class that
- supports slicing, and has dtype and shape attributes. HDF5 groups are
- presented using a dictionary metaphor, indexed by name.
- .
- This package provides the debug extensions for Python 3, built with
- support for MPI (multiprocessor) jobs.
-
 Package: python-h5py-doc
 Architecture: all
 Multi-Arch: foreign
diff -Nru h5py-2.10.0/debian/patches/series h5py-2.10.0/debian/patches/series
--- h5py-2.10.0/debian/patches/series	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/patches/series	2021-03-30 13:01:26.000000000 +0200
@@ -12,4 +12,3 @@
 file_default_read_5e71c49.patch
 drop_deprecation_tests.patch
 tests_as_local_build.patch
-use_system_lzf.patch
diff -Nru h5py-2.10.0/debian/patches/use_system_lzf.patch h5py-2.10.0/debian/patches/use_system_lzf.patch
--- h5py-2.10.0/debian/patches/use_system_lzf.patch	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/patches/use_system_lzf.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-Index: h5py/setup_build.py
-===================================================================
---- h5py.orig/setup_build.py	2020-05-13 15:32:35.410900798 +0800
-+++ h5py/setup_build.py	2020-05-13 15:33:08.382765181 +0800
-@@ -35,9 +35,7 @@
-             'h5pl']
- 
- 
--EXTRA_SRC = {'h5z': [ localpath("lzf/lzf_filter.c"),
--              localpath("lzf/lzf/lzf_c.c"),
--              localpath("lzf/lzf/lzf_d.c")]}
-+EXTRA_SRC = {'h5z': [ localpath("lzf/lzf_filter.c") ]}
- 
- FALLBACK_PATHS = {
-     'include_dirs': [],
-@@ -45,8 +43,8 @@
- }
- 
- COMPILER_SETTINGS = {
--   'libraries'      : ['hdf5', 'hdf5_hl'],
--   'include_dirs'   : [localpath('lzf')],
-+   'libraries'      : ['hdf5', 'hdf5_hl', 'lzf'],
-+   'include_dirs'   : ['/usr/include/lzf', localpath('lzf')],
-    'library_dirs'   : [],
-    'define_macros'  : [('H5_USE_16_API', None)]
- }
diff -Nru h5py-2.10.0/debian/rules h5py-2.10.0/debian/rules
--- h5py-2.10.0/debian/rules	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/rules	2021-03-30 13:01:26.000000000 +0200
@@ -17,6 +17,8 @@
 PYBUILD_DIR_SERIAL=$(shell PYBUILD_NAME=$(PYBUILD_NAME_SERIAL) pybuild -p `py3versions -dv` --print {build_dir})
 PYBUILD_DIR_MPI=$(shell PYBUILD_NAME=$(PYBUILD_NAME_MPI) pybuild -p `py3versions -dv` --print {build_dir})
 
+include /usr/share/mpi-default-dev/debian_defaults
+DEFAULT_MPI=$(ARCH_DEFAULT_MPI_IMPL)
 export OMPI_MCA_plm_rsh_agent=/bin/false
 export OMPI_MCA_rmaps_base_oversubscribe=1
 
@@ -49,7 +51,7 @@
 	cp -r debian/wrapper_module/h5py $(BUILD_DIR_MPI)
 	mv $(BUILD_DIR_MPI)/$(SUBMODULE_MPI) $(BUILD_DIR_MPI)/h5py
 	cd $(BUILD_DIR_SERIAL); PYBUILD_NAME=$(PYBUILD_NAME_SERIAL) python3 setup.py configure --hdf5-pc=hdf5-serial
-	cd $(BUILD_DIR_MPI); PYBUILD_NAME=$(PYBUILD_NAME_MPI) CC=h5pcc python3 setup.py configure --mpi --hdf5-pc=hdf5-mpi
+	cd $(BUILD_DIR_MPI); PYBUILD_NAME=$(PYBUILD_NAME_MPI) CC=h5pcc python3 setup.py configure --mpi --hdf5-pc=hdf5-$(DEFAULT_MPI)
 
 build-mpi:
 	PYBUILD_NAME=$(PYBUILD_NAME_MPI) CC=h5pcc dh_auto_build -D $(BUILD_DIR_MPI)
@@ -119,10 +121,4 @@
 
 override_dh_installdocs-indep:
 	dh_installdocs
-	grep "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js"; debian/python-h5py-doc/usr/share/doc/python-h5py-doc/html/* -R --files-with-matches | xargs sed "s|https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js|file://usr/share/javascript/mathjax/unpacked/latest.js|g" -i
-
-override_dh_strip-arch:
-	dh_strip --package=python3-h5py-serial \
-		--dbg-package=python3-h5py-serial-dbg
-	dh_strip --package=python3-h5py-mpi \
-		--dbg-package=python3-h5py-mpi-dbg
+	grep "https://cdnjs.cloudflare.com/ajax/libs/mathjax/*/latest.js"; debian/python-h5py-doc/usr/share/doc/python-h5py-doc/html/* -R --files-with-matches | xargs -r sed "s|https://cdnjs.cloudflare.com/ajax/libs/mathjax/*/latest.js|file://usr/share/javascript/mathjax/unpacked/latest.js|g" -i
diff -Nru h5py-2.10.0/debian/tests/control h5py-2.10.0/debian/tests/control
--- h5py-2.10.0/debian/tests/control	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/tests/control	2021-03-30 13:01:26.000000000 +0200
@@ -1,17 +1,13 @@
 Tests: python3-serial
 Depends: python3-all,
-         python3-all-dbg,
          python3-h5py-serial,
-         python3-h5py-serial-dbg,
          python3-pytest,
          python3-unittest2,
 Restrictions: allow-stderr
 
 Tests: python3-mpi
 Depends: python3-all,
-         python3-all-dbg,
          python3-h5py-mpi,
-         python3-h5py-mpi-dbg,
          python3-pytest,
          python3-unittest2,
          mpi-default-bin
diff -Nru h5py-2.10.0/debian/tests/python3-serial h5py-2.10.0/debian/tests/python3-serial
--- h5py-2.10.0/debian/tests/python3-serial	2020-08-17 13:54:50.000000000 +0200
+++ h5py-2.10.0/debian/tests/python3-serial	2021-03-30 13:01:26.000000000 +0200
@@ -8,7 +8,4 @@
     echo "\n=== Testing serial build with $py ==="
     $py -c "import h5py; h5py.run_tests('-v')"
 
-    echo "\n=== Testing serial build with $py-dbg ==="
-    $py-dbg -c "import h5py; h5py.run_tests('-v')"
-
 done

Reply to: