[Debian-med-packaging] Bug#1012689: mia: Migration from vtk7 to vtk9

Francois Mazen francois at mzf.fr
Sat Jun 11 19:55:38 BST 2022


Source: mia
Severity: wishlist
Tags: patch
X-Debbugs-Cc: francois at mzf.fr

Dear Maintainer,

Mia package depends on vtk7 which is quite old and not maintained upstream.

I've succeeded to build mia with vtk9 by changing Build-Depends from
libvtk7-dev to libvtk9-dev and fixing CMake and build errors.
The patch is attached to this message.

Could you please update to vtk9?

Thanks,

François
-------------- next part --------------
--- a/addons/vtk/CMakeLists.txt
+++ b/addons/vtk/CMakeLists.txt
@@ -20,9 +20,9 @@
 
 IF(WITH_VTKIO)
   if (STRICT_DEPENDECIES)
-    FIND_PACKAGE(VTK REQUIRED COMPONENTS  vtkIOImage  vtkIOXML vtkIOLegacy)
+    FIND_PACKAGE(VTK REQUIRED COMPONENTS  IOImage IOXML IOLegacy)
   else (STRICT_DEPENDECIES)
-    FIND_PACKAGE(VTK COMPONENTS vtkIOImage vtkIOXML vtkIOLegacy)
+    FIND_PACKAGE(VTK COMPONENTS IOImage IOXML IOLegacy)
   endif (STRICT_DEPENDECIES)
   IF(VTK_FOUND)
     DEFINE_PROPERTY(GLOBAL PROPERTY HAVE_VTK_PROP BRIEF_DOCS "yeah" FULL_DOCS "yeah")
@@ -41,8 +41,17 @@
     SET(VTK_LINK_LIBS_3D ${SELECTED_VTK_LIBS} mia3d)
 
     PLUGIN_WITH_TEST_AND_PREFIX2("mesh" "io" vtkmesh "${VTK_LINK_LIBS_MESH}")
+    target_link_libraries(mesh-io-vtkmesh ${VTK_LIBRARIES})
+    target_link_libraries(mesh-io-vtkmesh-common ${VTK_LIBRARIES})
+    target_link_libraries(test-mesh-io-vtkmesh ${VTK_LIBRARIES})
     PLUGIN_WITH_TEST_AND_PREFIX2("3dvf" "io" vtkvf "${VTK_LINK_LIBS_3D}")
+    target_link_libraries(3dvf-io-vtkvf ${VTK_LIBRARIES})
+    target_link_libraries(3dvf-io-vtkvf-common ${VTK_LIBRARIES})
+    target_link_libraries(test-3dvf-io-vtkvf ${VTK_LIBRARIES})
     PLUGIN_WITH_TEST_AND_PREFIX2("3dimage" "io" vtkimage "${VTK_LINK_LIBS_3D}")
+    target_link_libraries(3dimage-io-vtkimage ${VTK_LIBRARIES})
+    target_link_libraries(3dimage-io-vtkimage-common ${VTK_LIBRARIES})
+    target_link_libraries(test-3dimage-io-vtkimage ${VTK_LIBRARIES})
 
   ELSEIF(VTK_FOUND)
     MESSAGE(MESSAGE "VTK not found, disabled")
--- a/addons/vtk/vtkmesh.cc
+++ b/addons/vtk/vtkmesh.cc
@@ -78,7 +78,8 @@
        // read all cells, if a cell is formed of more than 3 corners, then triangulate,
        // if it hes less then 3 corners, ignore it (no wireframes supported here
        auto triangles = CVtkMeshIO::PTrianglefield(new CVtkMeshIO::CTrianglefield ());
-       vtkIdType npts, *pts;
+       vtkIdType npts;
+       vtkIdType const *pts;
        auto strips = mesh.GetStrips();
 
        while (strips->GetNextCell(npts, pts)) {
@@ -183,7 +184,7 @@
        auto is = mesh.normals_begin();
 
        for (auto i = 0; i < n_normals; ++i, ++is) {
-              normals->GetTupleValue(i, &is->x);
+              normals->GetTypedTuple(i, &is->x);
               cvdebug() << i << ": read normal " << *is << "\n";
        }
 }
@@ -217,7 +218,7 @@
        auto is = mesh.color_begin();
 
        for (auto i = 0; i < n_colors; ++i, ++is)
-              colors->GetTupleValue(i, &is->x);
+              colors->GetTypedTuple(i, &is->x);
 }
 
 PTriangleMesh CVtkMeshIO::do_load(string const&   filename) const


More information about the Debian-med-packaging mailing list