#1035426 libvtk9-dev ships uncompilable headers

Package:
libvtk9-dev
Source:
libvtk9-dev
Description:
VTK header files
Submitter:
Steve Langasek
Date:
2026-01-31 01:29:03 UTC
Severity:
normal
#1035426#5
Date:
2023-05-03 09:26:37 UTC
From:
To:
Dear maintainers,

As part of an investigation to establish the feasibility of moving 32-bit
archs to 64-bit time_t, I am running an analysis of all header files in the
archive to determine which libraries' ABIs are affected.  This requires the
headers in question to be compilable.

libvtk9-dev ships header files which have includes that are not satisfiable
in Debian.  For my purposes, I've worked around these unusable headers by
adding quirks to my scripts, but it seems worth reporting as a bug that
headers are being shipped that aren't usable.

- /usr/include/vtk-9.1/vtkParseData.h includes vtkParseAttributes.h.  There
  is a file by this name in paraview-dev, but that seems a wrong thing to
  depend on?

- /usr/include/vtk-9.1/vtkQImageToImageSource.h includes
  vtkRenderingQtModule.h which is in libvtk9-qt-dev, so possibly it's
  packaged in the wrong place?

- /usr/include/vtk-9.1/vtk_libxml2.h includes libxml/xmlversion.h from
  libxml2-dev

- /usr/include/vtk-9.1/vtk_pegtl.h includes vtkpegtl/include/tao/pegtl.hpp
  which does not exist in Debian

- /usr/include/vtk-9.1/vtk_verdict.h includes vtkverdict/verdict.h which is
  only in libvtk7-dev

- /usr/include/vtk-9.1/vtk_mpi.h et al require mpi.h from, e.g.,
  libmpich-dev

- /usr/include/vtk-9.1/vtkCompositeMapperHelper2.h requires GLenum from
  GL/gl.h but does not #include it (though a correct dependency is present)

#1035426#10
Date:
2026-01-30 22:13:40 UTC
From:
To:
Triaging the status of this bug in VTK 9.5 (9.5.2+dfsg3-4)

Resolved.
/usr/include/vtk-9.5/vtkParseAttributes.h is now provided by
libvtk9-dev

Still a valid suggestion.
/usr/include/vtk-9.5/vtkRenderingQtModule.h is provided by
libvtk9-qt-dev.

/usr/include/vtk-9.5/vtkQImageToImageSource.h is still provided by
could be moved to libvtk9-qt-dev. It seems reasonable to suggest moving it
to libvtk9-qt-dev.

Resolved I think.
/usr/include/vtk-9.5/vtk_libxml2.h (in libvtk9-dev) provides a header
macro VTKLIBXML2_HEADER(X) which accesses libxml (under
/usr/include/libxml2 from libxml2-dev

libvtk9-dev Depends: libxml2-dev so I think this is not a problem.
I think the cmake machinery takes care of the libxml2 include path.

Still an issue.

libvtk9-dev provides /usr/include/vtk-9.5/vtk_pegtl.h
which references a tao subdir. It is marked to provided it in
vtkpegtl, but does not do so.

tao-pegtl-dev does provide it as an external library, but is not used
by vtk9. Perhaps we can reconfigure to start using it.

Resolved.
/usr/include/vtk-9.5/vtkverdict/verdict.h is now provided by libvtk9-dev

Resolved.
libvtk9-dev Depends: mpi-default-dev,
vtkCompositeMapperHelper 2 or otherwise is completely removed from VTK 9.5


Actions remaining:
- move vtkQImageToImageSource.h to libvtk9-qt-dev?
- reconfigure vtkpegtl to either provide it or use external tao-pegtl-dev