git: 7406d45d49bb - main - math/vtk9: Update 9.1.0 -> 9.2.2

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 24 Oct 2022 08:15:03 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7406d45d49bb84c8062dbc56845622c0ddbaf791

commit 7406d45d49bb84c8062dbc56845622c0ddbaf791
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-10-24 08:12:14 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-10-24 08:14:57 +0000

    math/vtk9: Update 9.1.0 -> 9.2.2
---
 cad/appcsxcad/Makefile                             |   7 +-
 cad/csxcad/Makefile                                |   7 +-
 cad/opencascade/Makefile                           |   9 +-
 cad/qcsxcad/Makefile                               |   7 +-
 cad/qcsxcad/files/patch-QVTKStructure.cpp          | 145 +++++++++++++++++++++
 graphics/cloudcompare/Makefile                     |   5 +-
 graphics/f3d/Makefile                              |  13 +-
 graphics/mirtk/Makefile                            |   5 +-
 graphics/opencv/Makefile                           |   5 +-
 graphics/pcl-pointclouds/Makefile                  |   9 +-
 graphics/py-mayavi/Makefile                        |   9 +-
 graphics/py-pyvista/Makefile                       |   4 +-
 math/vtk9/Makefile                                 |  55 ++++----
 math/vtk9/distinfo                                 |   6 +-
 ...ThirdParty_exodusII_vtkexodusII_src_ex__utils.c |  12 --
 ...h-ThirdParty_libproj_vtklibproj_src_pj__mutex.c |  11 --
 science/avogadrolibs/Makefile                      |   4 +-
 science/elmerfem/Makefile                          |   5 +-
 .../patch-ElmerGUI_Application_cad_cadview.cpp     |  39 +++++-
 .../patch-ElmerGUI_Application_vtkpost_vtkpost.cpp |  53 ++++++++
 science/liggghts/Makefile                          |   8 +-
 science/liggghts/files/patch-dump__mesh__vtm.cpp   |  11 ++
 science/liggghts/files/patch-dump__vtk.h           |  11 ++
 science/liggghts/patch-dump__vtk.cpp               |  11 ++
 science/openems/Makefile                           |   7 +-
 science/paraview/Makefile                          |   5 +-
 26 files changed, 366 insertions(+), 97 deletions(-)

diff --git a/cad/appcsxcad/Makefile b/cad/appcsxcad/Makefile
index eeacd1ff5ed4..5d9e2e08c5c8 100644
--- a/cad/appcsxcad/Makefile
+++ b/cad/appcsxcad/Makefile
@@ -2,7 +2,7 @@ PORTNAME=	appcsxcad
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.2.2-9
 DISTVERSIONSUFFIX=	-g97ba30e
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	cad
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -20,7 +20,7 @@ LIB_DEPENDS=	libCSXCAD.so:cad/csxcad \
 		libQCSXCAD.so:cad/qcsxcad \
 		libsz.so:science/libaec \
 		libtiff.so:graphics/tiff \
-		libvtkCommonCore-9.1.so:math/vtk9
+		libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
 USES=		cmake jpeg pkgconfig qt:5 xorg
 USE_QT=		core gui sql widgets xml buildtools:build qmake:build
@@ -31,7 +31,7 @@ USE_GITHUB=	yes
 GH_ACCOUNT=	thliebig
 GH_PROJECT=	AppCSXCAD
 
-CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.1
+CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-${VTK_VER}
 
 PLIST_FILES=	bin/AppCSXCAD
 
@@ -40,4 +40,5 @@ post-install:
 
 # an example of file that AppCSXCAD opens (zipped): http://openems.de/forum/download/file.php?id=418&sid=6daebbb2df72b415fa2ec7031ffa6ca9
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/cad/csxcad/Makefile b/cad/csxcad/Makefile
index 4c2563b0c173..1830a6ad817f 100644
--- a/cad/csxcad/Makefile
+++ b/cad/csxcad/Makefile
@@ -2,7 +2,7 @@ PORTNAME=	csxcad
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.6.2-109
 DISTVERSIONSUFFIX=	-gcd9decb
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	cad
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -22,7 +22,7 @@ LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
 		libsz.so:science/libaec \
 		libtiff.so:graphics/tiff \
 		libtinyxml.so:textproc/tinyxml \
-		libvtkCommonCore-9.1.so:math/vtk9
+		libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
 USES=		cmake jpeg pkgconfig
 USE_LDCONFIG=	yes
@@ -32,6 +32,7 @@ GH_ACCOUNT=	thliebig
 GH_PROJECT=	${PORTNAME:tu}
 
 CMAKE_ARGS=	-DFPARSER_ROOT_DIR=${LOCALBASE} \
-		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.1
+		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-${VTK_VER}
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/cad/opencascade/Makefile b/cad/opencascade/Makefile
index b9c939f64ac6..16c5269f22fe 100644
--- a/cad/opencascade/Makefile
+++ b/cad/opencascade/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	opencascade
 PORTVERSION=	7.6.0
-PORTREVISION=	9
+PORTREVISION=	10
 CATEGORIES=	cad science
 MASTER_SITES=	LOCAL/thierry
 
@@ -20,7 +20,7 @@ LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig	\
 		libfreetype.so:print/freetype2		\
 		libexpat.so:textproc/expat2		\
 		libpng16.so:graphics/png		\
-		libvtksys-${VTKVER}.so:math/vtk${VTKVER:R}
+		libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R}
 RUN_DEPENDS=	bash:shells/bash
 
 # Check ${WRKSRC}/dox/overview/overview.md
@@ -40,8 +40,6 @@ SHEBANG_FILES=	adm/templates/*.sh	\
 		gendoc
 ENVSH=		adm/templates/env.sh
 
-VTKVER=		9.1
-
 OPTIONS_DEFINE=	DOCS DOXYGEN FFMPEG VIS
 VIS_DESC=	Build Visualizazion module (requires OpenGL, freetype, ftgl)
 OPTIONS_DEFAULT=FFMPEG VIS
@@ -62,7 +60,7 @@ CMAKE_ARGS+=	-DINSTALL_DIR=${OCCROOT}				\
 		-DUSE_TBB:BOOL=OFF					\
 		-DUSE_RAPIDJSON:BOOL=ON					\
 		-DUSE_VTK:BOOL=ON					\
-		-D3RDPARTY_VTK_INCLUDE_DIR:PATH=${LOCALBASE}/include/vtk-${VTKVER}
+		-D3RDPARTY_VTK_INCLUDE_DIR:PATH=${LOCALBASE}/include/vtk-${VTK_VER}
 CONFIGURE_ENV+=	DESTDIR=${STAGEDIR}
 
 .if defined(MAINTAINER_MODE)
@@ -181,4 +179,5 @@ regression-test:	install
 	DRAWEXE -f ${FILESDIR}/regtest "
 .endif
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/cad/qcsxcad/Makefile b/cad/qcsxcad/Makefile
index 8fc566507178..6dfa29d35df1 100644
--- a/cad/qcsxcad/Makefile
+++ b/cad/qcsxcad/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	qcsxcad
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.6.2-9
-PORTREVISION=	1
+PORTREVISION=	2
 DISTVERSIONSUFFIX=	-g3f09a8b
 CATEGORIES=	cad
 
@@ -18,7 +18,7 @@ LIB_DEPENDS=	libCSXCAD.so:cad/csxcad \
 		libpng16.so:graphics/png \
 		libtiff.so:graphics/tiff \
 		libtinyxml.so:textproc/tinyxml \
-		libvtkCommonCore-9.1.so:math/vtk9
+		libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
 USES=		cmake gl jpeg pkgconfig qt:5 xorg
 USE_QT=		core gui opengl sql widgets xml buildtools:build qmake:build
@@ -30,6 +30,7 @@ USE_GITHUB=	yes
 GH_ACCOUNT=	thliebig
 GH_PROJECT=	${PORTNAME:tu}
 
-CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.1
+CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-${VTK_VER}
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/cad/qcsxcad/files/patch-QVTKStructure.cpp b/cad/qcsxcad/files/patch-QVTKStructure.cpp
new file mode 100644
index 000000000000..4036157911b4
--- /dev/null
+++ b/cad/qcsxcad/files/patch-QVTKStructure.cpp
@@ -0,0 +1,145 @@
+- workaround for https://github.com/thliebig/QCSXCAD/issues/10
+
+--- QVTKStructure.cpp.orig	2022-10-23 18:25:43 UTC
++++ QVTKStructure.cpp
+@@ -113,12 +113,12 @@ QVTKStructure::QVTKStructure()
+ #endif
+ 
+ 	ren = vtkRenderer::New();
+-	VTKWidget->GetRenderWindow()->AddRenderer(ren);
++	VTKWidget->renderWindow()->AddRenderer(ren);
+ 
+ 	AddAxes();
+ 	SetBackgroundColor(255,255,255);
+ 
+-	SetCallback(VTKWidget->GetRenderWindow()->GetInteractor());
++	SetCallback(VTKWidget->renderWindow()->GetInteractor());
+ }
+ 
+ QVTKStructure::~QVTKStructure()
+@@ -137,7 +137,7 @@ void QVTKStructure::AddAxes()
+ 	marker->SetOrientationMarker(assembly);
+ 	marker->SetViewport(0.0,0.0,0.25,0.25);
+ 
+-	marker->SetInteractor(VTKWidget->GetRenderWindow()->GetInteractor());
++	marker->SetInteractor(VTKWidget->renderWindow()->GetInteractor());
+ 	marker->SetEnabled(1);
+ 	marker->InteractiveOff();
+ 
+@@ -159,7 +159,7 @@ void QVTKStructure::SetBackgroundColor(int r, int g, i
+ 	{
+ 		if (ActorGridPlane[i]!=NULL) ActorGridPlane[i]->GetProperty()->SetColor(irgb);
+ 	}
+-    VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++    VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::SetGeometry(ContinuousStructure *CS)
+@@ -277,20 +277,20 @@ void QVTKStructure::RenderGrid()
+ void QVTKStructure::RenderGridX(int plane_pos)
+ {
+ 	RenderGridDir(0,plane_pos);
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::RenderGridY(int plane_pos)
+ {
+ 	RenderGridDir(1,plane_pos);
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ 
+ }
+ 
+ void QVTKStructure::RenderGridZ(int plane_pos)
+ {
+ 	RenderGridDir(2,plane_pos);
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::RenderGridDir(int dir, unsigned int plane_pos)
+@@ -413,13 +413,13 @@ void QVTKStructure::SetGridOpacity(int val)
+ 	{
+ 		if (ActorGridPlane[i]!=NULL) ActorGridPlane[i]->GetProperty()->SetOpacity((double)val/255.0);
+ 	}
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::ResetView()
+ {
+ 	ren->ResetCamera();
+-    VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++    VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::setXY()
+@@ -472,7 +472,7 @@ void QVTKStructure::SetPropOpacity(unsigned int uiID, 
+ 			if (LayerPrimitives.at(i).VTKProp!=NULL) LayerPrimitives.at(i).VTKProp->SetOpacity2All((double)val/255.0);
+ 		}
+ 	}
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::RenderGeometry()
+@@ -679,7 +679,7 @@ void QVTKStructure::RenderGeometry()
+ 			}
+ 		}
+ 	}
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::RenderDiscMaterialModel()
+@@ -716,7 +716,7 @@ void QVTKStructure::RenderDiscMaterialModel()
+ 			delete transform;
+ 		}
+ 	}
+-	VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++	VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::SetParallelProjection(bool val, bool render)
+@@ -725,18 +725,18 @@ void QVTKStructure::SetParallelProjection(bool val, bo
+ 	cam->SetParallelProjection(val);
+ 
+ 	if (render)
+-		VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++		VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::Set2DInteractionStyle(bool val, bool render)
+ {
+ 	if (val)
+-		VTKWidget->GetRenderWindow()->GetInteractor()->SetInteractorStyle(vtkInteractorStyleRubberBand2DPlane::New());
++		VTKWidget->renderWindow()->GetInteractor()->SetInteractorStyle(vtkInteractorStyleRubberBand2DPlane::New());
+ 	else
+-		VTKWidget->GetRenderWindow()->GetInteractor()->SetInteractorStyle(vtkInteractorStyleTrackballCamera::New());
++		VTKWidget->renderWindow()->GetInteractor()->SetInteractorStyle(vtkInteractorStyleTrackballCamera::New());
+ 
+ 	if (render)
+-		VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++		VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ void QVTKStructure::SaveCamData()
+@@ -765,7 +765,7 @@ void QVTKStructure::RestoreCamData(bool render)
+ 	Camera->Modified();
+ 
+ 	if (render)
+-		VTKWidget->GetRenderWindow()->GetInteractor()->Render();
++		VTKWidget->renderWindow()->GetInteractor()->Render();
+ }
+ 
+ 
+@@ -777,7 +777,7 @@ void QVTKStructure::ExportView2Image()
+ 		return;
+ 
+ 	vtkWindowToImageFilter* filter = vtkWindowToImageFilter::New();
+-	filter->SetInput(VTKWidget->GetRenderWindow());
++	filter->SetInput(VTKWidget->renderWindow());
+ 
+ 	vtkPNGWriter* png_writer= vtkPNGWriter::New();
+ 	png_writer->SetInputConnection(filter->GetOutputPort());
diff --git a/graphics/cloudcompare/Makefile b/graphics/cloudcompare/Makefile
index ca1d9e58fc2d..1596606bff82 100644
--- a/graphics/cloudcompare/Makefile
+++ b/graphics/cloudcompare/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	cloudcompare
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.12.4
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	graphics
 
 MAINTAINER=	nc@FreeBSD.org
@@ -75,7 +75,7 @@ PLUGINS_LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
 			libfreetype.so:print/freetype2 \
 			libpng.so:graphics/png \
 			libtiff.so:graphics/tiff \
-			libvtkCommonCore-9.1.so:math/vtk9
+			libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 PLUGINS_IMPLIES=	SHAPELIB
 
 pre-configure:
@@ -88,4 +88,5 @@ post-install:
 	${INSTALL_DATA} ${WRKSRC}/snap/gui/cloudcompare.desktop ${STAGEDIR}${PREFIX}/share/applications
 	${INSTALL_DATA} ${WRKSRC}/snap/gui/cloudcompare.png ${STAGEDIR}${PREFIX}/share/pixmaps
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/f3d/Makefile b/graphics/f3d/Makefile
index e760e0d066a7..863f080022cf 100644
--- a/graphics/f3d/Makefile
+++ b/graphics/f3d/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	f3d
 DISTVERSIONPREFIX=	v
 DISTVERSION=	1.3.1
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	graphics
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -11,12 +11,16 @@ WWW=		https://f3d-app.github.io/f3d/
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-LIB_DEPENDS=	libfreetype.so:print/freetype2 \
+LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
+		libfontconfig.so:x11-fonts/fontconfig \
+		libfreeimage.so:graphics/freeimage \
+		libfreetype.so:print/freetype2 \
 		libhdf5.so:science/hdf5 \
+		libImath-3_1.so:math/Imath \
 		libnetcdf.so:science/netcdf \
-		libvtkCommonMisc-9.1.so:math/vtk9
+		libvtkCommonMisc-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
-USES=		cmake:testing compiler:c++17-lang desktop-file-utils gl xorg
+USES=		cmake:testing compiler:c++17-lang desktop-file-utils gl tcl tk xorg
 USE_GL=		gl glu
 USE_XORG=	ice sm x11 xt
 
@@ -57,4 +61,5 @@ RAYTRACING_BROKEN=		Requires VTK::RenderingRayTracing enabled in VTK
 post-install:
 	@${RM} -r ${STAGEDIR}${DOCSDIR}
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/mirtk/Makefile b/graphics/mirtk/Makefile
index 95ab382b3636..c61b9cb48a22 100644
--- a/graphics/mirtk/Makefile
+++ b/graphics/mirtk/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	mirtk
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.0.0-178
-PORTREVISION=	2
+PORTREVISION=	3
 DISTVERSIONSUFFIX=	-g973ce2f
 CATEGORIES=	graphics
 
@@ -31,7 +31,8 @@ TBB_LIB_DEPENDS=	libtbb.so:devel/onetbb
 
 VTK_DESC=		Build with the VTK toolkit
 VTK_CMAKE_BOOL=		WITH_VTK
-VTK_LIB_DEPENDS=	libvtkCommonCore-9.1.so:math/vtk9 \
+VTK_LIB_DEPENDS=	libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R} \
 			libexpat.so:textproc/expat2
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/opencv/Makefile b/graphics/opencv/Makefile
index db1706d1ce2c..a8d09526279a 100644
--- a/graphics/opencv/Makefile
+++ b/graphics/opencv/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	opencv
 DISTVERSION=	4.6.0
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	graphics
 
 MAINTAINER=	desktop@FreeBSD.org
@@ -124,7 +124,7 @@ GTK3_CMAKE_BOOL=	WITH_GTK
 
 VTK_DESC=		Include VTK library support (build opencv_viz module)
 VTK_CMAKE_BOOL=		WITH_VTK
-VTK_LIB_DEPENDS=	libvtkCommonCore-9.1.so:math/vtk9
+VTK_LIB_DEPENDS=	libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 VTK_USES=		qt:5
 VTK_USE=		QT=buildtools:build,qmake:build
 ###
@@ -235,4 +235,5 @@ post-patch:
 	${REINPLACE_CMD} -e 's|/usr/lib/atlas-base|${LOCALBASE}/lib|g' ${WRKSRC}/cmake/OpenCVFindAtlas.cmake
 	${REINPLACE_CMD} -e 's|/usr/include/atlas|${LOCALBASE}/include|g' ${WRKSRC}/cmake/OpenCVFindAtlas.cmake
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/pcl-pointclouds/Makefile b/graphics/pcl-pointclouds/Makefile
index 00511605899e..0b5962b04a65 100644
--- a/graphics/pcl-pointclouds/Makefile
+++ b/graphics/pcl-pointclouds/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	pcl
 DISTVERSION=	1.12.1
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	graphics math
 MASTER_SITES=	https://github.com/PointCloudLibrary/${PORTNAME}/releases/download/${PORTNAME}-${DISTVERSION}/
 PKGNAMESUFFIX=	-pointclouds
@@ -59,7 +59,7 @@ PLIST_SUB=	SHL3=${DISTVERSION} SHL2=${DISTVERSION:R}
 DATADIR=	${PREFIX}/share/${PORTNAME}-${DISTVERSION:R}  # match the directory where the project installs .cmake files
 
 OPTIONS_DEFINE=		OPENGL PNG QHULL QT5 VTK
-OPTIONS_DEFAULT=	PNG # QHULL is disabled due to conflicts qhull8 vs. qhull
+OPTIONS_DEFAULT=	PNG VTK # QHULL is disabled due to conflicts qhull8 vs. qhull
 OPTIONS_SUB=		yes
 
 OPENGL_CMAKE_BOOL=	WITH_OPENGL # it finds OpenGL, but no binaries are linked with it: https://github.com/PointCloudLibrary/pcl/issues/2641
@@ -81,7 +81,8 @@ VTK_DESC=		Build VTK visualizations
 VTK_USES=		gl qt:5
 VTK_USE=		GL=gl,glu QT=core,gui,opengl,widgets,buildtools:build,qmake:build
 VTK_CMAKE_BOOL=		WITH_VTK
-VTK_CMAKE_ON=		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.1
-VTK_LIB_DEPENDS=	libvtkCommonCore-9.1.so:math/vtk9
+VTK_CMAKE_ON=		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-${VTK_VER}
+VTK_LIB_DEPENDS=	libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/py-mayavi/Makefile b/graphics/py-mayavi/Makefile
index 3cf99e3a366a..da3da21e75c7 100644
--- a/graphics/py-mayavi/Makefile
+++ b/graphics/py-mayavi/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	mayavi
 DISTVERSION=	4.8.1
+PORTREVISION=	1
 CATEGORIES=	graphics science python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -18,12 +19,11 @@ LICENSE_FILE_LGPL3=		${WRKSRC}/image_LICENSE_OOo.txt
 LICENSE_FILE_BSD2CLAUSE=	${WRKSRC}/LICENSE_YORICK.txt
 LICENSE_FILE_APACHE11=		${WRKSRC}/LICENSE_COLORBREWER.txt
 
-BUILD_DEPENDS=	vtk9>0:math/vtk9 \
-		${PYNUMPY} \
+BUILD_DEPENDS=	${PYNUMPY} \
 		${PY_SPHINX} \
 		sphinx-build:textproc/py-sphinx@${PY_FLAVOR}
-RUN_DEPENDS=	vtk9>0:math/vtk9 \
-		${PYNUMPY} \
+LIB_DEPENDS=	libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
+RUN_DEPENDS=	${PYNUMPY} \
 		${PYTHON_PKGNAMEPREFIX}apptools>0:devel/py-apptools@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}envisage>0:devel/py-envisage@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyface>=6.1.1:devel/py-pyface@${PY_FLAVOR} \
@@ -52,4 +52,5 @@ fix-plist:
 do-test:
 	@${SETENV} ${TEST_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${PYTHON_CMD} ${WRKSRC}/examples/mayavi/interactive/coil_design_application.py
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/graphics/py-pyvista/Makefile b/graphics/py-pyvista/Makefile
index a21b438873da..22f6e6bbeb0a 100644
--- a/graphics/py-pyvista/Makefile
+++ b/graphics/py-pyvista/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	pyvista
 DISTVERSION=	0.34.2
+PORTREVISION=	1
 CATEGORIES=	graphics python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -16,11 +17,12 @@ RUN_DEPENDS=	${PYNUMPY} \
 		${PYTHON_PKGNAMEPREFIX}imageio>0:graphics/py-imageio@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}scooby>=0.5.1:devel/py-scooby@${PY_FLAVOR} \
-		vtk9>0:math/vtk9
+		vtk${VTK_VER:R}>0:math/vtk${VTK_VER:R}
 
 USES=		python:3.6+
 USE_PYTHON=	distutils autoplist
 
 NO_ARCH=	yes
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/math/vtk9/Makefile b/math/vtk9/Makefile
index bfd29082a0a7..6b6aa3281f70 100644
--- a/math/vtk9/Makefile
+++ b/math/vtk9/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	vtk
-DISTVERSION=	9.1.0
-PORTREVISION=	8
+DISTVERSION=	9.2.2
 CATEGORIES=	math graphics
 MASTER_SITES=	https://vtk.org/files/release/${VTK_SHORT_VER}/
 PKGNAMESUFFIX=	9
@@ -35,30 +34,35 @@ CMAKE_ARGS=	-DVTK_INSTALL_LIBRARY_DIR=lib/vtk-${VTK_SHORT_VER} \
 		-DVTK_INSTALL_QT_DIR=/${QT_LIBDIR_REL}/plugins/designer \
 		-DSTAGEDIR=${STAGEDIR}
 		# all build options are documented here: https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/build.md
+		# all modules can be obtailed by: find . -name vtk.module
+		# there's also CMake/vtkWrapSettings.cmake with options
 
 # disable finding Qt6
 CMAKE_ON+=	CMAKE_DISABLE_FIND_PACKAGE_Qt6
 
+# enable all modules
+#CMAKE_ON+=	VTK_BUILD_ALL_MODULES
+
 VTK_SHORT_VER=	${PORTVERSION:R}
 
 DOCSDIR=	${PREFIX}/share/doc/vtk-${VTK_SHORT_VER}
 DATADIR=	${PREFIX}/share/vtk-${VTK_SHORT_VER}
 
 # Options
-OPTIONS_DEFINE=	DESIGNER DOCS MPI OSMESA PYTHON QT5 EXAMPLES
-OPTIONS_DEFAULT=	MPI PYTHON QT5 # vtk python binding is needed by other packages, and is unfortunately is unseparable. It is a candidate to be a subpackage.
+OPTIONS_DEFINE=	DESIGNER DOCS OMPI OSMESA PYTHON QT5 EXAMPLES
+OPTIONS_DEFAULT=	OMPI PYTHON QT5 # vtk python binding is needed by other packages, and is unfortunately is unseparable. It is a candidate to be a subpackage.
 OSMESA_DESC=	Use Mesa for off-screen rendering
+OMPI_DESC=	OpenMPI (Message Passing Interface) support
 DESIGNER_DESC=	Build the Qt Designer plugin
 OPTIONS_SUB=	yes
 
-# Options groups
-VTK_WRAPS=	JAVA TCLTK
-OPTIONS_GROUP=	WRAPPING
-OPTIONS_GROUP_WRAPPING=${VTK_WRAPS}
-GROUPS_DESC=	Groups
-WRAPPING_DESC=	Wrapping
-.for w in ${VTK_WRAPS}
-$w_DESC=	$w wrapping
+# Option groups that enable groups of modules in VTK
+VTK_GROUPS=		JAVA TCLTK
+OPTIONS_GROUP=		GROUPS
+OPTIONS_GROUP_GROUPS=	${VTK_GROUPS}
+GROUPS_DESC=		Groups
+.for w in ${VTK_GROUPS}
+$w_DESC=		Enable $w group
 .endfor
 
 PYTHON_USES=		python:3.6+
@@ -68,19 +72,20 @@ PYTHON_VARS=		SUB_FILES=PKG-INFO SUB_LIST=PORTVERSION=${PORTVERSION}
 
 QT5_USES=		qt:5
 QT5_USE=		QT=core,declarative,gui,network,opengl,sql,uiplugin,widgets,x11extras,qmake:build,buildtools:build
-QT5_CMAKE_ON=		-DCMAKE_PREFIX_PATH:STRING=${LOCALBASE}/lib/qt5 \
-			-DVTK_GROUP_ENABLE_Qt:STRING=YES \
-			-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES
+QT5_CMAKE_ON=		-DVTK_GROUP_ENABLE_Qt:STRING=YES \
+			-DCMAKE_PREFIX_PATH:STRING=${LOCALBASE}/lib/qt5
+
+#QT6_USES=		qt:6
+#QT6_USE=		QT=base,declarative,tools:build
+#QT6_CMAKE_ON=		-DVTK_GROUP_ENABLE_Qt:STRING=YES \
+			-DCMAKE_PREFIX_PATH:STRING=${LOCALBASE}/lib/qt5
 
 DESIGNER_CMAKE_BOOL=	QT_DESIGNER_PLUGIN
 DESIGNER_USE=		QT=designer
 DESIGNER_IMPLIES=	QT5
 
-MPI_CMAKE_BOOL=		VTK_USE_MPI
-#MPI_USES=		mpi:openmpi # fails, needs investigation: The following options helpers are incorrectly set after bsd.port.options.mk and are ineffective: MPI_CFLAGS MPI_LIBS
-MPI_BUILD_DEPENDS=	openmpi>0:net/openmpi
-MPI_RUN_DEPENDS=	openmpi>0:net/openmpi
-MPI_CMAKE_ON=		-DMPIEXEC=${LOCALBASE}/mpi/openmpi/bin/mpiexec
+OMPI_CMAKE_BOOL=	VTK_USE_MPI
+OMPI_USES=		mpi:openmpi
 
 OSMESA_CMAKE_ON=	-DVTK_OPENGL_HAS_OSMESA:BOOL=ON \
 			-DOSMESA_INCLUDE_DIR:PATH=${LOCALBASE}/include/Mesa \
@@ -89,17 +94,15 @@ OSMESA_CMAKE_ON=	-DVTK_OPENGL_HAS_OSMESA:BOOL=ON \
 			-DVTK_USE_X:BOOL=OFF
 OSMESA_LIB_DEPENDS=	libOSMesa.so:graphics/libosmesa
 
-# Wrapping
-JAVA_CATEGORIES=	java
 JAVA_VARS=		USE_JAVA=yes
-JAVA_CMAKE_BOOL=	VTK_WRAP_JAVA Module_vtkWrappingJava
+JAVA_CMAKE_BOOL=	VTK_WRAP_JAVA
 JAVA_CMAKE_ON=		-DJAVA_INCLUDE_PATH:PATH=${JAVA_HOME}/include \
 			-DJAVA_AWT_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ARCH}/libjawt.so \
 			-DJAVA_JVM_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ATCH}/libjava.so
 
 TCLTK_USES=		tk
-TCLTK_CMAKE_BOOL=	VTK_WRAP_TCL VTK_Group_Tk
-TCLTK_CMAKE_ON=		-DTCL_INCLUDE_PATH:PATH=${TCL_INCLUDEDIR} \
+TCLTK_CMAKE_ON=		-DVTK_GROUP_ENABLE_Tk:STRING=YES \
+			-DTCL_INCLUDE_PATH:PATH=${TCL_INCLUDEDIR} \
 			-DTK_INCLUDE_PATH:PATH=${TK_INCLUDEDIR}  \
 			-DVTK_INSTALL_TCL_DIR=lib/vtk-${VTK_SHORT_VER}
 
@@ -115,7 +118,7 @@ USES+=		gl
 USE_GL=		gl glu
 .endif
 
-.if ${PORT_OPTIONS:MPYTHON} && ${PORT_OPTIONS:MMPI}
+.if ${PORT_OPTIONS:MPYTHON} && ${PORT_OPTIONS:MOMPI}
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}mpi4py>0:net/py-mpi4py@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}mpi4py>0:net/py-mpi4py@${PY_FLAVOR}
 .endif
diff --git a/math/vtk9/distinfo b/math/vtk9/distinfo
index cfc8330ff50a..8985e4d4b042 100644
--- a/math/vtk9/distinfo
+++ b/math/vtk9/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1637434253
-SHA256 (VTK-9.1.0.tar.gz) = 8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96
-SIZE (VTK-9.1.0.tar.gz) = 47871165
+TIMESTAMP = 1665288935
+SHA256 (VTK-9.2.2.tar.gz) = 1c5b0a2be71fac96ff4831af69e350f7a0ea3168981f790c000709dcf9121075
+SIZE (VTK-9.2.2.tar.gz) = 53801737
diff --git a/math/vtk9/files/patch-ThirdParty_exodusII_vtkexodusII_src_ex__utils.c b/math/vtk9/files/patch-ThirdParty_exodusII_vtkexodusII_src_ex__utils.c
deleted file mode 100644
index e52da58e3878..000000000000
--- a/math/vtk9/files/patch-ThirdParty_exodusII_vtkexodusII_src_ex__utils.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- ThirdParty/exodusII/vtkexodusII/src/ex_utils.c.orig	2022-06-22 15:58:58.543731000 +0200
-+++ ThirdParty/exodusII/vtkexodusII/src/ex_utils.c	2022-06-22 16:00:28.263448000 +0200
-@@ -1770,7 +1770,9 @@
-         */
- 
-         /* const int NC_SZIP_EC = 4; */ /* Selects entropy coding method for szip. */
-+#if !defined(NC_SZIP_NN)
-         const int NC_SZIP_NN = 32;      /* Selects nearest neighbor coding method for szip. */
-+#endif
-         /* Even and between 4 and 32; typical values are 8, 10, 16, 32 */
-         const int SZIP_PIXELS_PER_BLOCK =
-             file->compression_level == 0 ? 32 : file->compression_level;
diff --git a/math/vtk9/files/patch-ThirdParty_libproj_vtklibproj_src_pj__mutex.c b/math/vtk9/files/patch-ThirdParty_libproj_vtklibproj_src_pj__mutex.c
deleted file mode 100644
index bd453a0dc9ca..000000000000
--- a/math/vtk9/files/patch-ThirdParty_libproj_vtklibproj_src_pj__mutex.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ThirdParty/libproj/vtklibproj/src/pj_mutex.c.orig	2020-04-25 01:23:01 UTC
-+++ ThirdParty/libproj/vtklibproj/src/pj_mutex.c
-@@ -124,7 +124,7 @@ void pj_acquire_lock()
-         pthread_mutex_lock( &pj_precreated_lock);
- 
-         pthread_mutexattr_init(&mutex_attr);
--#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE
-+#if defined(HAVE_PTHREAD_MUTEX_RECURSIVE) || defined(__FreeBSD__)
-         pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE);
- #else
-         pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);
diff --git a/science/avogadrolibs/Makefile b/science/avogadrolibs/Makefile
index d7d8859067ea..dd2f0f21d2a2 100644
--- a/science/avogadrolibs/Makefile
+++ b/science/avogadrolibs/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	avogadrolibs
 DISTVERSION=	1.97.0
+PORTREVISION=	1
 CATEGORIES=	science
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -65,7 +66,7 @@ VTK_DESC=		Enable libraries that use VTK
 VTK_USES=		xorg
 VTK_USE=		QT=opengl XORG=x11
 VTK_CMAKE_BOOL=		USE_VTK
-VTK_LIB_DEPENDS=	libvtksys-9.1.so:math/vtk9 \
+VTK_LIB_DEPENDS=	libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R} \
 			libfreetype.so:print/freetype2
 VTK_IMPLIES=		QT5
 VTK_BROKEN=		Needs https://github.com/psavery/genXrdPattern, see https://github.com/OpenChemistry/avogadrolibs/issues/1186
@@ -73,4 +74,5 @@ VTK_BROKEN=		Needs https://github.com/psavery/genXrdPattern, see https://github.
 post-install:
 	@${RM} -r ${STAGEDIR}${PREFIX}/share/doc
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/science/elmerfem/Makefile b/science/elmerfem/Makefile
index 30a7b9adef4a..186720eed33f 100644
--- a/science/elmerfem/Makefile
+++ b/science/elmerfem/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	elmerfem
 DISTVERSIONPREFIX=	release-
 DISTVERSION=	9.0
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	science
 
 MAINTAINER=	henrik@gulbra.net
@@ -61,7 +61,7 @@ OCC_LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 			libpython${_PYVERSION}.so:lang/python${PYTHON_SUFFIX} \
 			libtiff.so:graphics/tiff \
 			libTKernel.so:cad/opencascade \
-			libvtksys-9.1.so:math/vtk9
+			libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R}
 OCC_USES=		python
 OCC_CMAKE_BOOL=		WITH_OCC
 OCC_CMAKE_ON=		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.0 \
@@ -73,6 +73,7 @@ _QT5_LIBS=	buildtools:build concurrent core declarative gui location \
 		network opengl printsupport qmake:build script sensors \
 		sql svg webchannel webkit widgets xml
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.pre.mk>
 
 .if ${ARCH} == "amd64"
diff --git a/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp b/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp
index 5187c4d8599f..aed35f60ceed 100644
--- a/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp
+++ b/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp
@@ -1,6 +1,6 @@
 - includes workaround for https://github.com/ElmerCSC/elmerfem/issues/304
 
---- ElmerGUI/Application/cad/cadview.cpp.orig	2021-11-10 14:49:01 UTC
+--- ElmerGUI/Application/cad/cadview.cpp.orig	2020-11-10 19:52:44 UTC
 +++ ElmerGUI/Application/cad/cadview.cpp
 @@ -74,7 +74,7 @@
  #include <BRepAdaptor_Curve2d.hxx>
@@ -11,6 +11,34 @@
  #include <BRepTools.hxx>
  #include <BRep_Builder.hxx>
  #include <BRep_Tool.hxx>
+@@ -104,7 +104,7 @@ static void pickEventHandler(vtkObject* caller, unsign
+   QVTKWidget* qvtkWidget = cadView->GetQVTKWidget();
+ #endif
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   vtkPropPicker* propPicker = vtkPropPicker::SafeDownCast(picker);
+   vtkActor* actor = propPicker->GetActor();
+ 
+@@ -146,15 +146,15 @@ CadView::CadView(QWidget *parent) : QMainWindow(parent
+ 
+   renderer = vtkRenderer::New();
+   renderer->SetBackground(1, 1, 1);
+-  qVTKWidget->GetRenderWindow()->AddRenderer(renderer);
++  qVTKWidget->renderWindow()->AddRenderer(renderer);
+   renderer->GetRenderWindow()->Render();
+ 
+   vtkPropPicker *propPicker = vtkPropPicker::New();
+   vtkCallbackCommand *cbcPick = vtkCallbackCommand::New();
+-  qVTKWidget->GetInteractor()->SetPicker(propPicker);
++  qVTKWidget->interactor()->SetPicker(propPicker);
+   cbcPick->SetClientData(this);
+   cbcPick->SetCallback(pickEventHandler);
+-  qVTKWidget->GetInteractor()->GetPicker()->AddObserver(vtkCommand::PickEvent,
++  qVTKWidget->interactor()->GetPicker()->AddObserver(vtkCommand::PickEvent,
+                                                         cbcPick);
+   propPicker->Delete();
+   cbcPick->Delete();
 @@ -343,9 +343,6 @@ bool CadView::readFile(QString fileName) {
  
      const gp_Trsf &Transformation = Location.Transformation();
@@ -62,3 +90,12 @@
      }
  
      partGrid->SetPoints(partPoints);
+@@ -490,7 +487,7 @@ bool CadView::readFile(QString fileName) {
+   // Draw:
+   //------
+   renderer->ResetCamera();  
+-  qVTKWidget->GetRenderWindow()->Render();
++  qVTKWidget->renderWindow()->Render();
+ 
+   QCoreApplication::processEvents();
+ 
diff --git a/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp b/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp
new file mode 100644
index 000000000000..77962f421b0e
--- /dev/null
+++ b/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp
@@ -0,0 +1,53 @@
+--- ElmerGUI/Application/vtkpost/vtkpost.cpp.orig	2020-11-10 19:52:44 UTC
++++ ElmerGUI/Application/vtkpost/vtkpost.cpp
+@@ -124,6 +124,8 @@
+ 
+ using namespace std;
+ 
++#define GetRenderWindow renderWindow // renaming for VTK-9.2.2
++
+ // Custom print for QtScript:
+ //----------------------------
+ #if QT_VERSION >= 0x040403
+@@ -171,7 +173,7 @@ static void pEventHandler(vtkObject* caller, unsigned 
+   QVTKWidget* qvtkWidget = vtkPost->GetQVTKWidget();
+ #endif
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   vtkPropPicker* propPicker = vtkPropPicker::SafeDownCast(picker);
+ 
+   vtkActor* actor = propPicker->GetActor();
+@@ -382,14 +384,14 @@ VtkPost::VtkPost(QWidget *parent)
+   // Create a cell picker and set the callback & observer:
+   //------------------------------------------------------
+   vtkPropPicker* propPicker = vtkPropPicker::New();
+-  qvtkWidget->GetInteractor()->SetPicker(propPicker);
++  qvtkWidget->interactor()->SetPicker(propPicker);
+   propPicker->Delete();
+ 
+   vtkCallbackCommand* cbcPick = vtkCallbackCommand::New();
+   cbcPick->SetClientData(this);
+   cbcPick->SetCallback(pEventHandler);
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   picker->AddObserver(vtkCommand::EndPickEvent, cbcPick);
+   cbcPick->Delete();
+ 
+@@ -402,7 +404,7 @@ VtkPost::VtkPost(QWidget *parent)
+   cbcPlane->SetCallback(iEventHandler);
+ 
+   planeWidget = vtkImplicitPlaneWidget::New();
+-  planeWidget->SetInteractor(qvtkWidget->GetInteractor());
++  planeWidget->SetInteractor(qvtkWidget->interactor());
+   planeWidget->AddObserver(vtkCommand::InteractionEvent, cbcPlane);
+   cbcPlane->Delete();
+ 
+@@ -3519,4 +3521,4 @@ void VtkPost::viewZXmPlaneSlot(){
+   renderer->GetActiveCamera()->SetViewUp(1,0,0);
+   renderer->ResetCamera();
+   redrawSlot();
+-}
+\ No newline at end of file
++}
diff --git a/science/liggghts/Makefile b/science/liggghts/Makefile
index 67dbf51aa74b..b61e17b9a047 100644
--- a/science/liggghts/Makefile
+++ b/science/liggghts/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	liggghts
 DISTVERSION=	3.8.0-58
+PORTREVISION=	1
 DISTVERSIONSUFFIX=	-g6e28cfe3
 CATEGORIES=	science
 
@@ -18,7 +19,7 @@ LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 		libnetcdf.so:science/netcdf \
 		libpng.so:graphics/png \
 		libtiff.so:graphics/tiff \
-		libvtkViewsCore-9.1.so:math/vtk9
+		libvtkViewsCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
 
 USES=		compiler:c++17-lang cmake fortran gl jpeg python qt:5 xorg
 USE_XORG=	ice sm x11 xext xt
@@ -30,15 +31,16 @@ USE_GITHUB=	yes
 GH_ACCOUNT=	CFDEMproject
 GH_PROJECT=	${PORTNAME:tu}-PUBLIC
 
-CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.1 \
+CMAKE_ARGS=	-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-${VTK_VER} \
 		-DPython3_EXECUTABLE=${PYTHON_CMD}
 
 WRKSRC_SUBDIR=	src
 
 CFLAGS+=	-fPIC
 CXXFLAGS+=	-fPIC \
-		-I${LOCALBASE}/include/vtk-9.1
+		-I${LOCALBASE}/include/vtk-${VTK_VER}
 
 BINARY_ALIAS=	sed=gsed
 
+.include <../../math/vtk9/Makefile.version>
 .include <bsd.port.mk>
diff --git a/science/liggghts/files/patch-dump__mesh__vtm.cpp b/science/liggghts/files/patch-dump__mesh__vtm.cpp
new file mode 100644
index 000000000000..6c42615cbf43
--- /dev/null
+++ b/science/liggghts/files/patch-dump__mesh__vtm.cpp
@@ -0,0 +1,11 @@
+--- dump_mesh_vtm.cpp.orig	2022-10-23 21:34:40 UTC
++++ dump_mesh_vtm.cpp
+@@ -60,6 +60,8 @@
+ #include <vtkMPI.h>
+ #include <vtkMPICommunicator.h>
+ 
++#include <vtkVersionMacros.h>
++
+ using namespace LAMMPS_NS;
+ 
+ /* ---------------------------------------------------------------------- */
diff --git a/science/liggghts/files/patch-dump__vtk.h b/science/liggghts/files/patch-dump__vtk.h
new file mode 100644
index 000000000000..c56ea383b8ab
--- /dev/null
+++ b/science/liggghts/files/patch-dump__vtk.h
@@ -0,0 +1,11 @@
+--- dump_vtk.h.orig	2022-10-23 21:45:06 UTC
++++ dump_vtk.h
+@@ -54,6 +54,8 @@
+ #include <list>
+ #include <string>
+ 
++#include <vtkVersionMacros.h>
++
+ namespace LAMMPS_NS
+ {
+ 
diff --git a/science/liggghts/patch-dump__vtk.cpp b/science/liggghts/patch-dump__vtk.cpp
new file mode 100644
index 000000000000..96cdec713678
--- /dev/null
+++ b/science/liggghts/patch-dump__vtk.cpp
@@ -0,0 +1,11 @@
+--- dump_vtk.cpp.orig	2022-10-23 21:34:06 UTC
++++ dump_vtk.cpp
+@@ -59,6 +59,8 @@
+ #include <vtkXMLPImageDataWriter.h>
+ #include <sstream>
+ 
++#include <vtkVersionMacros.h>
++
+ namespace LAMMPS_NS
+ {
+ 
diff --git a/science/openems/Makefile b/science/openems/Makefile
index 3d297459af5d..67b5f0fe2055 100644
--- a/science/openems/Makefile
+++ b/science/openems/Makefile
@@ -2,7 +2,7 @@ PORTNAME=	openems
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.0.35-76
 DISTVERSIONSUFFIX=	-gd4448fa
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	science
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -24,7 +24,7 @@ LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
 		libsz.so:science/libaec \
 		libtiff.so:graphics/tiff \
 		libtinyxml.so:textproc/tinyxml \
*** 47 LINES SKIPPED ***