Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
Hello Anton, that is great news! Keeping VTK and ParaView in sync' is not going to be easy: Sync'ing VTK sources and ParaView's VTK sources and allowing both to be co-installable, increases the maintenance burden for both package maintainers. Especially for Alastair McKinstry, because he would have to copy and adapt all patches from (Debian's) VTK package sources to his ParaView VTK sources. Latest ParaView release is 5.8.1 [1] and that is using a pre-VTK9 development version of VTK [2][3] ?!? The master branch of next ParaView release [4] has VTK 9 [5]. ParaView's release tarballs are published without the VTK subfolder [6], but I am not sure whether that is due to a "bug" [7] of the GitHub release process or if that means it is valid to "mix" different ParaView and VTK releases. ParaView CMakeLists.txt uses VTK's CMake files [8] before considering PARAVIEW_USE_EXTERNAL_VTK [9], hence ParaView requires the VTK subdirectory to be present anyway. For Debian users, it would be beneficial to have VTK and ParaView packages in sync and possibly installed at the same time, because that enables them e.g. 1. run (i)python3 or pvpython and enter 'import vtk' without crashs 2. use find_package(VTK) and find_package(ParaView) in a single CMakeLists.txt without tedious if-else constructs [1] https://gitlab.kitware.com/paraview/paraview/-/tree/v5.8.1 [2] https://gitlab.kitware.com/paraview/paraview/-/commit/ce73a508883c599927967be854ecfbf1562f032f [3] https://gitlab.kitware.com/vtk/vtk/-/blob/da522f73bc0639f8c995b8c89e21d604656f99e2/CMake/vtkVersion.cmake [4] https://gitlab.kitware.com/paraview/paraview [5] https://gitlab.kitware.com/vtk/vtk/-/blob/ae3f586abc4032895ce05e664d4a6ad84f990ef2/CMake/vtkVersion.cmake [6] https://github.com/Kitware/ParaView/releases [7] https://stackoverflow.com/a/34721233/6490710 [8] https://github.com/Kitware/ParaView/blob/v5.8.1/CMakeLists.txt#L98 [9] https://github.com/Kitware/ParaView/blob/v5.8.1/CMakeLists.txt#L218 Best regards Jakob signature.asc Description: OpenPGP digital signature
Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
Hello Jakob, thanks for work on this huge and difficult packages! Just to let you know, i am going to start to work on recently released VTK9. We can coordinate our work and to try to solve this problem, if it is possible. Best regards Anton Am Fr., 28. Aug. 2020 um 12:09 Uhr schrieb Jakob Meng : > PPPS: > > ParaView installs its Python modules as well as all the VTK Python > modules as part of its CMake install process. If python3-vtk8 [1] ever > enters Debian this might cause file collisions, as both python3-paraview > and python3-vtk8 install files to the same locations and hence cannot be > co-installed. So either we skip installing VTK Python modules during > ParaView install or we install those ParaView's VTK Python modules to a > different location by setting e.g. VTK_PYTHON_SITE_PACKAGES_SUFFIX. When > skipping VTK Python module install, then we have to make sure that all > VTK-related files in ParaView and VTK packages do match exactly and have > the same patches applied. Else Python, ParaView or its Python modules > might crash or even worse cause silent data and memory corruption bugs. > > Just calling 'rm -fr debian/tmp/usr/lib/python3*/dist-packages/vtk*' in > ParaView's debian/rules is not a proper workaround. ParaView 5.7 from > Debian Sid uses a development version of VTK8 (not far from VTK9 > release?) [4], while Debian's dedicated VTK8 package [1] is at 8.2, so > both VTK versions have many differences. > > ParaView has CMake flags to build with an external VTK install [6], but > this is not supported at least in ParaView 5.7.0 [7]. > > BTW, these incompatibilities affect older Debian releases as well. For > example, install both packages 'paraview-python' [2] and 'python3-vtk7' > [3] on Debian 10 (Buster), run pvpython and enter 'import vtk'. ParaView > Python will crash. So always remember to enter 'import paraview.vtk' on > Debian and Ubuntu [5]. > > To avoid these bugs, my reworked ParaView package does not allow > parallel installs of python3-vtk7 or python3-vtk8 [8]. Both paraview-dev > and python3-paraview install a lot (all?) of VTK's headers, libraries > and Python modules anyway. > > Ref.: > [1] https://salsa.debian.org/science-team/vtk8/ > [2] https://packages.debian.org/buster/paraview-python > [3] https://packages.debian.org/buster/python3-vtk7 > [4] > > https://salsa.debian.org/science-team/paraview/-/blob/master/VTK/CMake/vtkVersion.cmake > [5] https://blog.kitware.com/import-vtk-or-import-paraview-vtk/ > [6] https://github.com/Kitware/ParaView/blob/v5.8.1/CMakeLists.txt#L218 > [7] https://github.com/Kitware/ParaView/blob/v5.7.0/CMakeLists.txt#L290 > [8] > > https://git.inf.h-brs.de/jmeng2m/debian-package-paraview/-/blob/debian/5.7.0+ds.1-3/debian/control#L172 > > > -- > debian-science-maintainers mailing list > debian-science-maintain...@alioth-lists.debian.net > > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers
Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
PPPS: ParaView installs its Python modules as well as all the VTK Python modules as part of its CMake install process. If python3-vtk8 [1] ever enters Debian this might cause file collisions, as both python3-paraview and python3-vtk8 install files to the same locations and hence cannot be co-installed. So either we skip installing VTK Python modules during ParaView install or we install those ParaView's VTK Python modules to a different location by setting e.g. VTK_PYTHON_SITE_PACKAGES_SUFFIX. When skipping VTK Python module install, then we have to make sure that all VTK-related files in ParaView and VTK packages do match exactly and have the same patches applied. Else Python, ParaView or its Python modules might crash or even worse cause silent data and memory corruption bugs. Just calling 'rm -fr debian/tmp/usr/lib/python3*/dist-packages/vtk*' in ParaView's debian/rules is not a proper workaround. ParaView 5.7 from Debian Sid uses a development version of VTK8 (not far from VTK9 release?) [4], while Debian's dedicated VTK8 package [1] is at 8.2, so both VTK versions have many differences. ParaView has CMake flags to build with an external VTK install [6], but this is not supported at least in ParaView 5.7.0 [7]. BTW, these incompatibilities affect older Debian releases as well. For example, install both packages 'paraview-python' [2] and 'python3-vtk7' [3] on Debian 10 (Buster), run pvpython and enter 'import vtk'. ParaView Python will crash. So always remember to enter 'import paraview.vtk' on Debian and Ubuntu [5]. To avoid these bugs, my reworked ParaView package does not allow parallel installs of python3-vtk7 or python3-vtk8 [8]. Both paraview-dev and python3-paraview install a lot (all?) of VTK's headers, libraries and Python modules anyway. Ref.: [1] https://salsa.debian.org/science-team/vtk8/ [2] https://packages.debian.org/buster/paraview-python [3] https://packages.debian.org/buster/python3-vtk7 [4] https://salsa.debian.org/science-team/paraview/-/blob/master/VTK/CMake/vtkVersion.cmake [5] https://blog.kitware.com/import-vtk-or-import-paraview-vtk/ [6] https://github.com/Kitware/ParaView/blob/v5.8.1/CMakeLists.txt#L218 [7] https://github.com/Kitware/ParaView/blob/v5.7.0/CMakeLists.txt#L290 [8] https://git.inf.h-brs.de/jmeng2m/debian-package-paraview/-/blob/debian/5.7.0+ds.1-3/debian/control#L172 signature.asc Description: OpenPGP digital signature
Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
PPS: Binary packages can be downloaded here: http://home.infcs.de/~jmeng2m/debian-package-paraview/ They were build using my university's GitLab CI instance and the official debian/buildd:sid docker image. CI file: https://git.inf.h-brs.de/jmeng2m/debian-package-paraview/-/blob/gitlab-ci/.gitlab-ci.yml Build log: https://git.inf.h-brs.de/jmeng2m/debian-package-paraview/-/jobs/421 signature.asc Description: OpenPGP digital signature
Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
PS: I've uploaded a patched package based on ParaView 5.7.0-4 from Debian Sid to https://git.inf.h-brs.de/jmeng2m/debian-package-paraview signature.asc Description: OpenPGP digital signature
Bug#959387: [Re] paraview-dev: missing cmake vtk modules in the dev package, cannot use
Found another problem with the ParaView source package in Debian Sid. The Salsa GitLab Repo of ParaView has Git LFS Pointers, e.g. [1]. The source tarball paraview_5.7.0.orig.tar.xz [2] that has been uploaded to Debian Sid does not have the binary files but the raw Git LFS pointers instead! For example, file VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/data/tornado.vec in the source tarball is: version https://git-lfs.github.com/spec/v1 oid sha256:dca8105bf888e67a9fe476a563d69ac708925aec519814fb520c6057e5ca0a1f size 1327116 [1] https://salsa.debian.org/science-team/paraview/-/tree/master/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/data [2] http://deb.debian.org/debian/pool/main/p/paraview/paraview_5.7.0.orig.tar.xz signature.asc Description: OpenPGP digital signature