Source: h5py Version: 3.7.0-3 Tags: patch User: debian-cr...@lists.debian.org Usertags: cross-satisfiability
h5py has lots of Build-Depends of which quite many pose issues to cross compilation. It turns out that a fair number of them are easily droppable. A first observation is that the documentation is already split to an Arch:all -doc package and sphinx is only run during an binary-indep build. Moving all of the sphinx dependencies to B-D-I means that they become irrelevant to cross building. Only the clean target needd a small modification to make that work. In a similar vein, <!nocheck> annotated dependencies become irrelevant to cross building and that turns out to work for pytest. Another issue is python3-all-dev. It has to be rewritten as python3-all-dev:any + libpython3-all-dev. I'm attaching a patch for your convenience. I couldn't resist also replacing hard coded pkg-config calls and hope this is acceptable as well. Helmut
diff --minimal -Nru h5py-3.7.0/debian/changelog h5py-3.7.0/debian/changelog --- h5py-3.7.0/debian/changelog 2022-11-14 17:45:49.000000000 +0100 +++ h5py-3.7.0/debian/changelog 2022-12-13 17:44:24.000000000 +0100 @@ -1,3 +1,16 @@ +h5py (3.7.0-3.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Reduce Build-Depends: (Closes: #-1) + + Declaratively request debhelper addons. + + Clean docs without requiring sphinx. + + Move sphinx dependencies to B-D-I. + + Annotate pytest dependencies <!nocheck>. + + Multiarchify python Build-Depends. + * Don't hard code the build architecture pkg-config. + + -- Helmut Grohne <hel...@subdivi.de> Tue, 13 Dec 2022 17:44:24 +0100 + h5py (3.7.0-3) unstable; urgency=medium * Team upload. diff --minimal -Nru h5py-3.7.0/debian/control h5py-3.7.0/debian/control --- h5py-3.7.0/debian/control 2022-11-14 17:45:49.000000000 +0100 +++ h5py-3.7.0/debian/control 2022-12-13 16:42:51.000000000 +0100 @@ -6,25 +6,28 @@ Priority: optional Build-Depends: cython3 (>= 0.29.15), debhelper-compat (= 13), - dh-python, + dh-sequence-python3, pybuild-plugin-pyproject, dpkg-dev (>= 1.17.14), libhdf5-dev, libhdf5-mpi-dev (>= 1.10.6+repack-1), - libjs-mathjax, liblzf-dev, + libpython3-all-dev, mpi-default-dev, pkg-config, - python3-all-dev, + python3-all-dev:any, python3-cached-property, python3-mpi4py (>= 3.0.3), python3-numpy (>= 1.19.3), python3-pkgconfig, - python3-pytest, - python3-pytest-mpi, + python3-pytest <!nocheck>, + python3-pytest-mpi <!nocheck>, python3-setuptools, python3-six, python3-unittest2, +Build-Depends-Indep: + dh-sequence-sphinxdoc <!nodoc>, + libjs-mathjax, python3-sphinx <!nodoc> Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/science-team/h5py diff --minimal -Nru h5py-3.7.0/debian/rules h5py-3.7.0/debian/rules --- h5py-3.7.0/debian/rules 2022-11-14 17:45:49.000000000 +0100 +++ h5py-3.7.0/debian/rules 2022-12-13 16:29:57.000000000 +0100 @@ -4,6 +4,7 @@ #export DH_VERBOSE = 1 include /usr/share/dpkg/buildflags.mk +include /usr/share/dpkg/buildtools.mk export DEB_BUILD_MAINT_OPTIONS = hardening=+all @@ -23,7 +24,7 @@ export OMPI_MCA_rmaps_base_oversubscribe=1 %: - dh $@ --with python3,sphinxdoc --buildsystem=pybuild + dh $@ --buildsystem=pybuild override_dh_clean: dh_clean @@ -32,10 +33,7 @@ override_dh_auto_clean: dh_auto_clean -D $(BUILD_DIR_SERIAL) || /bin/true dh_auto_clean -D $(BUILD_DIR_MPI) || /bin/true -ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) - $(MAKE) -C docs clean - $(MAKE) -C docs_api clean -endif + rm -Rf docs/_build docs_api/_build override_dh_auto_configure: mkdir $(BUILD_DIR_SERIAL); bash -O extglob -c "cp -ra ./!($(BUILD_DIR_SERIAL)) $(BUILD_DIR_SERIAL)" @@ -66,7 +64,7 @@ for DIR in $$(find .pybuild/cpython3*mpi -name build); do \ cp -r $(CURDIR)/debian/wrapper_module/h5py/* $$DIR/h5py/; \ done - cd $(BUILD_DIR_MPI)/lzf; $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(shell pkg-config --cflags --libs hdf5-mpi liblzf) -fPIC -shared lzf_filter.c -o liblzf_filter.so + cd $(BUILD_DIR_MPI)/lzf; $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(shell $(PKG_CONFIG) --cflags --libs hdf5-mpi liblzf) -fPIC -shared lzf_filter.c -o liblzf_filter.so # build serial build only for arch builds execute_after_dh_auto_build-arch: export http_proxy=127.0.0.1:9 @@ -76,7 +74,7 @@ for DIR in $$(find .pybuild/cpython3*serial -name build); do \ cp -r $(CURDIR)/debian/wrapper_module/h5py/* $$DIR/h5py/; \ done - cd $(BUILD_DIR_SERIAL)/lzf; $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(shell pkg-config --cflags --libs hdf5-serial liblzf) -fPIC -shared lzf_filter.c -o liblzf_filter.so + cd $(BUILD_DIR_SERIAL)/lzf; $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(shell $(PKG_CONFIG) --cflags --libs hdf5-serial liblzf) -fPIC -shared lzf_filter.c -o liblzf_filter.so ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) @@ -122,8 +120,8 @@ rm -rf debian/python3-h5py-serial/usr/lib/python*/dist-packages/h5py/_debian_h5py_serial/tests/data_files rm -rf debian/python3-h5py-mpi/usr/lib/python*/dist-packages/h5py/_debian_h5py_mpi/tests/data_files dh_install -a - dh_install -phdf5-plugin-lzf $(BUILD_DIR_SERIAL)/lzf/liblzf_filter.so $(shell pkg-config --variable=PluginDir hdf5-serial) - dh_install -phdf5-plugin-lzf $(BUILD_DIR_MPI)/lzf/liblzf_filter.so $(shell pkg-config --variable=PluginDir hdf5-mpi) + dh_install -phdf5-plugin-lzf $(BUILD_DIR_SERIAL)/lzf/liblzf_filter.so $(shell $(PKG_CONFIG) --variable=PluginDir hdf5-serial) + dh_install -phdf5-plugin-lzf $(BUILD_DIR_MPI)/lzf/liblzf_filter.so $(shell $(PKG_CONFIG) --variable=PluginDir hdf5-mpi) override_dh_python3-arch: PYBUILD_NAME=$(PYBUILD_NAME_SERIAL) dh_python3