> Hi, > > The recent upload of paraview release 5.7.0-3 was to fix a Python3 version > related FTBFS: >> paraview (5.7.0-3) unstable; urgency=medium > >> * Hard-code Build-Dep on python3.8-dev. This wasn't being pulled in >> correctly >> leading to FTBFS. > > Instead of depending on a hardcoded Python3 version, the correct fix should be > to build against every supported Python3 version. This way it won't FTBFS on > the next change in the supported Python3 version list. > > Please find attached a patch proposal.
Here is an updated version of the patch which doesn't install the unwanted mpi4py pthon3 module. _g.
diff -Nru paraview-5.7.0/debian/changelog paraview-5.7.0/debian/changelog --- paraview-5.7.0/debian/changelog 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/changelog 2019-12-13 19:25:32.000000000 +0100 @@ -1,3 +1,17 @@ +paraview (5.7.0-4) UNRELEASED; urgency=medium + + * Build for all supported Python3 versions + * New patches: python3-exact.patch, python3-exec-versions.patch + + -- Gilles Filippini <p...@debian.org> Fri, 13 Dec 2019 19:25:32 +0100 + +paraview (5.7.0-3) unstable; urgency=medium + + * Hard-code Build-Dep on python3.8-dev. This wasn't being pulled in correctly + leading to FTBFS. + + -- Alastair McKinstry <mckins...@debian.org> Wed, 11 Dec 2019 09:16:00 +0000 + paraview (5.7.0-2) unstable; urgency=medium * Rename paraview-python to standard python3-paraview. Closes: #944324 diff -Nru paraview-5.7.0/debian/control paraview-5.7.0/debian/control --- paraview-5.7.0/debian/control 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/control 2019-12-13 19:25:32.000000000 +0100 @@ -27,7 +27,7 @@ libavcodec-dev, libswscale-dev, libqt5sql5-sqlite, - python3-dev, + python3-all-dev, dh-python, libglu1-mesa-dev, libxt-dev, diff -Nru paraview-5.7.0/debian/patches/python3-exact.patch paraview-5.7.0/debian/patches/python3-exact.patch --- paraview-5.7.0/debian/patches/python3-exact.patch 1970-01-01 01:00:00.000000000 +0100 +++ paraview-5.7.0/debian/patches/python3-exact.patch 2019-12-13 19:25:32.000000000 +0100 @@ -0,0 +1,42 @@ +Description: Makes cmake request the exact python3 version referenced + by variable DEBIAN_PYTHON_PYTHON. This allows building for several + python3 versions. +Index: paraview-5.7.0/VTK/CMake/vtkModule.cmake +=================================================================== +--- paraview-5.7.0.orig/VTK/CMake/vtkModule.cmake ++++ paraview-5.7.0/VTK/CMake/vtkModule.cmake +@@ -3643,6 +3643,9 @@ macro (vtk_module_find_package) + "The `FORWARD_VERSION_REQ` argument must be one of `MAJOR`, `MINOR`, " + "`PATCH`, or `EXACT`.") + endif () ++ if (_vtk_find_package_FORWARD_VERSION_REQ STREQUAL "EXACT") ++ set(_vtk_find_module_exact_option EXACT) ++ endif () + endif () + + if (NOT DEFINED _vtk_find_package_VERSION_VAR) +@@ -3656,7 +3659,7 @@ macro (vtk_module_find_package) + endif () + + find_package("${_vtk_find_package_PACKAGE}" +- ${_vtk_find_package_VERSION} ++ ${_vtk_find_package_VERSION} ${_vtk_find_module_exact_option} + ${_vtk_find_package_config} + COMPONENTS ${_vtk_find_package_COMPONENTS} + OPTIONAL_COMPONENTS ${_vtk_find_package_OPTIONAL_COMPONENTS}) +Index: paraview-5.7.0/VTK/Utilities/Python/CMakeLists.txt +=================================================================== +--- paraview-5.7.0.orig/VTK/Utilities/Python/CMakeLists.txt ++++ paraview-5.7.0/VTK/Utilities/Python/CMakeLists.txt +@@ -43,9 +43,9 @@ elseif (VTK_PYTHON_VERSION STREQUAL "3") + endif () + vtk_module_find_package( + PACKAGE Python3 +- VERSION "${vtk_python_min_version}" ++ VERSION "${DEBIAN_PYTHON_VERSION}" + COMPONENTS Development +- FORWARD_VERSION_REQ MINOR) ++ FORWARD_VERSION_REQ EXACT) + else () + message(FATAL_ERROR + "`VTK_PYTHON_VERSION` must either be 2 or 3.") diff -Nru paraview-5.7.0/debian/patches/python3-exec-versions.patch paraview-5.7.0/debian/patches/python3-exec-versions.patch --- paraview-5.7.0/debian/patches/python3-exec-versions.patch 1970-01-01 01:00:00.000000000 +0100 +++ paraview-5.7.0/debian/patches/python3-exec-versions.patch 2019-12-13 19:25:32.000000000 +0100 @@ -0,0 +1,18 @@ +Description: Name the python related executables after the python3 + version they were built for +Index: paraview-5.7.0/CommandLineExecutables/CMakeLists.txt +=================================================================== +--- paraview-5.7.0.orig/CommandLineExecutables/CMakeLists.txt ++++ paraview-5.7.0/CommandLineExecutables/CMakeLists.txt +@@ -56,9 +56,9 @@ endforeach () + + if (PARAVIEW_ENABLE_PYTHON) + foreach (exe IN ITEMS pvbatch pvpython) +- paraview_add_executable("${exe}" "${exe}.cxx") ++ paraview_add_executable("${exe}${DEBIAN_PYTHON_VERSION}" "${exe}.cxx") + list(APPEND paraview_tools +- "${exe}") ++ "${exe}${DEBIAN_PYTHON_VERSION}") + endforeach () + endif () + diff -Nru paraview-5.7.0/debian/patches/series paraview-5.7.0/debian/patches/series --- paraview-5.7.0/debian/patches/series 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/patches/series 2019-12-13 19:25:32.000000000 +0100 @@ -2,3 +2,5 @@ security-format.patch override-fix.patch python3.8.patch +python3-exact.patch +python3-exec-versions.patch diff -Nru paraview-5.7.0/debian/python3-paraview.install paraview-5.7.0/debian/python3-paraview.install --- paraview-5.7.0/debian/python3-paraview.install 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/python3-paraview.install 2019-12-13 19:25:32.000000000 +0100 @@ -1,2 +1,3 @@ usr/bin/pvpython usr/lib/*/vtk +usr/lib/python3* diff -Nru paraview-5.7.0/debian/python3-paraview.pyinstall paraview-5.7.0/debian/python3-paraview.pyinstall --- paraview-5.7.0/debian/python3-paraview.pyinstall 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/python3-paraview.pyinstall 1970-01-01 01:00:00.000000000 +0100 @@ -1,27 +0,0 @@ -# paraview vtkmodules vtk.py -debian/tmp/usr/lib/*/python3*/site-packages/vtk.py vtk -debian/tmp/usr/lib/*/python3*/site-packages/paraview/*.py paraview -debian/tmp/usr/lib/*/python3*/site-packages/paraview/demos/*.py paraview.demos -debian/tmp/usr/lib/*/python3*/site-packages/paraview/detail/*.py paraview.detail -debian/tmp/usr/lib/*/python3*/site-packages/paraview/benchmark/*.py paraview.benchmark -debian/tmp/usr/lib/*/python3*/site-packages/paraview/modules/*.py paraview.modules -debian/tmp/usr/lib/*/python3*/site-packages/paraview/util/*.py paraview.util -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/*.py paraview.tpl -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/cinema_python/*.py paraview.tpl.cinema_python -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/cinema_python/database/*.py paraview.tpl.cinema_python.database -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/cinema_python/images/*.py paraview.tpl.cinema_python.images -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/cinema_python/adaptors/*.py paraview.tpl.cinema_python.adaptors -debian/tmp/usr/lib/*/python3*/site-packages/paraview/tpl/cinema_python/adaptors/paraview/*.py paraview.tpl.cinema_python.adaptors.paraview -#debian/tmp/usr/lib/*/python3*/site-packages/paraview/vtk/*.py paraview.vtk -debian/tmp/usr/lib/*/python3*/site-packages/paraview/modules/*.py paraview.modules -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/*.py vtkmodules -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/gtk/*.py vtkmodules.gtk -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/tk/*.py vtkmodules.tk -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/qt/*.py vtkmodules.qt -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/wx/*.py vtkmodules.wx -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/test/*.py vtkmodules.test -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/util/*.py vtkmodules.util -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/numpy_interface/*.py vtkmodules.numpy_interface -# modules -debian/tmp/usr/lib/*/python3*/site-packages/paraview/modules/*.so paraview.modules -debian/tmp/usr/lib/*/python3*/site-packages/vtkmodules/*.so vtkmodules diff -Nru paraview-5.7.0/debian/rules paraview-5.7.0/debian/rules --- paraview-5.7.0/debian/rules 2019-11-17 19:31:26.000000000 +0100 +++ paraview-5.7.0/debian/rules 2019-12-13 19:25:32.000000000 +0100 @@ -5,7 +5,10 @@ UPSTREAM_VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ { sub("-[^-]*$$", "", $$2); print $$2}') %: - dh $@ --buildsystem=cmake --with python3 + dh $@ --buildsystem=cmake --with python3 --parallel + +PY3VERS=$(shell py3versions -vr) +PY3DEF=$(shell py3versions -dv) export LD_LIBRARY_PATH+=:$(CURDIR)/debian/paraview/usr/lib/paraview export QT_SELECT=qt5 @@ -75,8 +78,39 @@ -DPARAVIEW_ENABLE_MOTIONFX=ON \ -DPARAVIEW_PLUGIN_ENABLE_EyeDomeLighting=ON -override_dh_auto_configure: - dh_auto_configure -- $(extra_flags) +override_dh_auto_clean: + dh_auto_clean + rm -fr build.* + +my_configure_python%: pyver=$(patsubst my_configure_python%,%,$@) +my_configure_python%: + dh_auto_configure -Bbuild.python$(pyver) -- $(extra_flags) -DPython3_EXECUTABLE=/usr/bin/python$(pyver) -DDEBIAN_PYTHON_VERSION=$(pyver) + +override_dh_auto_configure: $(foreach pyver,$(PY3VERS), my_configure_python$(pyver)) + +my_build_python%: pyver=$(patsubst my_build_python%,%,$@) +my_build_python%: + dh_auto_build -Bbuild.python$(pyver) + +override_dh_auto_build: $(foreach pyver,$(PY3VERS), my_build_python$(pyver)) + +my_install_python%: pyver=$(patsubst my_install_python%,%,$@) +my_install_python%: + dh_auto_install -Bbuild.python$(pyver) + +override_dh_auto_install: $(foreach pyver,$(PY3VERS), my_install_python$(pyver)) + # Use the defaut python3 version for the tools + cd debian/tmp/usr/bin $(foreach exe,pvbatch pvpython,&& mv $(exe)$(PY3DEF) $(exe)) + # Move out python3 modules from archtriplet subfolder to have correct behavior from dh_python3 + mv debian/tmp/usr/lib/*/python3* debian/tmp/usr/lib/ + # Drop unwanted mpi4py module + rm -fr debian/tmp/usr/lib/python3*/site-packages/mpi4py + +my_test_python%: pyver=$(patsubst my_test_python%,%,$@) +my_test_python%: + dh_auto_test -Bbuild.python$(pyver) + +override_dh_auto_test: $(foreach pyver,$(PY3VERS), my_test_python$(pyver)) override_dh_compress: dh_compress -X.qch
signature.asc
Description: OpenPGP digital signature