> 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

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
debian-science-maintainers mailing list
debian-science-maintainers@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to