diff --git a/devel/flatbuffers/Makefile b/devel/flatbuffers/Makefile
index 4212ca059d71..5ab290084c38 100644
--- a/devel/flatbuffers/Makefile
+++ b/devel/flatbuffers/Makefile
@@ -1,29 +1,29 @@
 PORTNAME=	flatbuffers
 DISTVERSIONPREFIX=	v
-DISTVERSION=	25.1.21
+DISTVERSION=	25.1.24
 PORTEPOCH=	1
 CATEGORIES=	devel
 
 MAINTAINER=	yuri@FreeBSD.org
 COMMENT=	Memory efficient serialization library
 WWW=		https://flatbuffers.dev/
 
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 USES=		cmake:testing compiler:c++14-lang cpe python:build
 CPE_VENDOR=	google
 USE_LDCONFIG=	yes
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	google
 
 CMAKE_ON=	FLATBUFFERS_BUILD_SHAREDLIB
 CMAKE_OFF=	FLATBUFFERS_BUILD_FLATLIB FLATBUFFERS_BUILD_TESTS
 CMAKE_TESTING_ON=	FLATBUFFERS_BUILD_TESTS # one test fails, see https://github.com/google/flatbuffers/issues/7009 and https://github.com/google/flatbuffers/issues/7556
 
 BINARY_ALIAS=	git=false python3=${PYTHON_CMD}
 
 # 100% tests passed, 0 tests failed out of 1
 
 .include <bsd.port.mk>
diff --git a/devel/flatbuffers/distinfo b/devel/flatbuffers/distinfo
index b84fef36373d..ba991d7bce45 100644
--- a/devel/flatbuffers/distinfo
+++ b/devel/flatbuffers/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1737535369
-SHA256 (google-flatbuffers-v25.1.21_GH0.tar.gz) = 7ab210001df1cd6234d0263801eeed3b941098bc9d6b41331832dd29cea4b555
-SIZE (google-flatbuffers-v25.1.21_GH0.tar.gz) = 2432983
+TIMESTAMP = 1737778205
+SHA256 (google-flatbuffers-v25.1.24_GH0.tar.gz) = 0b9f8d2bb1d22d553c93cd7e3ecf3eb725469980a58a98db6e21574341b4ed63
+SIZE (google-flatbuffers-v25.1.24_GH0.tar.gz) = 2430616
diff --git a/devel/flatbuffers/pkg-plist b/devel/flatbuffers/pkg-plist
index 9e0b6bea15e9..9716dca2601f 100644
--- a/devel/flatbuffers/pkg-plist
+++ b/devel/flatbuffers/pkg-plist
@@ -1,43 +1,43 @@
 bin/flatc
 include/flatbuffers/allocator.h
 include/flatbuffers/array.h
 include/flatbuffers/base.h
 include/flatbuffers/buffer.h
 include/flatbuffers/buffer_ref.h
 include/flatbuffers/code_generator.h
 include/flatbuffers/code_generators.h
 include/flatbuffers/default_allocator.h
 include/flatbuffers/detached_buffer.h
 include/flatbuffers/file_manager.h
 include/flatbuffers/flatbuffer_builder.h
 include/flatbuffers/flatbuffers.h
 include/flatbuffers/flatc.h
 include/flatbuffers/flex_flat_util.h
 include/flatbuffers/flexbuffers.h
 include/flatbuffers/grpc.h
 include/flatbuffers/hash.h
 include/flatbuffers/idl.h
 include/flatbuffers/minireflect.h
 include/flatbuffers/pch/flatc_pch.h
 include/flatbuffers/pch/pch.h
 include/flatbuffers/reflection.h
 include/flatbuffers/reflection_generated.h
 include/flatbuffers/registry.h
 include/flatbuffers/stl_emulation.h
 include/flatbuffers/string.h
 include/flatbuffers/struct.h
 include/flatbuffers/table.h
 include/flatbuffers/util.h
 include/flatbuffers/vector.h
 include/flatbuffers/vector_downward.h
 include/flatbuffers/verifier.h
 lib/cmake/flatbuffers/BuildFlatBuffers.cmake
 lib/cmake/flatbuffers/FlatBuffersSharedTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/flatbuffers/FlatBuffersSharedTargets.cmake
 lib/cmake/flatbuffers/FlatcTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/flatbuffers/FlatcTargets.cmake
 lib/cmake/flatbuffers/flatbuffers-config-version.cmake
 lib/cmake/flatbuffers/flatbuffers-config.cmake
 lib/libflatbuffers.so
-lib/libflatbuffers.so.25.1.21
+lib/libflatbuffers.so.25.1.24
 libdata/pkgconfig/flatbuffers.pc
diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index 5109e76ede56..b334e2355e6a 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -1,106 +1,107 @@
 PORTNAME=	rpcs3
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.0.34-17383 # git rev-list --count HEAD
+PORTREVISION=	1
 DISTVERSIONSUFFIX=	-gf1f85335a7
 CATEGORIES=	emulators wayland
 
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	PS3 emulator/debugger
 WWW=		https://rpcs3.net/
 
 LICENSE=	APACHE20 ISCL GPLv2 MIT ZLIB
 LICENSE_COMB=	multi
 LICENSE_FILE_ISCL=	${WRKSRC_cubeb}/LICENSE
 LICENSE_FILE_ZLIB=	${WRKSRC_asmjit}/LICENSE.md
 
 BUILD_DEPENDS=	flatc:devel/flatbuffers
 LIB_DEPENDS=	libxxhash.so:devel/xxhash \
 		libcurl.so:ftp/curl \
 		libpng.so:graphics/png \
 		libavcodec.so:multimedia/ffmpeg \
 		libpugixml.so:textproc/pugixml
 
 ONLY_FOR_ARCHS=	aarch64 amd64
 ONLY_FOR_ARCHS_REASON=	requires int128 and SSE2
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	RPCS3
 GH_TUPLE=	RPCS3:hidapi:hidapi-0.14.0-2-g8b43a97:hidapi/3rdparty/hidapi/hidapi \
 		RPCS3:soundtouch:2.3.1-68-g394e1f5:soundtouch/3rdparty/SoundTouch/soundtouch \
 		asmjit:asmjit:416f735:asmjit/3rdparty/asmjit/asmjit \
 		facebook:zstd:v1.4.7-2181-g97291fc5:zstd/3rdparty/zstd/zstd \
 		jbeder:yaml-cpp:0.8.0-11-g456c68f:yamlcpp/3rdparty/yaml-cpp/yaml-cpp \
 		KhronosGroup:glslang:13.1.1:glslang/3rdparty/glslang/glslang \
 		kcat:openal-soft:1.23.1:openal_soft/3rdparty/OpenAL/openal-soft \
 		kinetiknz:cubeb:cubeb-0.2-1425-g88585b6:cubeb/3rdparty/cubeb/cubeb \
 		miniupnp:miniupnp:miniupnpd_2_3_6:miniupnp/3rdparty/miniupnp/miniupnp \
 		nothings:stb:013ac3b:stb/3rdparty/stblib/stb \
 		wolfSSL:wolfssl:v5.7.6-stable:wolfssl/3rdparty/wolfssl/wolfssl \
 		xioTechnologies:Fusion:v1.2.7:fusion/3rdparty/fusion/fusion
 
 USES=		cmake gl iconv:wchar_t llvm:min=16,lib localbase:ldflags \
 		openal:soft pkgconfig python:build qt:6 xorg
 USE_GL=		gl glew
 USE_QT=		base multimedia svg
 USE_XORG=	x11
 CMAKE_ON=	CMAKE_SKIP_RPATH ${CURL FFMPEG FLATBUFFERS LIBPNG PUGIXML XXHASH:L:S/^/USE_SYSTEM_/}
 CMAKE_ON+=	BUNDLE_SPEEX # only used by cubeb tests
 CMAKE_OFF=	USE_NATIVE_INSTRUCTIONS USE_PRECOMPILED_HEADERS
 LDFLAGS+=	-Wl,--as-needed # GLU
 
 OPTIONS_DEFINE=	ALSA EVDEV FAUDIO OPENCV PULSEAUDIO JACK SDL SNDIO VULKAN
 OPTIONS_DEFAULT=EVDEV FAUDIO OPENCV PULSEAUDIO JACK SDL SNDIO VULKAN
 
 ALSA_BUILD_DEPENDS=	alsa-lib>0:audio/alsa-lib
 ALSA_CMAKE_BOOL=	USE_ALSA
 
 EVDEV_DESC=		libevdev-based joystick support
 EVDEV_CMAKE_BOOL=	USE_LIBEVDEV
 EVDEV_BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto
 EVDEV_LIB_DEPENDS=	libevdev.so:devel/libevdev \
 			libudev.so:devel/libudev-devd
 
 FAUDIO_DESC=		FAudio audio support
 FAUDIO_LIB_DEPENDS=	libFAudio.so:audio/faudio
 FAUDIO_CMAKE_BOOL=	USE_FAUDIO USE_SYSTEM_FAUDIO
 
 JACK_BUILD_DEPENDS=	jackit>0:audio/jack
 JACK_CMAKE_BOOL=	USE_JACK
 
 OPENCV_LIB_DEPENDS=	libopencv_imgproc.so:graphics/opencv
 OPENCV_CMAKE_BOOL=	USE_SYSTEM_OPENCV
 
 PULSEAUDIO_BUILD_DEPENDS=pulseaudio>0:audio/pulseaudio
 PULSEAUDIO_CMAKE_BOOL=	USE_PULSE
 
 SDL_USES=		sdl
 SDL_USE=		SDL=sdl2
 SDL_CMAKE_BOOL=		USE_SDL USE_SYSTEM_SDL
 
 SNDIO_BUILD_DEPENDS=	sndio>0:audio/sndio
 SNDIO_CMAKE_BOOL=	USE_SNDIO
 
 VULKAN_DESC=		Vulkan renderer
 VULKAN_BUILD_DEPENDS=	${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
 VULKAN_LIB_DEPENDS=	libvulkan.so:graphics/vulkan-loader
 VULKAN_CMAKE_BOOL=	USE_VULKAN
 
 # XXX Unbundle audio/rtmidi
 GH_TUPLE+=		thestk:rtmidi:6.0.0:rtmidi/3rdparty/rtmidi/rtmidi
 ALSA_LIB_DEPENDS+=	libasound.so:audio/alsa-lib
 ALSA_CMAKE_BOOL+= 	RTMIDI_API_ALSA
 JACK_LIB_DEPENDS+=	libjack.so:audio/jack
 JACK_CMAKE_BOOL+=	RTMIDI_API_JACK
 
 post-patch:
 	@${REINPLACE_CMD} -e '/GIT_BRANCH/s/local_build/master/' \
 		 -e '/GIT_FULL_BRANCH/s/local_build/${GH_ACCOUNT}\/${GH_PROJECT}\/master/' \
 		-e '/GIT_VERSION/s/local_build/${GH_TAGNAME:C/[^-]*-//}/' \
 		${WRKSRC}/${PORTNAME}/git-version.cmake
 
 post-install:
 .if exists(/usr/bin/elfctl)
 	${ELFCTL} -e +wxneeded ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
 .endif
 
 .include <bsd.port.mk>
diff --git a/graphics/msl/Makefile b/graphics/msl/Makefile
index 43cd462f7aa7..26813cb2d053 100644
--- a/graphics/msl/Makefile
+++ b/graphics/msl/Makefile
@@ -1,36 +1,36 @@
 PORTNAME=	msl
 DISTVERSIONPREFIX=	v
 DISTVERSION=	1.8.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	graphics
 
 MAINTAINER=	yuri@FreeBSD.org
 COMMENT=	Shader language based off GLSL
 WWW=		https://github.com/akb825/ModularShaderLanguage
 
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
 BUILD_DEPENDS=	flatc:devel/flatbuffers
 LIB_DEPENDS=	libboost_system.so:devel/boost-libs
 
 USES=		cmake:testing compiler:c++14-lang python:build
 
 CMAKE_ON=	BUILD_SHARED_LIBS MSL_SHARED
 CMAKE_OFF=	SPIRV_TOOLS_BUILD_STATIC
 CMAKE_OFF=	MSL_BUILD_TESTS MSL_BUILD_DOCS
 CMAKE_ARGS=	-DFREEBSD_PYTHON_VER=${PYTHON_VER}
 CMAKE_TESTING_ON=	MSL_BUILD_TESTS
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	akb825
 GH_PROJECT=	ModularShaderLanguage
 
 GH_TUPLE=	akb825:glslang:ec0d2be:akb825_glslang/Compile/glslang \
 		KhronosGroup:SPIRV-Cross:5e7db82:KhronosGroup_SPIRV_Cross/Compile/SPIRV-Cross \
 		akb825:SPIRV-Tools:0926045:akb825_SPIRV_Tools/Compile/SPIRV-Tools \
 			KhronosGroup:SPIRV-Headers:2acb319:KhronosGroup_SPIRV_Headers/Compile/SPIRV-Tools/external/spirv-headers
 
 # tests as of 1.8.0: 100% tests passed, 0 tests failed out of 25
 
 .include <bsd.port.mk>
diff --git a/misc/nn-insight/Makefile b/misc/nn-insight/Makefile
index 69c968743301..8fb751c13be5 100644
--- a/misc/nn-insight/Makefile
+++ b/misc/nn-insight/Makefile
@@ -1,37 +1,37 @@
 PORTNAME=	nn-insight
 DISTVERSION=	1.0.7
-PORTREVISION=	13
+PORTREVISION=	14
 CATEGORIES=	misc # machine-learning
 
 MAINTAINER=	yuri@FreeBSD.org
 COMMENT=	Neural network visualization software
 WWW=		https://github.com/yurivict/nn-insight
 
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	avir>0:graphics/avir \
 		${LOCALBASE}/include/exprtk.hpp:math/exprtk \
 		flatc:devel/flatbuffers \
 		half>0:math/half \
 		nlohmann-json>0:devel/nlohmann-json \
 		png++>0:graphics/png++
 LIB_DEPENDS=	libcgraph.so:graphics/graphviz \
 		libpng.so:graphics/png \
 		libQCustomPlot-qt5.so:graphics/qcustomplot@qt5 \
 		libtcmalloc.so:devel/google-perftools
 
 USES=		compiler:c++17-lang cmake pkgconfig qt:5
 USE_QT=		core gui svg widgets buildtools:build qmake:build
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	yurivict
 
 PLIST_FILES=	bin/nn-insight \
 		libexec/nn-insight/tf-lite-plugin.so
 
 PORTSCOUT=	limit:^.*[1-9]\. # prevent hashes
 
 CMAKE_ARGS+=	-DENABLE_NATIVE_OPTIMIZATIONS:BOOL=OFF
 
 .include <bsd.port.mk>
diff --git a/multimedia/kodi/Makefile b/multimedia/kodi/Makefile
index 137eede1e307..c49e52452172 100644
--- a/multimedia/kodi/Makefile
+++ b/multimedia/kodi/Makefile
@@ -1,308 +1,308 @@
 PORTNAME=	kodi
 DISTVERSION=	21.0
-PORTREVISION=	7
+PORTREVISION=	8
 CATEGORIES=	multimedia java
 MASTER_SITES=	http://mirrors.kodi.tv/build-deps/sources/
 DISTFILES=	apache-groovy-binary-${GROOVY_VERSION}.zip \
 		commons-lang3-${COMMONS_LANG_VERSION}-bin.tar.gz \
 		commons-text-${COMMONS_TEXT_VERSION}-bin.tar.gz
 DIST_SUBDIR=	${PORTNAME}
 # do not forget to fix devel/kodi-platform when updating kodi
 
 MAINTAINER=	yzrh@noema.org
 COMMENT=	Award winning media center application
 WWW=		https://kodi.tv/
 
 LICENSE=	GPLv2+
 
 ONLY_FOR_ARCHS=	aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
 
 BUILD_DEPENDS=	flatbuffers>0:devel/flatbuffers \
 		rapidjson>0:devel/rapidjson \
 		swig>0:devel/swig
 LIB_DEPENDS=	libass.so:multimedia/libass \
 		libavcodec.so:multimedia/ffmpeg \
 		libavfilter.so:multimedia/ffmpeg \
 		libavformat.so:multimedia/ffmpeg \
 		libavutil.so:multimedia/ffmpeg \
 		libcdio.so:sysutils/libcdio \
 		libcrossguid.so:devel/libcrossguid \
 		libcurl.so:ftp/curl \
 		libexpat.so:textproc/expat2 \
 		libfmt.so:devel/libfmt \
 		libfreetype.so:print/freetype2 \
 		libfribidi.so:converters/fribidi \
 		libfstrcmp.so:devel/fstrcmp \
 		libgif.so:graphics/giflib \
 		libharfbuzz.so:print/harfbuzz \
 		liblzo2.so:archivers/lzo2 \
 		libpcre.so:devel/pcre \
 		libpng.so:graphics/png \
 		libpostproc.so:multimedia/ffmpeg \
 		libspdlog.so:devel/spdlog \
 		libswresample.so:multimedia/ffmpeg \
 		libswscale.so:multimedia/ffmpeg \
 		libtag.so:audio/taglib \
 		libtinyxml.so:textproc/tinyxml \
 		libtinyxml2.so:textproc/tinyxml2 \
 		libudfread.so:multimedia/libudfread \
 		libuuid.so:misc/e2fsprogs-libuuid
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
 
 USES=		autoreconf:build cmake:noninja compiler:c++17-lang cpe \
 		desktop-file-utils gettext gmake gnome iconv java:build jpeg libtool \
 		pkgconfig python sqlite ssl
 
 KODI_CODENAME=		Omega
 LIBDVDCSS_VERSION=	1.4.3-Next-Nexus-Alpha2-2
 LIBDVDNAV_VERSION=	6.1.1-Next-Nexus-Alpha2-2
 LIBDVDREAD_VERSION=	6.1.3-Next-Nexus-Alpha2-2
 GROOVY_VERSION=		4.0.16
 COMMONS_LANG_VERSION=	3.14.0
 COMMONS_TEXT_VERSION=	1.11.0
 
 USE_GITHUB=	yes
 GH_TUPLE=	xbmc:xbmc:${DISTVERSION}-${KODI_CODENAME} \
 		xbmc:libdvdcss:${LIBDVDCSS_VERSION}:libdvdcss/tools/depends/target/libdvdcss/native \
 		xbmc:libdvdnav:${LIBDVDNAV_VERSION}:libdvdnav/tools/depends/target/libdvdnav/native \
 		xbmc:libdvdread:${LIBDVDREAD_VERSION}:libdvdread/tools/depends/target/libdvdread/native
 
 KODI_ARCH_aarch64=	aarch64
 KODI_ARCH_amd64=	x86_64
 KODI_ARCH_i386=		x86
 KODI_ARCH_armv7=	armv7
 KODI_ARCH_armv6=	armv6
 KODI_ARCH_powerpc64=	powerpc64
 KODI_ARCH_powerpc64le=	powerpc64le
 
 PLIST_SUB=	ARCH=${KODI_ARCH_${ARCH}}
 
 USE_LDCONFIG=	yes
 USE_GNOME=	libxml2
 CMAKE_ARGS=	-DGIT_VERSION="${DISTVERSION}-${KODI_CODENAME}" \
 		-DLIBDVDCSS_URL="${DISTDIR}/${PORTNAME}/xbmc-libdvdcss-${LIBDVDCSS_VERSION}_GH0.tar.gz" \
 		-DLIBDVDNAV_URL="${DISTDIR}/${PORTNAME}/xbmc-libdvdnav-${LIBDVDNAV_VERSION}_GH0.tar.gz" \
 		-DLIBDVDREAD_URL="${DISTDIR}/${PORTNAME}/xbmc-libdvdread-${LIBDVDREAD_VERSION}_GH0.tar.gz" \
 		-Dgroovy_SOURCE_DIR="${WRKSRC}/tools/depends/share/groovy" \
 		-Dapache-commons-lang_SOURCE_DIR="${WRKSRC}/tools/depends/share/java/lang" \
 		-Dapache-commons-text_SOURCE_DIR="${WRKSRC}/tools/depends/share/java/text" \
 		-DCROSSGUID_INCLUDE_DIR="${LOCALBASE}/include" \
 		-DCORE_PLATFORM_NAME:STRING="${KODI_PLATFORM}" \
 		-DCMAKE_VERBOSE_MAKEFILE=ON
 CMAKE_OFF=	ENABLE_INTERNAL_CROSSGUID
 CONFIGURE_ENV=	_CPU_FEATURE="${CPU_FEATURE}"
 
 OPTIONS_SUB=		yes
 OPTIONS_DEFINE=		AIRPLAY AVAHI LIBBLURAY CEC DAV1D DBUS \
 			DVDCSS LCMS2 LIRC WEBSERVER MYSQL NFS DVD SMB TEST \
 			UDEV UPNP VAAPI VDPAU XSLT DOCS
 OPTIONS_DEFAULT=	LIBBLURAY CEC LCMS2 WEBSERVER DAV1D \
 			DVD UPNP VAAPI VDPAU XSLT GBM WAYLAND X11 GL
 OPTIONS_DEFAULT_amd64=	SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2
 OPTIONS_DEFAULT_i386=	SSE SSE2 SSE3
 OPTIONS_SINGLE=		RENDER
 OPTIONS_SINGLE_RENDER=	GL GLES
 OPTIONS_GROUP=		SOUND FEATURE PLATFORM
 OPTIONS_GROUP_SOUND=	ALSA PIPEWIRE PULSEAUDIO SNDIO
 OPTIONS_GROUP_FEATURE=	SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2
 OPTIONS_GROUP_PLATFORM=	GBM WAYLAND X11
 OPTIONS_EXCLUDE_aarch64=FEATURE
 OPTIONS_EXCLUDE_armv7=	FEATURE
 OPTIONS_EXCLUDE_armv6=	FEATURE
 OPTIONS_EXCLUDE_powerpc64=	FEATURE
 OPTIONS_EXCLUDE_powerpc64le=	FEATURE
 
 PLATFORM_DESC=	Kodi platform
 FEATURE_DESC=	X86 CPU feature
 
 AIRPLAY_DESC=	AirPlay support
 CEC_DESC=	CEC adapter support
 DAV1D_DESC=	Use dav1d as AV1 decoder
 DVD_DESC=	DVD support
 UDEV_DESC=	Use libudev-devd
 XSLT_DESC=	Use libxslt
 
 RENDER_DESC=	Render system
 GL_DESC=	OpenGL
 GLES_DESC=	OpenGL ES
 
 GBM_DESC=	GBM support
 
 SSE2_DESC=	Use SSE2 optimized routines
 SSE3_DESC=	Use SSE3 optimized routines
 SSSE3_DESC=	Use SSSE3 optimized routines
 SSE4_1_DESC=	Use SSE4.1 optimized routines
 SSE4_2_DESC=	Use SSE4.2 optimized routines
 AVX_DESC=	Use AVX optimized routines
 AVX2_DESC=	Use AVX2 optimized routines
 
 AIRPLAY_LIB_DEPENDS=	libplist-2.0.so:devel/libplist \
 			libshairplay.so:audio/shairplay
 AIRPLAY_CMAKE_BOOL=	ENABLE_PLIST \
 			ENABLE_AIRTUNES
 
 AVAHI_LIB_DEPENDS=	libavahi-client.so:net/avahi-app
 AVAHI_CMAKE_BOOL=	ENABLE_AVAHI
 
 LIBBLURAY_LIB_DEPENDS=	libbluray.so:multimedia/libbluray
 LIBBLURAY_CMAKE_BOOL=	ENABLE_BLURAY
 
 CEC_LIB_DEPENDS=	libcec.so:multimedia/libcec
 CEC_CMAKE_BOOL=		ENABLE_CEC
 
 DAV1D_LIB_DEPENDS=	libdav1d.so:multimedia/dav1d
 DAV1D_CMAKE_BOOL=	ENABLE_DAV1D
 
 DBUS_LIB_DEPENDS=	libdbus-1.so:devel/dbus
 DBUS_CMAKE_BOOL=	ENABLE_DBUS
 
 DVDCSS_CMAKE_BOOL=	ENABLE_DVDCSS
 
 LCMS2_LIB_DEPENDS=	liblcms2.so.2:graphics/lcms2
 LCMS2_CMAKE_BOOL=	ENABLE_LCMS2
 
 LIRC_LIB_DEPENDS=	liblirc_client.so:comms/lirc
 LIRC_CMAKE_BOOL=	ENABLE_LIRCCLIENT
 
 WEBSERVER_LIB_DEPENDS=	libmicrohttpd.so:www/libmicrohttpd
 WEBSERVER_CMAKE_BOOL=	ENABLE_MICROHTTPD
 
 NFS_LIB_DEPENDS=	libnfs.so:net/libnfs
 NFS_CMAKE_BOOL=		ENABLE_NFS
 
 DVD_CMAKE_BOOL=		ENABLE_OPTICAL
 
 SMB_USES=		samba:lib
 SMB_CMAKE_BOOL=		ENABLE_SMBCLIENT
 
 TEST_LIB_DEPENDS=	libgtest.so:devel/googletest
 TEST_CMAKE_BOOL=	ENABLE_TESTING
 
 UDEV_LIB_DEPENDS=	libudev.so:devel/libudev-devd
 UDEV_CMAKE_BOOL=	ENABLE_UDEV
 
 UPNP_CMAKE_BOOL=	ENABLE_UPNP
 
 VAAPI_LIB_DEPENDS=	libva.so:multimedia/libva
 VAAPI_CMAKE_BOOL=	ENABLE_VAAPI
 
 VDPAU_IMPLIES=		X11 GL
 VDPAU_LIB_DEPENDS=	libvdpau.so:multimedia/libvdpau
 VDPAU_CMAKE_BOOL=	ENABLE_VDPAU
 
 XSLT_LIB_DEPENDS=	libxslt.so:textproc/libxslt
 XSLT_CMAKE_BOOL=	ENABLE_XSLT
 
 GL_CMAKE_ON=		-DAPP_RENDER_SYSTEM:STRING="gl"
 GL_USES=		gl
 GL_USE=			GL=gl
 
 GLES_CMAKE_ON=		-DAPP_RENDER_SYSTEM:STRING="gles"
 GLES_USES=		gl
 GLES_USE=		GL=glesv2
 
 MYSQL_USES=		mysql
 MYSQL_CMAKE_BOOL=	ENABLE_MYSQLCLIENT
 
 ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
 ALSA_CMAKE_BOOL=	ENABLE_ALSA
 
 PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
 PIPEWIRE_CMAKE_BOOL=	ENABLE_PIPEWIRE
 
 PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
 PULSEAUDIO_CMAKE_BOOL=	ENABLE_PULSEAUDIO
 
 SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
 SNDIO_CMAKE_BOOL=	ENABLE_SNDIO
 
 SSE_VARS=		CPU_FEATURE+=SSE
 SSE2_VARS=		CPU_FEATURE+=SSE2
 SSE3_VARS=		CPU_FEATURE+=SSE3
 SSSE3_VARS=		CPU_FEATURE+=SSSE3
 SSE4_1_VARS=		CPU_FEATURE+=SSE4.1
 SSE4_2_VARS=		CPU_FEATURE+=SSE4.2
 AVX_VARS=		CPU_FEATURE+=AVX
 AVX2_VARS=		CPU_FEATURE+=AVX2
 
 GBM_IMPLIES=		UDEV
 GBM_VARS=		KODI_PLATFORM+=gbm
 GBM_USES=		gl
 GBM_USE=		GL=egl,gbm,glu
 GBM_BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto
 GBM_LIB_DEPENDS=	libepoll-shim.so:devel/libepoll-shim \
 			libdrm.so:graphics/libdrm \
 			libxkbcommon.so:x11/libxkbcommon \
 			libinput.so:x11/libinput \
 			libdisplay-info.so:sysutils/libdisplay-info
 GBM_RUN_DEPENDS=	mesa-dri>0:graphics/mesa-dri
 
 WAYLAND_VARS=		KODI_PLATFORM+=wayland
 WAYLAND_CATEGORIES=	wayland
 WAYLAND_USES=		gl
 WAYLAND_USE=		GL=egl,glu
 WAYLAND_BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto \
 			wayland-protocols>0:graphics/wayland-protocols
 WAYLAND_LIB_DEPENDS=	libdrm.so:graphics/libdrm \
 			libxkbcommon.so:x11/libxkbcommon \
 			libinput.so:x11/libinput \
 			libwayland-client++.so:graphics/waylandpp
 
 X11_VARS=		KODI_PLATFORM+=x11
 X11_USES=		xorg gl
 X11_USE=		XORG=x11,xext,xrandr GL=egl,gbm,glu
 X11_LIB_DEPENDS=	libdrm.so:graphics/libdrm
 
 .include <bsd.port.options.mk>
 
 .if (!empty(PORT_OPTIONS:MGBM) && !empty(PORT_OPTIONS:MWAYLAND) || !empty(PORT_OPTIONS:MGBM) && !empty(PORT_OPTIONS:MX11) || !empty(PORT_OPTIONS:MWAYLAND) && !empty(PORT_OPTIONS:MX11)) && !empty(PORT_OPTIONS:MGLES)
 BROKEN=	option GLES does not build with multiple PLATFORM
 .endif
 
 .if !empty(PORT_OPTIONS:MGBM) && !empty(PORT_OPTIONS:MWAYLAND) || !empty(PORT_OPTIONS:MGBM) && !empty(PORT_OPTIONS:MX11) || !empty(PORT_OPTIONS:MWAYLAND) && !empty(PORT_OPTIONS:MX11)
 PLIST_SUB+=	KODICOMBINED="" \
 		KODIGBM="@comment " \
 		KODIWAYLAND="@comment " \
 		KODIX11="@comment "
 .else
 PLIST_SUB+=	KODICOMBINED="@comment "
 
 .if !empty(PORT_OPTIONS:MGBM)
 PLIST_SUB+=	KODIGBM=""
 .else
 PLIST_SUB+=	KODIGBM="@comment "
 .endif
 
 .if !empty(PORT_OPTIONS:MWAYLAND)
 PLIST_SUB+=	KODIWAYLAND=""
 .else
 PLIST_SUB+=	KODIWAYLAND="@comment "
 .endif
 
 .if !empty(PORT_OPTIONS:MX11)
 PLIST_SUB+=	KODIX11=""
 .else
 PLIST_SUB+=	KODIX11="@comment "
 .endif
 .endif
 
 post-extract:
 	@${MKDIR} ${WRKSRC}/tools/depends/share
 	@${MV} ${WRKDIR}/groovy-${GROOVY_VERSION} ${WRKSRC}/tools/depends/share/groovy
 
 	@${MKDIR} ${WRKSRC}/tools/depends/share/java
 	@${MV} ${WRKDIR}/commons-lang3-${COMMONS_LANG_VERSION} ${WRKSRC}/tools/depends/share/java/lang
 	@${MV} ${WRKDIR}/commons-text-${COMMONS_TEXT_VERSION} ${WRKSRC}/tools/depends/share/java/text
 
 post-patch:
 	${REINPLACE_CMD} 's|/usr/share|${LOCALBASE}/share|' \
 		${WRKSRC}/xbmc/platform/linux/input/LibInputSettings.cpp
 
 post-install:
 	${INSTALL_MAN} ${WRKSRC}/docs/manpages/kodi.bin.1 ${STAGEDIR}${PREFIX}/share/man/man1
 	cd ${STAGEDIR}${PREFIX}/share/man/man1 && ${LN} -s kodi.bin.1.gz kodi.1.gz
 	cd ${STAGEDIR}${PREFIX}/bin && ${STRIP_CMD} kodi-TexturePacker TexturePacker
 	${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -type f -name '*.so' -print0 | ${XARGS} -0 ${STRIP_CMD}
 	${RM} -r ${STAGEDIR}${PREFIX}/lib/firewalld
 
 .include <bsd.port.mk>
diff --git a/science/py-tensorflow/Makefile b/science/py-tensorflow/Makefile
index 5cc66d08ecc3..e09adc0a010f 100644
--- a/science/py-tensorflow/Makefile
+++ b/science/py-tensorflow/Makefile
@@ -1,233 +1,233 @@
 PORTNAME=	tensorflow
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.9.1
-PORTREVISION=	18
+PORTREVISION=	19
 CATEGORIES=	science python
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 DIST_SUBDIR=	${PORTNAME}
 EXTRACT_ONLY=	${DISTNAME}.tar.gz
 
 MAINTAINER=	amzo1337@gmail.com
 COMMENT=	Computation using data flow graphs for scalable machine learning
 WWW=		https://www.tensorflow.org
 
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BROKEN=	variable has incomplete type 'StateSaver'
 ONLY_FOR_ARCHS=	amd64
 
 BUILD_DEPENDS=	${RUN_DEPENDS} \
 		${PYTHON_PKGNAMEPREFIX}grpcio-tools>=1.22.0:devel/py-grpcio-tools@${PY_FLAVOR} \
 		bash:shells/bash \
 		cython:lang/cython \
 		swig:devel/swig \
 		bazel:devel/bazel5 \
 		git:devel/git
 LIB_DEPENDS=	libnsync.so:devel/nsync \
 		libgpr.so:devel/grpc \
 		libpng.so:graphics/png \
 		libsnappy.so:archivers/snappy \
 		liblmdb.so:databases/lmdb \
 		libsqlite3.so:databases/sqlite3 \
 		libicuio.so:devel/icu \
 		libjsoncpp.so:devel/jsoncpp \
 		libpcre.so:devel/pcre \
 		libnsync.so:devel/nsync \
 		libprotobuf.so:devel/protobuf \
 		libprotobuf-c.so:devel/protobuf-c \
 		libre2.so:devel/re2 \
 		libgif.so:graphics/giflib \
 		libcurl.so:ftp/curl \
 		libflatbuffers.so:devel/flatbuffers \
 		libdouble-conversion.so:devel/double-conversion
 RUN_DEPENDS=	pybind11>=2.6.2:devel/pybind11 \
 		${PYTHON_PKGNAMEPREFIX}absl-py>=1.0.0:devel/py-absl-py \
 		${PYTHON_PKGNAMEPREFIX}astunparse>=1.6.3:devel/py-astunparse@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.3.0:devel/py-typing-extensions@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}h5py>=2.9.0:science/py-h5py@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}flatbuffers>=2.0:devel/py-flatbuffers@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}gast>=0.5.3:devel/py-gast@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}numpy>=1.20.0:math/py-numpy@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}google-pasta>=0.1.7:devel/py-google-pasta@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}protobuf>=3.7.1:devel/py-protobuf@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}grpcio>=1.22.0:devel/py-grpcio@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}keras-preprocessing>=1.1.1:math/py-keras-preprocessing@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wrapt>=1.14.1:devel/py-wrapt@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>=0.30.0:devel/py-wheel@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}opt-einsum>=3.3.0:math/py-opt-einsum@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}packaging>=21.3:devel/py-packaging@${PY_FLAVOR} \
 		pybind11>=2.6.2:devel/pybind11
 
 USES=		jpeg llvm:16 python shebangfix ssl
 USE_CXXSTD=     c++17
 USE_GITHUB=	yes
 USE_PYTHON=	distutils
 
 SHEBANG_GLOB=	*.py
 
 BAZEL_BOOT=	--output_user_root=${WRKDIR}/bazel_out
 
 PLIST_SUB=	TF_PORT_VERSION=${PORTVERSION}
 
 OPTIONS_DEFINE=			CPU_OPTS XLA
 OPTIONS_RADIO=			PARALLEL_JOBS
 OPTIONS_RADIO_PARALLEL_JOBS=	JOBS_1 JOBS_HALF JOBS_ALL
 PARALLEL_JOBS_DESC=		How many jobs to run during build?
 OPTIONS_DEFAULT=		JOBS_HALF
 
 JOBS_1_DESC=			Run one job
 JOBS_1_VARS=			TF_JOBS_NUMBER=1
 JOBS_HALF_DESC=			Run half jobs
 JOBS_HALF_VARS=			TF_JOBS_NUMBER="`expr \( ${MAKE_JOBS_NUMBER} + 1 \) / 2`"
 JOBS_ALL_DESC=			Run all jobs
 JOBS_ALL_VARS=			TF_JOBS_NUMBER=${MAKE_JOBS_NUMBER}
 
 CPU_OPTS_DESC=			Enable optimisations using features available on your CPU
 CPU_OPTS_VARS=			CPU_TARGET=native BAZEL_COPT="-c opt --copt=-march=native --copt=-mfpmath=sse"
 CPU_OPTS_VARS_OFF=		CPU_TARGET=x86-64
 
 XLA_DESC=			Accelerated Linear Algebra
 XLA_VARS=			XLA_OPT="1"
 XLA_VARS_OFF=			XLA_OPT="0"
 
 .include "Makefile.MASTER_SITES"
 
 post-patch:
 	# Set up a local repository with our pre-downloaded packages
 	# This prevents bazel downloading the files without modifying
 	# the bzl files.
 	@${MKDIR} ${WRKDIR}/bazel-cache
 	@${MKDIR} ${WRKDIR}/bazel-dist
 	@${MKDIR} ${WRKDIR}/.bin
 
 .for file in ${DISTFILES:C/\:(.*)//}
 	@${ECHO} "Moving ${file} to ${WRKDIR}/bazel-dist"
 	@${CP} ${DISTDIR}/${DIST_SUBDIR}/${file} ${WRKDIR}/bazel-dist
 .endfor
 
 	@${CP} ${PATCHDIR}/bazelrc ${WRKDIR}/bazelrc
 	@${CP} -R ${PATCHDIR}/bazel/* \
 		${WRKSRC}/third_party/
 
 	@${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python3
 
 	@cd ${WRKSRC} && \
 		${REINPLACE_CMD} "s#--batch#${BAZEL_BOOT}\', \'--batch#" \
 		configure.py
 
 	${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_VERSION}#" ${WRKSRC}/configure \
 		${WRKSRC}/third_party/freebsd_python_fix.patch \
 		${WRKSRC}/tensorflow/compiler/mlir/quantization/tensorflow/BUILD
 
 	@${REINPLACE_CMD} "s#%%BAZEL_DIR%%#${WRKDIR}#" ${WRKDIR}/bazelrc
 	@${REINPLACE_CMD} "s#%%BAZEL_DIST%%#${WRKDIR}#" ${WRKDIR}/bazelrc
 	@${REINPLACE_CMD} "s#%%MLIR_LLVM_PATCH%%#/${WRKSRC}/bazel/bazel_llvm-raw_utils_bazel_configure.bzl#" \
 		${WRKSRC}/tensorflow/compiler/mlir/hlo/WORKSPACE
 
 	# use system pybind11, but use sed to fix includes, too many to maintain with patches
 	@${FIND} ${WRKSRC} -type f -name '*.cc' | ${XARGS} ${REINPLACE_CMD} "s#include\/pybind11#pybind11#"
 
 
 	# copy the toolchain over
 	@${CP} -R ${PATCHDIR}/freebsd \
 		${WRKSRC}/
 
 	@${REINPLACE_CMD} "s#%%PATH%%#${PATH}#" ${WRKDIR}/bazelrc
 
 	@${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_CMD}#" ${WRKSRC}/.bazelrc
 
 	@${REINPLACE_CMD} \
 		-e "s#%%LOCALBASE%%#${LOCALBASE}#" \
 		-e "s#%%LLVM_PREFIX%%#${LLVM_PREFIX}#g" \
 		-e "s#%%LLVM_VERSION%%#${LLVM_VERSION}#g" \
 		${WRKDIR}/bazelrc \
 		${WRKSRC}/third_party/absl/system.absl.strings.BUILD \
 		${WRKSRC}/freebsd/cc_toolchain_config.bzl \
 		${WRKSRC}/.bazelrc \
 		${WRKSRC}/tensorflow/tools/proto_text/BUILD \
 		${WRKSRC}/tensorflow/BUILD \
 		${WRKSRC}/tensorflow/core/BUILD \
 		${WRKSRC}/third_party/systemlibs/protobuf.BUILD
 
 
 do-configure:
 	@cd ${WRKSRC} && ${SETENV} \
 		PYTHON_BIN_PATH=${PYTHON_CMD} \
 		PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \
 		KERAS_HOME="${WRKDIR}/.keras" \
 		TF_NEED_OPENCL_SYCL=0 \
 		TF_ENABLE_XLA=${XLA_OPT} \
 		TF_NEED_OPENCL=0 \
 		TF_NEED_MPI=0 \
 		TF_NEED_TENSORRT=0 \
 		TF_NEED_NGRAPH=0 \
 		TF_NEED_IGNITE=0 \
 		TF_NEED_ROCM=0 \
 		TF_NEED_CUDA=0 \
 		TF_SET_ANDROID_WORKSPACE=0 \
 		TF_DOWNLOAD_CLANG=0 \
 		TF_NEED_NCCL=0 \
 		TF_IGNORE_MAX_BAZEL_VERSION=1 \
 		CC_OPT_FLAGS="-march=${CPU_TARGET} -I${LOCALBASE}/include" \
 		PREFIX="${LOCALBASE}" \
 		TF_SYSTEM_LIBS="absl_py astor_archive astunparse_archive boringssl com_github_googlecloudplatform_google_cloud_cpp com_github_grpc_grpc \
 				com_google_absl com_google_protobuf curl cython dill_archive double_conversion functools32_archive gast_archive \
 				gif hwloc icu jsoncpp_git libjpeg_turbo lmdb nasm nsync opt_einsum_archive org_sqlite pasta png pybind11 six_archive snappy \
 				tblib_archive termcolor_archive typing_extensions_archive wrapt zlib" \
 		./configure
 
 do-build:
 	@cd ${WRKSRC} && \
 		bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} build --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} --host_copt="-I${LOCALBASE}/include" \
 		--host_linkopt="-L${LOCALBASE}/lib -lexecinfo" --linkopt="-L${LOCALBASE}/lib -lexecinfo" --copt="-I${LOCALBASE}/include" \
 		--verbose_failures -s \
 		--distdir=${WRKDIR}/bazel-dist \
 		//tensorflow:libtensorflow_framework.so \
 		//tensorflow:libtensorflow.so \
 		//tensorflow:libtensorflow_cc.so \
 		//tensorflow:install_headers \
 		//tensorflow/tools/pip_package:build_pip_package
 
 
 	@cd ${WRKSRC} && ${SETENV} TMPDIR=${WRKDIR} \
 		bazel-bin/tensorflow/tools/pip_package/build_pip_package \
 		${WRKDIR}/whl
 
 do-install:
 	@${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR}
 	@${MKDIR} ${STAGEDIR}/${LOCALBASE}/include/tensorflow
 
 	@${UNZIP_NATIVE_CMD} -d ${STAGEDIR}/${PYTHON_SITELIBDIR} ${WRKDIR}/whl/${PORTNAME}-${PORTVERSION}-*.whl
 
 	# put headers in the right folder
 	${CP} -R ${WRKSRC}/bazel-bin/tensorflow/include/tensorflow \
 		${STAGEDIR}/${LOCALBASE}/include/
 
 	# pc files and libraries
 	${INSTALL_DATA} ${PATCHDIR}/tensorflow.pc ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/
 	${INSTALL_DATA} ${PATCHDIR}/tensorflow_cc.pc ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/
 
 	@${REINPLACE_CMD} "s#%%LOCALBASE%%#${LOCALBASE}#" \
 		${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow.pc \
 		${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow_cc.pc
 
 	@${REINPLACE_CMD} "s#%%VERSION%%#${PORTVERSION}#" \
 		${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow.pc
 
 	#cleanup
 	${RM} ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/*.bak
 
 	# install the libraries and strip
 	@${FIND} ${WRKSRC}/bazel-bin/tensorflow/ -depth 1 -name "*.so*" | ${XARGS} -I{} \
 		${INSTALL_LIB} {} ${STAGEDIR}/${LOCALBASE}/lib/
 
 	@${FIND} ${STAGEDIR}/${LOCALBASE}/lib -name "*.so*" | ${XARGS} ${STRIP_CMD}
 
 post-install: # autoplist: thousands of files, all under ${PYTHON_SITELIBDIR}
 	@cd ${STAGEDIR}${PREFIX} && \
 		${FIND} ${PYTHON_SITELIBDIR:C|^${LOCALBASE}/||} -type f -or -type l | grep -v "egg-info/" >> ${TMPPLIST}
 
 .include <bsd.port.mk>
diff --git a/www/envoy/Makefile b/www/envoy/Makefile
index ab2aba327077..6a78b68526e9 100644
--- a/www/envoy/Makefile
+++ b/www/envoy/Makefile
@@ -1,115 +1,115 @@
 PORTNAME=	envoy
 PORTVERSION=	1.26.1
 DISTVERSIONPREFIX=	v
-PORTREVISION=	6
+PORTREVISION=	7
 CATEGORIES=	www
 MASTER_SITES=	https://storage.googleapis.com/quiche-envoy-integration/:gurl
 DISTFILES=	dd4080fec0b443296c0ed0036e1e776df8813aa7${EXTRACT_SUFX}:gurl
 
 MAINTAINER=	danfe@FreeBSD.org
 COMMENT=	Edge and service proxy for cloud-native applications
 WWW=		https://www.envoyproxy.io/
 
 LICENSE=	APACHE20
 
 BROKEN_SSL=	base openssl libressl libressl-devel
 BROKEN_SSL_REASON=	requires BoringSSL
 
 BUILD_DEPENDS=	${NONEXISTENT}:devel/grpc:patch \
 		${NONEXISTENT}:devel/protobuf:patch \
 		${LOCALBASE}/include/flatbuffers/reflection.h:devel/flatbuffers \
 		${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json \
 		${LOCALBASE}/include/spdlog/spdlog.h:devel/spdlog \
 		${LOCALBASE}/include/tclap/CmdLine.h:devel/tclap12
 LIB_DEPENDS=	libabsl_base.so:devel/abseil \
 		libbrotlidec.so:archivers/brotli \
 		libcares.so:dns/c-ares \
 		libcircllhist.so:devel/libcircllhist \
 		libcurl.so:ftp/curl \
 		libevent.so:devel/libevent-devel \
 		libfmt.so:devel/libfmt \
 		libgpr.so:devel/grpc \
 		libicuuc.so:devel/icu \
 		libnghttp2.so:www/libnghttp2 \
 		libprotobuf.so:devel/protobuf \
 		libre2.so:devel/re2 \
 		libxxhash.so:devel/xxhash \
 		libyaml-cpp.so:devel/yaml-cpp \
 		libzstd.so:archivers/zstd
 
 USES=		compiler:c++17-lang cpe gmake python:build shebangfix ssl
 CPE_VENDOR=	${PORTNAME}proxy
 SHEBANG_FILES=	examples/*/verify.sh examples/grpc-bridge/client/client.py \
 		examples/shared/postgres/docker-healthcheck.sh
 USE_GITHUB=	yes
 GH_ACCOUNT=	${PORTNAME}proxy bufbuild:pgv cncf:xds googleapis:gapis \
 		census-instrumentation:ocp prometheus:pcm google:quiche \
 		open-telemetry:otp google:cel
 GH_PROJECT=	protoc-gen-validate:pgv xds:xds googleapis:gapis \
 		opencensus-proto:ocp client_model:pcm quiche:quiche \
 		opentelemetry-proto:otp cel-cpp:cel
 GH_TAGNAME=	v0.10.1:pgv 46e39c7:xds 114a745:gapis v0.4.1:ocp 147c58e:pcm \
 		37de4f7:quiche v0.19.0:otp 11f9d66:cel
 
 _GRPC_WRKSRC=		${MAKE} -C ${PORTSDIR}/devel/grpc -V WRKSRC
 _PROTOBUF_WRKSRC=	${MAKE} -C ${PORTSDIR}/devel/protobuf -V WRKSRC
 
 PLIST_FILES=	bin/envoy
 PORTEXAMPLES=	*
 
 OPTIONS_DEFINE=	EXAMPLES
 
 post-extract:
 	${LN} -s \
 		 ../../client_model-147c58e/io \
 		 ../../googleapis-114a745/google \
 		 ../../opencensus-proto-0.4.1/src/opencensus \
 		 ../../opentelemetry-proto-0.19.0/opentelemetry \
 		 ../../protoc-gen-validate-0.10.1/validate \
 		 ../../xds-46e39c7/udpa ../../xds-46e39c7/xds \
 		 ${_GRPC_WRKSRC:sh}/src ${WRKSRC}/api
 
 post-patch:
 	@${REINPLACE_CMD} -e 's,__APPLE__,__${OPSYS}__,' \
 		${WRKSRC}/source/common/network/address_impl.cc
 	@${REINPLACE_CMD} -e 's,O_SYMLINK,O_NOFOLLOW,' \
 		${WRKSRC}/source/common/filesystem/kqueue/watcher_impl.cc
 	@${REINPLACE_CMD} -e '/opentracing::v/s,v2,v3,' \
 		${WRKSRC}/source/extensions/tracers/common/ot/opentracing_driver_impl.cc
 	@${REINPLACE_CMD} -e '23s,^,#include "absl/status/status.h",' \
 		${WRKDIR}/cel-cpp-11f9d66/eval/public/ast_traverse.cc
 	@${REINPLACE_CMD} -e '/^#include "eval\/testutil\/test_message/d' \
 		${WRKDIR}/cel-cpp-11f9d66/eval/public/structs/cel_proto_wrap_util.cc
 
 do-configure:
 	${ECHO_CMD} '#define BUILD_VERSION_NUMBER "${PORTVERSION}"' \
 		> ${WRKSRC}/source/common/version/version_number.h
 	cd ${WRKSRC} && PYTHONPATH=. ${PYTHON_CMD} \
 		tools/api_versioning/generate_api_version_header.py \
 		API_VERSION.txt > \
 		${WRKSRC}/source/common/version/api_version_number.h
 	${LN} -s kqueue/watcher_impl.h posix/filesystem_impl.h \
 		posix/directory_iterator_impl.h \
 		${WRKSRC}/source/common/filesystem
 	${LN} -s posix/os_sys_calls_impl.h ${WRKSRC}/source/common/api
 	${LN} -s posix/signal_impl.h ${WRKSRC}/source/common/event
 	${LN} -s posix/thread_impl.h ${WRKSRC}/source/common/common
 	${LN} -s standard/logger_impl.h ${WRKSRC}/source/common/common
 	${LN} -s ../../quiche-37de4f7/quiche ${WRKSRC}/source
 	${LN} -s source/common/quic/platform ${WRKSRC}/quiche_platform_impl
 	${LN} -s ${_PROTOBUF_WRKSRC:sh}/src/google ${WRKDIR}
 
 do-build:
 	${MAKE_CMD} -C ${WRKSRC} -f ${FILESDIR}/makefile-genproto
 	${MAKE_CMD} ${_MAKE_JOBS} -C ${WRKSRC}/source \
 		-f ${FILESDIR}/makefile-main all
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/source/${PORTNAME} \
 		${STAGEDIR}${PREFIX}/bin
 
 do-install-EXAMPLES-on:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${CP} -a ${WRKSRC}/examples/ ${STAGEDIR}${EXAMPLESDIR}
 
 .include <bsd.port.mk>