Qt5 future in VTK

So 5.15 is EOL in May 2023 (without a paid subscription). It’s probably time to start thinking about what this means for VTK (and ParaView for that matter).

VTK has had Qt6 as an option for a while, but CI hasn’t been doing anything about it. I am proposing:

  • migrate all existing (Qt-using) CI jobs to Qt6 instead of Qt5
  • deprecate Qt5 support in VTK (though it will stick around)
  • add Qt5 to the pile of things to test in a “mindeps” build that we still need to put together (Python 3.4/3.6, GCC $old, etc.)

ParaView does not yet support Qt6, so that would be a prerequisite to the deprecation step of the above at least. I suspect ParaView would follow these same steps in short order (due to the EOL date).

Any other thoughts?

Cc: @cory.quammen @mwestphal @dcthomp

2 Likes

Do we have any issues tracking issues with ParaView on Qt6? Understanding the scope of the work required will say a lot. I suspect it is not extensive or we would be better off just moving to trame. :slight_smile:

Do we have any issues tracking issues with ParaView on Qt6?

First thing is to prepare a runner/image with qt6 support and see how the testing goes.

Understanding the scope of the work required will say a lot.

We already used VTK with Qt6 with success, never run the full test suite though

I suspect ParaView would follow these same steps in short order (due to the EOL date).

Yes, that is needed. Never tried building it with Qt6 though.

I suspect it is not extensive or we would be better off just moving to trame.

VTK can’t move to Trame, and this out of the scope and more akin to the Async discussion.

No. It’s probably mostly CMake changes honestly. Probably some deprecated API calls that need dealt with too.

VTK and the VTK Examples build OK with QT6.4.1. This is for Linux and Windows using the latest VTK Master.

On moving to QT6, there were a few issues to iron out, so, for ParaView, looking back over the Qt references in the MR’s may help.

Wrt VTK I don’t build the examples that are in VTK itself so any Qt ones there they may need modification. Should be easy enough since the Qt exampls in VTK Examples were ported from them.

Experimental Qt6 support have been added to both VTK and ParaView now

I attempted a build using Qt 6…4.3.
For VTK everything builds OK, no problems.
For ParaView I had to add an extra module the Qt 5 Compatability Module, however the build fails as it is looking for a deprecated module xmlpatterns. This was in Qt 5.15.2 but is not present in Qt 6.4.3. It has been deprecated since Qt 5.13 and was removed in Qt 6.0+.

If you have Qt5 installed in your system (I don’t) then a build may be successful since the compile is looking for /usr/lib/qt5/bin/xmlpatterns … perhaps.

This is the error I got:

FAILED: Plugins/AcceleratedAlgorithms/paraview_help/AcceleratedAlgorithms_doc.xslt [...]/paraview/build/Plugins/AcceleratedAlgorithms/paraview_help/AcceleratedAlgorithms_doc.xslt 
cd [...]/paraview/build/Plugins/AcceleratedAlgorithms/paraview_help && /usr/local/bin/cmake -Dxmlpatterns=/bin/xmlpatterns -Doutput_dir=[...]/paraview/build/Plugins/AcceleratedAlgorithms/paraview_help -Doutput_file=[...]/paraview/build/Plugins/AcceleratedAlgorithms/paraview_help/AcceleratedAlgorithms_doc.xslt -Dxmls_file=[...]/paraview/build/Plugins/AcceleratedAlgorithms/CMakeFiles/AcceleratedAlgorithms_doc-xmls.txt -D_paraview_generate_proxy_documentation_run=ON -P [...]/paraview/paraview/CMake/ParaViewClient.cmake
CMake Error at [...]/paraview/paraview/CMake/ParaViewClient.cmake:639 (message):
  Failed to convert servermanager XML: xmlpatterns: could not exec
  '/usr/lib/qt5/bin/xmlpatterns': No such file or directory```

Did you try the very last master ?

Qt6 compatibility was added very rencently in ParaView: https://discourse.paraview.org/t/start-supporting-qt6/11239

I used the master from two days ago (25 Mar), however I’ll redo it now. Give me an hour or so. I will also delete the build folder as I did last time. Just started the build, nothing changed in the master since my previous build.

Build failed, same error.

Could you add a comment on the MR ? https://gitlab.kitware.com/paraview/paraview/-/merge_requests/6134

Done

Qt6 CI (with Qt5 in mindeps) is finally looking really green: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10089

Actually deprecating Qt5 support has not yet been done.

2 Likes