Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
freerdp 3.x
To:
ports <ports@openbsd.org>
Cc:
Fabien Romano <fabienromano@gmail.com>
Date:
Wed, 12 Aug 2026 00:30:55 +0100

Download raw body.

Thread
  • Stuart Henderson:

    freerdp 3.x

Fabien Romano found that freerdp 3.x is working again in current
versions, it seems something has got fixed with the timer issues we
were running into with my earlier updates.

Here's an update diff, plus changes to dependent ports (I already
knocked out the dep in guacamole, that's in the too-hard basket at
the moment)

security/hydra: I updated this to a version which handles freerdp3
    earlier, diff switches the libs over.

x11/remmina: update to handle freerdp3. builds, runs, am able to
    connect via simple RDP.

x11/gnome/connections: handles freerdp3 already, diff switches libs
    over. runs, am able to connect via simple RDP.

x11/kde-applications/krdc: currently marked BROKEN because it needs
   freerdp3; diff takes things part of the way but build still fails
   at present.

anyone want to test these (or freerdp itself) further before it goes in?

(one diff for all the above; apply with patch -d /usr/ports -E -p0)



Index: x11/freerdp/Makefile
===================================================================
RCS file: /cvs/ports/x11/freerdp/Makefile,v
diff -u -p -r1.80 Makefile
--- x11/freerdp/Makefile	21 May 2026 17:02:48 -0000	1.80
+++ x11/freerdp/Makefile	11 Aug 2026 23:18:17 -0000
@@ -1,34 +1,27 @@
 COMMENT =	client for Microsoft RDP (remote desktop protocol)
 
-# 3.x needs posix timers, epoll-shim is no longer enough to workaround
-DISTNAME =	freerdp-2.11.8
-REVISION =	1
+DISTNAME =	freerdp-3.30.0
 
 CATEGORIES =	x11 net
 
 DPB_PROPERTIES = parallel
 
-SHARED_LIBS +=  freerdp-client2           1.1
-SHARED_LIBS +=  freerdp2                  3.0
-SHARED_LIBS +=  winpr-tools2              1.0
-SHARED_LIBS +=  winpr2                    2.1
+SHARED_LIBS +=	freerdp-client3           0.0 # 0.0
+SHARED_LIBS +=	freerdp3                  0.0 # 0.0
+SHARED_LIBS +=	winpr-tools3              0.0 # 0.0
+SHARED_LIBS +=	winpr3                    0.0 # 0.0
 
 HOMEPAGE =	https://www.freerdp.com/
 SITES =		https://pub.freerdp.com/releases/
 
-# add sndio patchset, not yet in 2.x branch
-# mirrored from https://github.com/FreeRDP/FreeRDP/commit/b3a2042103a192d9e4482691ce9e7d73f9475b09.patch
-# (github patch files aren't stable)
-SITES.sndio =	https://spacehopper.org/mirrors/
-PATCHFILES.sndio = freerdp-sndio-upd2.patch
-PATCH_DIST_STRIP = -p1
-
 # Apache 2.0
 PERMIT_PACKAGE = Yes
 
-WANTLIB += X11 Xcursor Xext Xfixes Xi Xinerama Xrandr Xrender Xv
-WANTLIB += avcodec avutil c crypto cups epoll-shim execinfo m pthread sndio
-WANTLIB += ssl swresample usb-1.0 xkbfile
+WANTLIB += ICE SM X11 Xcursor Xext Xfixes Xi Xinerama Xrandr Xrender
+WANTLIB += Xv avcodec avdevice avfilter avformat avutil c crypto
+WANTLIB += cups epoll-shim execinfo icudata icui18n icuio icuuc
+WANTLIB += jansson m pthread sndio ssl swresample swscale uriparser
+WANTLIB += usb-1.0 xkbfile z
 
 DEBUG_PACKAGES =	${BUILD_PACKAGES}
 
@@ -37,7 +30,6 @@ COMPILER =	base-clang ports-gcc
 COMPILER_LANGS = c
 
 MODULES =	devel/cmake
-MODCMAKE_POLICY_VERSION_OVERRIDE = Yes
 
 CFLAGS +=	-I${X11BASE}/include \
 		-I${LOCALBASE}/include
@@ -47,31 +39,47 @@ BUILD_DEPENDS =	security/pcsc-lite \
 
 LIB_DEPENDS =	devel/libusb1 \
 		print/cups,-libs \
-		graphics/ffmpeg
+		graphics/ffmpeg \
+		textproc/icu4c \
+		devel/jansson \
+		www/uriparser
 
 # used to work-around lack of posix timers.
 # not quite everything is correct, but works well enough for most use.
 LIB_DEPENDS +=	devel/epoll-shim
 
 CONFIGURE_ARGS += \
+		-DUSE_VERSION_FROM_GIT_TAG=OFF \
+		-DUSE_GIT_FOR_REVISION=OFF \
 		-DBUILD_TESTING=ON \
 		-DWITH_CCACHE=OFF \
 		-DWITH_CUPS=ON \
 		-DWITH_DIRECTFB=OFF \
+		-DWITH_FUSE=OFF \
 		-DWITH_GSTREAMER_0_10=OFF \
 		-DWITH_GSTREAMER_1_0=OFF \
+		-DWITH_KRB5=OFF \
 		-DWITH_OPENSLES=OFF \
 		-DWITH_PCSC=ON \
 		-DWITH_LIBSYSTEMD=OFF \
 		-DWITH_OSS=OFF \
 		-DWITH_SNDIO=ON
 
-.if ${MACHINE_ARCH} == "sparc64"
-CONFIGURE_ARGS +=	-DWITH_NEON=OFF
-.endif
+# experimental, pulls in libpam
+CONFIGURE_ARGS += -DWITH_SERVER=OFF
 
-pre-configure:
-	sed -i 's,/usr/local,${LOCALBASE},g' ${WRKSRC}/{,winpr/libwinpr/}CMakeLists.txt
+# SDL 2.x experimental, disabled by default
+# SDL 3.x on by default but needs devel/sdl3 devel/sdl3-ttf (the latter unported)
+# is SDL support worth the extra deps?
+# if so, maybe subpackage to reduce them for the common case?
+CONFIGURE_ARGS += -DWITH_CLIENT_SDL=OFF
 
+# wants at least LDEP on wayland/wayland x11/xkbcommon
+CONFIGURE_ARGS += -DWITH_WAYLAND=OFF
+
+# might no longer be needed
+.if ${MACHINE_ARCH} == "sparc64"
+CONFIGURE_ARGS += -DWITH_SIMD=OFF
+.endif
 
 .include <bsd.port.mk>
Index: x11/freerdp/distinfo
===================================================================
RCS file: /cvs/ports/x11/freerdp/distinfo,v
diff -u -p -r1.31 distinfo
--- x11/freerdp/distinfo	26 Feb 2026 09:23:13 -0000	1.31
+++ x11/freerdp/distinfo	11 Aug 2026 23:18:17 -0000
@@ -1,4 +1,2 @@
-SHA256 (freerdp-2.11.8.tar.gz) = vhGaNLBtP2l7eO/+GrfIHe6As5rjM9haF1NeZHhqEts=
-SHA256 (freerdp-sndio-upd2.patch) = aQEVS0+WMH4D0tPX56gdMHgpiEL1d0Pv3g8QgHno6jk=
-SIZE (freerdp-2.11.8.tar.gz) = 7330711
-SIZE (freerdp-sndio-upd2.patch) = 23241
+SHA256 (freerdp-3.30.0.tar.gz) = 4mh9At6m/t4ATTY5HawadM5XohD4hn/ZUDMXHUkJWQw=
+SIZE (freerdp-3.30.0.tar.gz) = 11070523
Index: x11/freerdp/patches/patch-CMakeLists_txt
===================================================================
RCS file: x11/freerdp/patches/patch-CMakeLists_txt
diff -N x11/freerdp/patches/patch-CMakeLists_txt
--- x11/freerdp/patches/patch-CMakeLists_txt	28 Feb 2026 18:03:04 -0000	1.17
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-Index: CMakeLists.txt
---- CMakeLists.txt.orig
-+++ CMakeLists.txt
-@@ -85,7 +85,7 @@ if ($ENV{BUILD_NUMBER})
- endif()
- set(WITH_LIBRARY_VERSIONING "ON")
- 
--set(RAW_VERSION_STRING "2.11.8-dev")
-+set(RAW_VERSION_STRING "2.11.8")
- if(EXISTS "${CMAKE_SOURCE_DIR}/.source_tag")
- 	file(READ ${CMAKE_SOURCE_DIR}/.source_tag RAW_VERSION_STRING)
- elseif(USE_VERSION_FROM_GIT_TAG)
-@@ -202,12 +202,14 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
- 	set(BSD TRUE)
- 	if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
- 		set(FREEBSD TRUE)
-+		set(EPOLLSHIM TRUE)
- 	endif()
- 	if(${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD")
- 		set(KFREEBSD TRUE)
- 	endif()
- 	if(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
- 		set(OPENBSD TRUE)
-+		set(EPOLLSHIM TRUE)
- 	endif()
- endif()
- 
-@@ -216,11 +218,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "DragonFly")
- 	set(FREEBSD TRUE)
- endif()
- 
--if(FREEBSD)
-+if(EPOLLSHIM)
- 	find_path(EPOLLSHIM_INCLUDE_DIR NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim)
- 	find_library(EPOLLSHIM_LIBS NAMES epoll-shim libepoll-shim HINTS /usr/local/lib)
- endif()
- 
-+find_library(EXECINFO_LIBS NAMES execinfo)
-+
- # Configure MSVC Runtime
- if(MSVC)
- 	include(MSVCRuntime)
-@@ -656,12 +660,13 @@ if(UNIX OR CYGWIN)
- 	if (HAVE_SYS_EVENTFD_H)
- 		check_symbol_exists(eventfd_read sys/eventfd.h WITH_EVENTFD_READ_WRITE)
- 	endif()
--	if (FREEBSD)
-+	if (EPOLLSHIM)
- 		list(APPEND CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
- 	endif()
- 	check_include_files(sys/timerfd.h HAVE_SYS_TIMERFD_H)
--	if (FREEBSD)
-+	if (EPOLLSHIM)
- 		list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
-+		list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${EXECINFO_INCLUDE_DIR})
- 	endif()
- 	check_include_files(poll.h HAVE_POLL_H)
- 	list(APPEND CMAKE_REQUIRED_LIBRARIES m)
Index: x11/freerdp/patches/patch-channels_rdpdr_client_rdpdr_main_c
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-channels_rdpdr_client_rdpdr_main_c,v
diff -u -p -r1.7 patch-channels_rdpdr_client_rdpdr_main_c
--- x11/freerdp/patches/patch-channels_rdpdr_client_rdpdr_main_c	10 Feb 2024 17:52:47 -0000	1.7
+++ x11/freerdp/patches/patch-channels_rdpdr_client_rdpdr_main_c	11 Aug 2026 23:18:17 -0000
@@ -1,16 +1,28 @@
+#1: no hotplug on openbsd
+#2: static mount table returned by getmntinfo(3) on freebsd/openbsd cannot be freed
+#3: no hotplug on openbsd
+
 Index: channels/rdpdr/client/rdpdr_main.c
 --- channels/rdpdr/client/rdpdr_main.c.orig
 +++ channels/rdpdr/client/rdpdr_main.c
-@@ -254,7 +254,7 @@ static UINT rdpdr_send_device_list_remove_request(rdpd
+@@ -247,7 +247,7 @@ static UINT rdpdr_send_device_list_remove_request(rdpd
  	return rdpdr_send(rdpdr, s);
  }
  
 -#if defined(_UWP) || defined(__IOS__)
 +#if defined(_UWP) || defined(__IOS__) || defined(__OpenBSD__)
  
- void first_hotplug(rdpdrPlugin* rdpdr)
- {
-@@ -1101,7 +1101,7 @@ out:
+ static UINT handle_hotplug(WINPR_ATTR_UNUSED RdpdrClientContext* context,
+                            WINPR_ATTR_UNUSED RdpdrHotplugEventType type)
+@@ -842,7 +842,6 @@ static UINT handle_platform_mounts_bsd(wLog* log, hotp
+ 	{
+ 		handle_mountpoint(dev_array, size, mntbuf[idx].f_mntonname);
+ 	}
+-	free(mntbuf);
+ 	return ERROR_SUCCESS;
+ }
+ #endif
+@@ -1099,7 +1098,7 @@ out:
  
  #endif
  
Index: x11/freerdp/patches/patch-channels_rdpsnd_client_rdpsnd_main_c
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-channels_rdpsnd_client_rdpsnd_main_c,v
diff -u -p -r1.2 patch-channels_rdpsnd_client_rdpsnd_main_c
--- x11/freerdp/patches/patch-channels_rdpsnd_client_rdpsnd_main_c	10 Feb 2024 17:52:47 -0000	1.2
+++ x11/freerdp/patches/patch-channels_rdpsnd_client_rdpsnd_main_c	11 Aug 2026 23:18:17 -0000
@@ -3,13 +3,13 @@ Default /sound (without parameters) to :
 Index: channels/rdpsnd/client/rdpsnd_main.c
 --- channels/rdpsnd/client/rdpsnd_main.c.orig
 +++ channels/rdpsnd/client/rdpsnd_main.c
-@@ -986,7 +986,8 @@ static UINT rdpsnd_process_addin_args(rdpsndPlugin* rd
+@@ -1017,7 +1017,8 @@ static UINT rdpsnd_process_addin_args(rdpsndPlugin* rd
  			}
  			CommandLineSwitchEnd(arg)
- 		} while ((arg = CommandLineFindNextArgumentA(arg)) != NULL);
+ 		} while ((arg = CommandLineFindNextArgumentA(arg)) != nullptr);
 -	}
 +	} else
-+		rdpsnd_set_subsystem(rdpsnd, "sndio");	/* default to sndio(7) not fake backend */
++		rdpsnd_set_subsystem(rdpsnd, "sndio");  /* default to sndio(7) not fake backend */
  
  	return CHANNEL_RC_OK;
  }
Index: x11/freerdp/patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
===================================================================
RCS file: x11/freerdp/patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
diff -N x11/freerdp/patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
--- x11/freerdp/patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c	7 Nov 2025 14:19:31 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-Index: channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
---- channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c.orig
-+++ channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
-@@ -624,11 +624,18 @@ static void tsmf_ffmpeg_free(ITSMFDecoder* decoder)
- 
- 	if (mdecoder->codec_context)
- 	{
-+
-+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 69, 100)
- 		if (mdecoder->prepared)
- 			avcodec_close(mdecoder->codec_context);
-+#endif
- 
- 		free(mdecoder->codec_context->extradata);
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
-+		avcodec_free_context(&mdecoder->codec_context);
-+#else
- 		av_free(mdecoder->codec_context);
-+#endif
- 	}
- 
- 	free(decoder);
Index: x11/freerdp/patches/patch-client_X11_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-client_X11_CMakeLists_txt,v
diff -u -p -r1.5 patch-client_X11_CMakeLists_txt
--- x11/freerdp/patches/patch-client_X11_CMakeLists_txt	11 Mar 2022 20:15:31 -0000	1.5
+++ x11/freerdp/patches/patch-client_X11_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -1,12 +1,12 @@
 Index: client/X11/CMakeLists.txt
 --- client/X11/CMakeLists.txt.orig
 +++ client/X11/CMakeLists.txt
-@@ -229,7 +229,7 @@ endif()
- include_directories(${CMAKE_SOURCE_DIR}/resources)
+@@ -183,7 +183,7 @@ endif()
+ list(APPEND PUB_LIBS freerdp-client)
  
- set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client freerdp m)
--if (NOT APPLE)
-+if ((NOT APPLE) AND (NOT OPENBSD))
- 	list(APPEND ${MODULE_PREFIX}_LIBS rt)
+ list(APPEND PRIV_LIBS m)
+-if(NOT APPLE)
++if(NOT APPLE AND NOT OPENBSD)
+   list(APPEND PRIV_LIBS rt)
  endif()
- target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS})
+ target_link_libraries(${PROJECT_NAME} PUBLIC ${PUB_LIBS})
Index: x11/freerdp/patches/patch-cmake_ConfigOptions_cmake
===================================================================
RCS file: x11/freerdp/patches/patch-cmake_ConfigOptions_cmake
diff -N x11/freerdp/patches/patch-cmake_ConfigOptions_cmake
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-cmake_ConfigOptions_cmake	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,16 @@
+broken upstream
+
+Index: cmake/ConfigOptions.cmake
+--- cmake/ConfigOptions.cmake.orig
++++ cmake/ConfigOptions.cmake
+@@ -181,9 +181,7 @@ endif()
+ 
+ if(OPENBSD)
+   find_package(SNDIO)
+-  option(WITH_SNDIO "use SNDIO for sound" ${SNDIO_FOUND # OpenBSD
+-         endif () }
+-  )
++  option(WITH_SNDIO "use SNDIO for sound" ${SNDIO_FOUND})
+ endif()
+ 
+ option(BUILD_FUZZERS "Use BUILD_FUZZERS to build fuzzing tests" OFF)
Index: x11/freerdp/patches/patch-cmake_FindSNDIO_cmake
===================================================================
RCS file: x11/freerdp/patches/patch-cmake_FindSNDIO_cmake
diff -N x11/freerdp/patches/patch-cmake_FindSNDIO_cmake
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-cmake_FindSNDIO_cmake	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,29 @@
+not included when upstream merged the sndio diff
+
+Index: cmake/FindSNDIO.cmake
+--- cmake/FindSNDIO.cmake.orig
++++ cmake/FindSNDIO.cmake
+@@ -0,0 +1,23 @@
++# - Try to find sndio
++# Once done this will define
++#  SNDIO_FOUND - sndio was found
++#  SNDIO_INCLUDE_DIRS - sndio include directories
++#  SNDIO_LIBRARIES - libraries needed for linking
++
++find_package(PkgConfig QUIET)
++
++if(PKG_CONFIG_FOUND)
++  pkg_check_modules(PC_SNDIO QUIET sndio)
++endif()
++
++find_path(SNDIO_INCLUDE_DIR sndio.h HINTS ${PC_SNDIO_INCLUDEDIR} ${PC_SNDIO_INCLUDE_DIRS})
++
++find_library(SNDIO_LIBRARY NAMES sndio HINTS ${PC_SNDIO_LIBDIR} ${PC_SNDIO_LIBRARY_DIRS})
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(SNDIO DEFAULT_MSG SNDIO_LIBRARY SNDIO_INCLUDE_DIR)
++
++set(SNDIO_LIBRARIES ${SNDIO_LIBRARY})
++set(SNDIO_INCLUDE_DIRS ${SNDIO_INCLUDE_DIR})
++
++mark_as_advanced(SNDIO_INCLUDE_DIR SNDIO_LIBRARY)
Index: x11/freerdp/patches/patch-cmake_PlatformDefaults_cmake
===================================================================
RCS file: x11/freerdp/patches/patch-cmake_PlatformDefaults_cmake
diff -N x11/freerdp/patches/patch-cmake_PlatformDefaults_cmake
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-cmake_PlatformDefaults_cmake	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,31 @@
+Index: cmake/PlatformDefaults.cmake
+--- cmake/PlatformDefaults.cmake.orig
++++ cmake/PlatformDefaults.cmake
+@@ -23,6 +23,7 @@ if(USE_PLATFORM_DEFAULT)
+   if("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
+     set(BSD TRUE CACHE INTERNAL "platform default")
+     set(FREEBSD TRUE CACHE INTERNAL "platform default")
++    set(EPOLLSHIM TRUE CACHE INTERNAL "platform default")
+     # we want POSIX 2008. FreeBSD 14 does only support 2001 fully, but the subset we require from 2008
+     # is implemented, so ignore _POSIX_VERSION from unistd.h
+     add_compile_definitions("_POSIX_C_SOURCE=200809L")
+@@ -65,6 +66,10 @@ if(USE_PLATFORM_DEFAULT)
+   if(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
+     set(BSD TRUE CACHE INTERNAL "platform default")
+     set(OPENBSD TRUE CACHE INTERNAL "platform default")
++    set(EPOLLSHIM TRUE CACHE INTERNAL "platform default")
++    # set _POSIX_C_SOURCE, but also keep internal APIs like getthrid(2)
++    add_compile_definitions("_POSIX_C_SOURCE=200809L")
++    add_compile_definitions("_BSD_SOURCE")
+   endif()
+ 
+   if(${CMAKE_SYSTEM_NAME} MATCHES "DragonFly")
+@@ -103,7 +108,7 @@ if(USE_PLATFORM_DEFAULT)
+   endif()
+   add_compile_definitions("WINPR_TIMEZONE_FILE=\"${WINPR_TIMEZONE_FILE}\"")
+ 
+-  if(FREEBSD)
++  if(EPOLLSHIM)
+     find_path(EPOLLSHIM_INCLUDE_DIR NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim)
+     find_library(EPOLLSHIM_LIBS NAMES epoll-shim libepoll-shim HINTS /usr/local/lib)
+   endif()
Index: x11/freerdp/patches/patch-libfreerdp_CMakeLists_txt
===================================================================
RCS file: x11/freerdp/patches/patch-libfreerdp_CMakeLists_txt
diff -N x11/freerdp/patches/patch-libfreerdp_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-libfreerdp_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,41 @@
+Recognize the bundled FindFFmpeg's uppercase AVCODEC result for MJPEG.
+
+Drop useless confusing chunk. Upstream's merging process seems very
+confusing and often results in commits that seem to be (and in some
+cases definitely are) bad.
+
+Index: libfreerdp/CMakeLists.txt
+--- libfreerdp/CMakeLists.txt.orig
++++ libfreerdp/CMakeLists.txt
+@@ -176,7 +176,7 @@ if(WITH_SWSCALE)
+     # AVUTIL is needed for av_image_* functions, AVCODEC is optional (for MJPEG in video.c)
+     find_package(FFmpeg REQUIRED COMPONENTS SWSCALE AVUTIL)
+     find_package(FFmpeg COMPONENTS AVCODEC)
+-    if(FFmpeg_avcodec_FOUND)
++    if(FFmpeg_AVCODEC_FOUND OR FFmpeg_avcodec_FOUND)
+       message(STATUS "FFmpeg AVCODEC found - MJPEG support available in video codec wrappers")
+       set(WITH_FFMPEG ON)
+     else()
+@@ -189,22 +189,6 @@ if(WITH_CAIRO)
+   find_package(Cairo REQUIRED)
+   freerdp_pc_add_requires_private("cairo")
+ endif(WITH_CAIRO)
+-
+-# Prefer SWScale over Cairo, both at the same time are not possible.
+-if(WITH_SWSCALE)
+-  if(NOT WITH_SWSCALE_LOADING)
+-    include_directories(SYSTEM ${SWSCALE_INCLUDE_DIRS} ${AVUTIL_INCLUDE_DIRS})
+-    freerdp_library_add(${SWSCALE_LIBRARIES} ${AVUTIL_LIBRARIES})
+-    if(FFmpeg_avcodec_FOUND)
+-      include_directories(SYSTEM ${AVCODEC_INCLUDE_DIRS})
+-      freerdp_library_add(${AVCODEC_LIBRARIES})
+-    endif()
+-  endif(NOT WITH_SWSCALE_LOADING)
+-endif()
+-if(WITH_CAIRO)
+-  include_directories(SYSTEM ${CAIRO_INCLUDE_DIR})
+-  freerdp_library_add(${CAIRO_LIBRARY})
+-endif()
+ if(NOT WITH_SWSCALE AND NOT WITH_CAIRO)
+   message(WARNING "-DWITH_SWSCALE=OFF and -DWITH_CAIRO=OFF, compiling without image scaling support!")
+ endif()
Index: x11/freerdp/patches/patch-libfreerdp_codec_h264_ffmpeg_c
===================================================================
RCS file: x11/freerdp/patches/patch-libfreerdp_codec_h264_ffmpeg_c
diff -N x11/freerdp/patches/patch-libfreerdp_codec_h264_ffmpeg_c
--- x11/freerdp/patches/patch-libfreerdp_codec_h264_ffmpeg_c	7 Nov 2025 14:19:31 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-Index: libfreerdp/codec/h264_ffmpeg.c
---- libfreerdp/codec/h264_ffmpeg.c.orig
-+++ libfreerdp/codec/h264_ffmpeg.c
-@@ -100,10 +100,10 @@ static void libavcodec_destroy_encoder(H264_CONTEXT* h
- 
- 	if (sys->codecEncoderContext)
- 	{
--		avcodec_close(sys->codecEncoderContext);
- #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
- 		avcodec_free_context(&sys->codecEncoderContext);
- #else
-+		avcodec_close(sys->codecEncoderContext);
- 		av_free(sys->codecEncoderContext);
- #endif
- 	}
-@@ -430,10 +430,10 @@ static void libavcodec_uninit(H264_CONTEXT* h264)
- 
- 	if (sys->codecDecoderContext)
- 	{
--		avcodec_close(sys->codecDecoderContext);
- #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
- 		avcodec_free_context(&sys->codecDecoderContext);
- #else
-+		avcodec_close(sys->codecDecoderContext);
- 		av_free(sys->codecDecoderContext);
- #endif
- 	}
Index: x11/freerdp/patches/patch-libfreerdp_core_transport_c
===================================================================
RCS file: x11/freerdp/patches/patch-libfreerdp_core_transport_c
diff -N x11/freerdp/patches/patch-libfreerdp_core_transport_c
--- x11/freerdp/patches/patch-libfreerdp_core_transport_c	2 Aug 2022 13:02:43 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: libfreerdp/core/transport.c
---- libfreerdp/core/transport.c.orig
-+++ libfreerdp/core/transport.c
-@@ -300,7 +300,7 @@ BOOL transport_connect_tls(rdpTransport* transport)
- 	}
- 
- 	transport->frontBio = tls->bio;
--	BIO_callback_ctrl(tls->bio, BIO_CTRL_SET_CALLBACK, (bio_info_cb*)(void*)transport_ssl_cb);
-+	BIO_callback_ctrl(tls->bio, BIO_CTRL_SET_CALLBACK, (BIO_info_cb*)(void*)transport_ssl_cb);
- 	SSL_set_app_data(tls->ssl, transport);
- 
- 	if (!transport->frontBio)
Index: x11/freerdp/patches/patch-libfreerdp_crypto_crypto_c
===================================================================
RCS file: x11/freerdp/patches/patch-libfreerdp_crypto_crypto_c
diff -N x11/freerdp/patches/patch-libfreerdp_crypto_crypto_c
--- x11/freerdp/patches/patch-libfreerdp_crypto_crypto_c	10 Feb 2024 17:52:47 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-Index: libfreerdp/crypto/crypto.c
---- libfreerdp/crypto/crypto.c.orig
-+++ libfreerdp/crypto/crypto.c
-@@ -979,7 +979,7 @@ WINPR_MD_TYPE crypto_cert_get_signature_alg(X509* xcer
- 			return WINPR_MD_SHA512;
- 		case NID_ripemd160:
- 			return WINPR_MD_RIPEMD160;
--#if (OPENSSL_VERSION_NUMBER >= 0x1010101fL) && !defined(LIBRESSL_VERSION_NUMBER)
-+#if (OPENSSL_VERSION_NUMBER >= 0x1010101fL) && defined(NID_sha3_256)
- 		case NID_sha3_224:
- 			return WINPR_MD_SHA3_224;
- 		case NID_sha3_256:
-@@ -988,6 +988,8 @@ WINPR_MD_TYPE crypto_cert_get_signature_alg(X509* xcer
- 			return WINPR_MD_SHA3_384;
- 		case NID_sha3_512:
- 			return WINPR_MD_SHA3_512;
-+#endif
-+#if defined(NID_shake256)
- 		case NID_shake128:
- 			return WINPR_MD_SHAKE128;
- 		case NID_shake256:
Index: x11/freerdp/patches/patch-libfreerdp_crypto_tls_c
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-libfreerdp_crypto_tls_c,v
diff -u -p -r1.10 patch-libfreerdp_crypto_tls_c
--- x11/freerdp/patches/patch-libfreerdp_crypto_tls_c	2 Aug 2022 13:02:43 -0000	1.10
+++ x11/freerdp/patches/patch-libfreerdp_crypto_tls_c	11 Aug 2026 23:18:17 -0000
@@ -3,7 +3,7 @@ Use correct version of BIO_info_cb (we m
 Index: libfreerdp/crypto/tls.c
 --- libfreerdp/crypto/tls.c.orig
 +++ libfreerdp/crypto/tls.c
-@@ -484,7 +484,7 @@ static int bio_rdp_tls_free(BIO* bio)
+@@ -536,7 +536,7 @@ static int bio_rdp_tls_free(BIO* bio)
  	return 1;
  }
  
@@ -11,13 +11,13 @@ Index: libfreerdp/crypto/tls.c
 +static long bio_rdp_tls_callback_ctrl(BIO* bio, int cmd, BIO_info_cb* fp)
  {
  	long status = 0;
- 	BIO_RDP_TLS* tls;
-@@ -503,7 +503,7 @@ static long bio_rdp_tls_callback_ctrl(BIO* bio, int cm
- 		{
+ 
+@@ -555,7 +555,7 @@ static long bio_rdp_tls_callback_ctrl(BIO* bio, int cm
  			typedef void (*fkt_t)(const SSL*, int, int);
+ 
  			/* Documented since https://www.openssl.org/docs/man1.1.1/man3/BIO_set_callback.html
 -			 * the argument is not really of type bio_info_cb* and must be cast
 +			 * the argument is not really of type BIO_info_cb* and must be cast
  			 * to the required type */
- 			fkt_t fkt = (fkt_t)(void*)fp;
- 			SSL_set_info_callback(tls->ssl, fkt);
+ 
+ 			fkt_t fkt = WINPR_FUNC_PTR_CAST(fp, fkt_t);
Index: x11/freerdp/patches/patch-uwac_libuwac_CMakeLists_txt
===================================================================
RCS file: x11/freerdp/patches/patch-uwac_libuwac_CMakeLists_txt
diff -N x11/freerdp/patches/patch-uwac_libuwac_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-uwac_libuwac_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,12 @@
+Index: uwac/libuwac/CMakeLists.txt
+--- uwac/libuwac/CMakeLists.txt.orig
++++ uwac/libuwac/CMakeLists.txt
+@@ -49,7 +49,7 @@ generate_protocol_file(ivi-application)
+ generate_protocol_file(fullscreen-shell-unstable-v1)
+ generate_protocol_file(keyboard-shortcuts-inhibit-unstable-v1)
+ 
+-if(FREEBSD)
++if(EPOLLSHIM)
+   include_directories(SYSTEM ${EPOLLSHIM_INCLUDE_DIR})
+ endif()
+ include_directories(SYSTEM ${WAYLAND_INCLUDE_DIR})
Index: x11/freerdp/patches/patch-uwac_libuwac_uwac-os_c
===================================================================
RCS file: x11/freerdp/patches/patch-uwac_libuwac_uwac-os_c
diff -N x11/freerdp/patches/patch-uwac_libuwac_uwac-os_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-uwac_libuwac_uwac-os_c	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,15 @@
+Don't define the macro if there's no backend support, it breaks the
+proper fallback in uwac_create_anonymous_file().
+
+Index: uwac/libuwac/uwac-os.c
+--- uwac/libuwac/uwac-os.c.orig
++++ uwac/libuwac/uwac-os.c
+@@ -43,7 +43,7 @@
+ #endif
+ 
+ /* uClibc and uClibc-ng don't provide O_TMPFILE */
+-#if !defined(O_TMPFILE) && !defined(__FreeBSD__)
++#if !defined(O_TMPFILE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+ #define O_TMPFILE (020000000 | O_DIRECTORY)
+ #endif
+ 
Index: x11/freerdp/patches/patch-winpr_CMakeLists_txt
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_CMakeLists_txt
diff -N x11/freerdp/patches/patch-winpr_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-winpr_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,38 @@
+Index: winpr/CMakeLists.txt
+--- winpr/CMakeLists.txt.orig
++++ winpr/CMakeLists.txt
+@@ -245,6 +245,10 @@ endif()
+ if(NOT IOS)
+   check_include_files(fcntl.h WINPR_HAVE_FCNTL_H)
+   check_include_files(aio.h WINPR_HAVE_AIO_H)
++  if(EPOLLSHIM)
++    list(APPEND CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
++    list(APPEND CMAKE_REQUIRED_LIBRARIES ${EPOLLSHIM_LIBS})
++  endif()
+   check_include_files(sys/timerfd.h WINPR_HAVE_SYS_TIMERFD_H)
+   check_include_files(unistd.h WINPR_HAVE_UNISTD_H)
+   check_include_files(inttypes.h WINPR_HAVE_INTTYPES_H)
+@@ -257,6 +261,10 @@ if(NOT IOS)
+   if(WINPR_HAVE_SYS_EVENTFD_H)
+     check_symbol_exists(eventfd_read sys/eventfd.h WITH_EVENTFD_READ_WRITE)
+   endif()
++  if(EPOLLSHIM)
++    list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
++    list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${EPOLLSHIM_LIBS})
++  endif()
+ 
+   include(CheckFunctionExists)
+   check_function_exists(strerror_r WINPR_HAVE_STRERROR_R)
+@@ -272,12 +280,6 @@ else()
+ endif()
+ 
+ if(UNIX OR CYGWIN)
+-  if(FREEBSD)
+-    list(APPEND CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
+-  endif()
+-  if(FREEBSD)
+-    list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${EPOLLSHIM_INCLUDE_DIR})
+-  endif()
+   option(WITH_POLL "Check for and include poll.h" ON)
+   if(WITH_POLL)
+     check_include_files(poll.h WINPR_HAVE_POLL_H)
Index: x11/freerdp/patches/patch-winpr_include_winpr_string_h
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_include_winpr_string_h
diff -N x11/freerdp/patches/patch-winpr_include_winpr_string_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-winpr_include_winpr_string_h	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,13 @@
+Include stdarg.h for the va_list type exposed by the winpr_vasprintf.
+
+Index: winpr/include/winpr/string.h
+--- winpr/include/winpr/string.h.orig
++++ winpr/include/winpr/string.h
+@@ -21,6 +21,7 @@
+ #ifndef WINPR_CRT_STRING_H
+ #define WINPR_CRT_STRING_H
+ 
++#include <stdarg.h>
+ #include <wchar.h>
+ #include <stdio.h>
+ #include <string.h>
Index: x11/freerdp/patches/patch-winpr_libwinpr_library_CMakeLists_txt
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_libwinpr_library_CMakeLists_txt
diff -N x11/freerdp/patches/patch-winpr_libwinpr_library_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-winpr_libwinpr_library_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,11 @@
+Index: winpr/libwinpr/library/CMakeLists.txt
+--- winpr/libwinpr/library/CMakeLists.txt.orig
++++ winpr/libwinpr/library/CMakeLists.txt
+@@ -17,6 +17,6 @@
+ 
+ winpr_module_add(library.c)
+ 
+-if(BUILD_TESTING_INTERNAL OR BUILD_TESTING)
++if(BUILD_TESTING_INTERNAL OR BUILD_TESTING) # AND NOT OPENBSD -- no getexepath() yet
+   add_subdirectory(test)
+ endif()
Index: x11/freerdp/patches/patch-winpr_libwinpr_synch_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-winpr_libwinpr_synch_CMakeLists_txt,v
diff -u -p -r1.6 patch-winpr_libwinpr_synch_CMakeLists_txt
--- x11/freerdp/patches/patch-winpr_libwinpr_synch_CMakeLists_txt	11 Mar 2022 20:15:31 -0000	1.6
+++ x11/freerdp/patches/patch-winpr_libwinpr_synch_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -1,18 +1,12 @@
 Index: winpr/libwinpr/synch/CMakeLists.txt
 --- winpr/libwinpr/synch/CMakeLists.txt.orig
 +++ winpr/libwinpr/synch/CMakeLists.txt
-@@ -30,9 +30,13 @@ winpr_module_add(
- 	timer.c
- 	wait.c)
+@@ -31,7 +31,7 @@ winpr_module_add(
+   wait.c
+ )
  
 -if(FREEBSD)
 +if(EPOLLSHIM)
- 	winpr_include_directory_add(${EPOLLSHIM_INCLUDE_DIR})
- 	winpr_library_add_private(${EPOLLSHIM_LIBS})
-+endif()
-+
-+if(EXECINFO_LIBS)
-+	winpr_library_add_private(${EXECINFO_LIBS})
+   winpr_system_include_directory_add(${EPOLLSHIM_INCLUDE_DIR})
+   winpr_library_add_private(${EPOLLSHIM_LIBS})
  endif()
- 
- if(BUILD_TESTING)
Index: x11/freerdp/patches/patch-winpr_libwinpr_synch_test_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-winpr_libwinpr_synch_test_CMakeLists_txt,v
diff -u -p -r1.4 patch-winpr_libwinpr_synch_test_CMakeLists_txt
--- x11/freerdp/patches/patch-winpr_libwinpr_synch_test_CMakeLists_txt	11 Mar 2022 20:15:31 -0000	1.4
+++ x11/freerdp/patches/patch-winpr_libwinpr_synch_test_CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -1,12 +1,19 @@
 Index: winpr/libwinpr/synch/test/CMakeLists.txt
 --- winpr/libwinpr/synch/test/CMakeLists.txt.orig
 +++ winpr/libwinpr/synch/test/CMakeLists.txt
-@@ -22,7 +22,7 @@ create_test_sourcelist(${MODULE_PREFIX}_SRCS
- 	${${MODULE_PREFIX}_DRIVER}
- 	${${MODULE_PREFIX}_TESTS})
+@@ -20,9 +20,14 @@ set(${MODULE_PREFIX}_TESTS
+     TestSynchAPC.c
+ )
+ 
++# openbsd doesn't have proper posix timers
++if(OPENBSD)
++  list(REMOVE_ITEM ${MODULE_PREFIX}_TESTS TestSynchTimerQueue.c)
++endif()
++
+ create_test_sourcelist(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_DRIVER} ${${MODULE_PREFIX}_TESTS})
  
 -if(FREEBSD)
 +if(EPOLLSHIM)
- 	include_directories(${EPOLLSHIM_INCLUDE_DIR})
+   include_directories(SYSTEM ${EPOLLSHIM_INCLUDE_DIR})
  endif()
  
Index: x11/freerdp/patches/patch-winpr_libwinpr_sysinfo_sysinfo_c
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_libwinpr_sysinfo_sysinfo_c
diff -N x11/freerdp/patches/patch-winpr_libwinpr_sysinfo_sysinfo_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-winpr_libwinpr_sysinfo_sysinfo_c	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,21 @@
+Linux CLOCK_MONOTONIC is unaffected by admin jumps in time but is
+affected by NTP skewing etc so multiple calls may return the same value.
+CLOCK_MONOTONIC_RAW is not affected by skewing. Depending on which
+behaviour upstream wants, this change may or may not be correct.
+
+Index: winpr/libwinpr/sysinfo/sysinfo.c
+--- winpr/libwinpr/sysinfo/sysinfo.c.orig
++++ winpr/libwinpr/sysinfo/sysinfo.c
+@@ -328,7 +328,11 @@ BOOL GetSystemTimeAdjustment(WINPR_ATTR_UNUSED PDWORD 
+ }
+ 
+ #ifndef CLOCK_MONOTONIC_RAW
+-#define CLOCK_MONOTONIC_RAW 4
++#  if defined(__linux__)
++#    define CLOCK_MONOTONIC_RAW 4
++#  else
++#    define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC
++#  endif
+ #endif
+ 
+ DWORD GetTickCount(void)
Index: x11/freerdp/patches/patch-winpr_libwinpr_thread_thread_c
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_libwinpr_thread_thread_c
diff -N x11/freerdp/patches/patch-winpr_libwinpr_thread_thread_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/freerdp/patches/patch-winpr_libwinpr_thread_thread_c	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,12 @@
+Index: winpr/libwinpr/thread/thread.c
+--- winpr/libwinpr/thread/thread.c.orig
++++ winpr/libwinpr/thread/thread.c
+@@ -907,6 +907,8 @@ DWORD GetCurrentThreadId(VOID)
+ {
+ #if defined(__FreeBSD__)
+ 	return WINPR_CXX_COMPAT_CAST(DWORD, pthread_getthreadid_np());
++#elif defined(__OpenBSD__)
++	return WINPR_CXX_COMPAT_CAST(DWORD, getthrid());
+ #elif defined(__linux__)
+ 	return WINPR_CXX_COMPAT_CAST(DWORD, syscall(SYS_gettid));
+ #else
Index: x11/freerdp/patches/patch-winpr_libwinpr_utils_collections_Queue_c
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_libwinpr_utils_collections_Queue_c
diff -N x11/freerdp/patches/patch-winpr_libwinpr_utils_collections_Queue_c
--- x11/freerdp/patches/patch-winpr_libwinpr_utils_collections_Queue_c	21 May 2026 17:02:48 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: winpr/libwinpr/utils/collections/Queue.c
---- winpr/libwinpr/utils/collections/Queue.c.orig
-+++ winpr/libwinpr/utils/collections/Queue.c
-@@ -160,7 +160,7 @@ static BOOL Queue_EnsureCapacity(wQueue* queue, size_t
- 		if (new_capacity > SIZE_MAX / sizeof(BYTE*))
- 			return FALSE;
- 
--		uintptr_t* newArray = (uintptr_t*)realloc(queue->array, sizeof(uintptr_t) * new_capacity);
-+		void **newArray = (void**)realloc(queue->array, sizeof(uintptr_t) * new_capacity);
- 
- 		if (!newArray)
- 			return FALSE;
Index: x11/freerdp/patches/patch-winpr_libwinpr_utils_trio_triodef_h
===================================================================
RCS file: x11/freerdp/patches/patch-winpr_libwinpr_utils_trio_triodef_h
diff -N x11/freerdp/patches/patch-winpr_libwinpr_utils_trio_triodef_h
--- x11/freerdp/patches/patch-winpr_libwinpr_utils_trio_triodef_h	11 Mar 2022 20:15:31 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: winpr/libwinpr/utils/trio/triodef.h
---- winpr/libwinpr/utils/trio/triodef.h.orig
-+++ winpr/libwinpr/utils/trio/triodef.h
-@@ -88,7 +88,7 @@
- #endif
- #endif
- 
--#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
-+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
- #define TRIO_PLATFORM_UNIX
- #endif
- 
Index: x11/freerdp/patches/patch-winpr_winpr_pc_in
===================================================================
RCS file: /cvs/ports/x11/freerdp/patches/patch-winpr_winpr_pc_in,v
diff -u -p -r1.2 patch-winpr_winpr_pc_in
--- x11/freerdp/patches/patch-winpr_winpr_pc_in	11 Mar 2022 20:15:31 -0000	1.2
+++ x11/freerdp/patches/patch-winpr_winpr_pc_in	11 Aug 2026 23:18:17 -0000
@@ -3,8 +3,8 @@ Index: winpr/winpr.pc.in
 +++ winpr/winpr.pc.in
 @@ -11,5 +11,5 @@ Version: @WINPR_VERSION@
  Requires:
- Requires.private: libssl
+ Requires.private: @WINPR_PC_REQUIRES_PRIVATE@
  Libs: -L${libdir} ${libs}
--Libs.private: -ldl -lrt -lm -lpthread
+-Libs.private: @WINPR_PC_LIBRARY_PRIVATE@
 +Libs.private: -lm -lpthread
  Cflags: -I${includedir}
Index: x11/freerdp/pkg/PLIST
===================================================================
RCS file: /cvs/ports/x11/freerdp/pkg/PLIST,v
diff -u -p -r1.14 PLIST
--- x11/freerdp/pkg/PLIST	17 Feb 2023 10:05:05 -0000	1.14
+++ x11/freerdp/pkg/PLIST	11 Aug 2026 23:18:17 -0000
@@ -1,263 +1,316 @@
 @pkgpath x11/freerdp,no_cups
+@bin bin/sfreerdp
 @bin bin/winpr-hash
 @bin bin/winpr-makecert
 @bin bin/xfreerdp
-include/freerdp2/
-include/freerdp2/freerdp/
-include/freerdp2/freerdp/addin.h
-include/freerdp2/freerdp/altsec.h
-include/freerdp2/freerdp/api.h
-include/freerdp2/freerdp/assistance.h
-include/freerdp2/freerdp/autodetect.h
-include/freerdp2/freerdp/build-config.h
-include/freerdp2/freerdp/cache/
-include/freerdp2/freerdp/cache/bitmap.h
-include/freerdp2/freerdp/cache/brush.h
-include/freerdp2/freerdp/cache/cache.h
-include/freerdp2/freerdp/cache/glyph.h
-include/freerdp2/freerdp/cache/nine_grid.h
-include/freerdp2/freerdp/cache/offscreen.h
-include/freerdp2/freerdp/cache/palette.h
-include/freerdp2/freerdp/cache/pointer.h
-include/freerdp2/freerdp/channels/
-include/freerdp2/freerdp/channels/ainput.h
-include/freerdp2/freerdp/channels/audin.h
-include/freerdp2/freerdp/channels/channels.h
-include/freerdp2/freerdp/channels/cliprdr.h
-include/freerdp2/freerdp/channels/disp.h
-include/freerdp2/freerdp/channels/echo.h
-include/freerdp2/freerdp/channels/encomsp.h
-include/freerdp2/freerdp/channels/geometry.h
-include/freerdp2/freerdp/channels/log.h
-include/freerdp2/freerdp/channels/rail.h
-include/freerdp2/freerdp/channels/rdpdr.h
-include/freerdp2/freerdp/channels/rdpecam.h
-include/freerdp2/freerdp/channels/rdpei.h
-include/freerdp2/freerdp/channels/rdpgfx.h
-include/freerdp2/freerdp/channels/rdpsnd.h
-include/freerdp2/freerdp/channels/remdesk.h
-include/freerdp2/freerdp/channels/telemetry.h
-include/freerdp2/freerdp/channels/tsmf.h
-include/freerdp2/freerdp/channels/urbdrc.h
-include/freerdp2/freerdp/channels/video.h
-include/freerdp2/freerdp/channels/wtsvc.h
-include/freerdp2/freerdp/client/
-include/freerdp2/freerdp/client.h
-include/freerdp2/freerdp/client/ainput.h
-include/freerdp2/freerdp/client/audin.h
-include/freerdp2/freerdp/client/channels.h
-include/freerdp2/freerdp/client/cliprdr.h
-include/freerdp2/freerdp/client/cmdline.h
-include/freerdp2/freerdp/client/disp.h
-include/freerdp2/freerdp/client/drdynvc.h
-include/freerdp2/freerdp/client/encomsp.h
-include/freerdp2/freerdp/client/file.h
-include/freerdp2/freerdp/client/geometry.h
-include/freerdp2/freerdp/client/printer.h
-include/freerdp2/freerdp/client/rail.h
-include/freerdp2/freerdp/client/rdpei.h
-include/freerdp2/freerdp/client/rdpgfx.h
-include/freerdp2/freerdp/client/rdpsnd.h
-include/freerdp2/freerdp/client/remdesk.h
-include/freerdp2/freerdp/client/sshagent.h
-include/freerdp2/freerdp/client/tsmf.h
-include/freerdp2/freerdp/client/video.h
-include/freerdp2/freerdp/codec/
-include/freerdp2/freerdp/codec/audio.h
-include/freerdp2/freerdp/codec/bitmap.h
-include/freerdp2/freerdp/codec/bulk.h
-include/freerdp2/freerdp/codec/clear.h
-include/freerdp2/freerdp/codec/color.h
-include/freerdp2/freerdp/codec/dsp.h
-include/freerdp2/freerdp/codec/h264.h
-include/freerdp2/freerdp/codec/interleaved.h
-include/freerdp2/freerdp/codec/jpeg.h
-include/freerdp2/freerdp/codec/mppc.h
-include/freerdp2/freerdp/codec/ncrush.h
-include/freerdp2/freerdp/codec/nsc.h
-include/freerdp2/freerdp/codec/planar.h
-include/freerdp2/freerdp/codec/progressive.h
-include/freerdp2/freerdp/codec/region.h
-include/freerdp2/freerdp/codec/rfx.h
-include/freerdp2/freerdp/codec/xcrush.h
-include/freerdp2/freerdp/codec/yuv.h
-include/freerdp2/freerdp/codec/zgfx.h
-include/freerdp2/freerdp/codecs.h
-include/freerdp2/freerdp/constants.h
-include/freerdp2/freerdp/crypto/
-include/freerdp2/freerdp/crypto/ber.h
-include/freerdp2/freerdp/crypto/certificate.h
-include/freerdp2/freerdp/crypto/crypto.h
-include/freerdp2/freerdp/crypto/der.h
-include/freerdp2/freerdp/crypto/er.h
-include/freerdp2/freerdp/crypto/per.h
-include/freerdp2/freerdp/crypto/tls.h
-include/freerdp2/freerdp/display.h
-include/freerdp2/freerdp/dvc.h
-include/freerdp2/freerdp/error.h
-include/freerdp2/freerdp/event.h
-include/freerdp2/freerdp/extension.h
-include/freerdp2/freerdp/freerdp.h
-include/freerdp2/freerdp/gdi/
-include/freerdp2/freerdp/gdi/bitmap.h
-include/freerdp2/freerdp/gdi/dc.h
-include/freerdp2/freerdp/gdi/gdi.h
-include/freerdp2/freerdp/gdi/gfx.h
-include/freerdp2/freerdp/gdi/pen.h
-include/freerdp2/freerdp/gdi/region.h
-include/freerdp2/freerdp/gdi/shape.h
-include/freerdp2/freerdp/gdi/video.h
-include/freerdp2/freerdp/graphics.h
-include/freerdp2/freerdp/heartbeat.h
-include/freerdp2/freerdp/input.h
-include/freerdp2/freerdp/license.h
-include/freerdp2/freerdp/listener.h
-include/freerdp2/freerdp/locale/
-include/freerdp2/freerdp/locale/keyboard.h
-include/freerdp2/freerdp/locale/locale.h
-include/freerdp2/freerdp/log.h
-include/freerdp2/freerdp/message.h
-include/freerdp2/freerdp/metrics.h
-include/freerdp2/freerdp/peer.h
-include/freerdp2/freerdp/pointer.h
-include/freerdp2/freerdp/primary.h
-include/freerdp2/freerdp/primitives.h
-include/freerdp2/freerdp/rail.h
-include/freerdp2/freerdp/scancode.h
-include/freerdp2/freerdp/secondary.h
-include/freerdp2/freerdp/server/
-include/freerdp2/freerdp/server/ainput.h
-include/freerdp2/freerdp/server/audin.h
-include/freerdp2/freerdp/server/channels.h
-include/freerdp2/freerdp/server/cliprdr.h
-include/freerdp2/freerdp/server/disp.h
-include/freerdp2/freerdp/server/drdynvc.h
-include/freerdp2/freerdp/server/echo.h
-include/freerdp2/freerdp/server/encomsp.h
-include/freerdp2/freerdp/server/rail.h
-include/freerdp2/freerdp/server/rdpdr.h
-include/freerdp2/freerdp/server/rdpecam-enumerator.h
-include/freerdp2/freerdp/server/rdpecam.h
-include/freerdp2/freerdp/server/rdpei.h
-include/freerdp2/freerdp/server/rdpgfx.h
-include/freerdp2/freerdp/server/rdpsnd.h
-include/freerdp2/freerdp/server/remdesk.h
-include/freerdp2/freerdp/server/server-common.h
-include/freerdp2/freerdp/server/shadow.h
-include/freerdp2/freerdp/server/telemetry.h
-include/freerdp2/freerdp/session.h
-include/freerdp2/freerdp/settings.h
-include/freerdp2/freerdp/svc.h
-include/freerdp2/freerdp/types.h
-include/freerdp2/freerdp/update.h
-include/freerdp2/freerdp/utils/
-include/freerdp2/freerdp/utils/cliprdr_utils.h
-include/freerdp2/freerdp/utils/passphrase.h
-include/freerdp2/freerdp/utils/pcap.h
-include/freerdp2/freerdp/utils/profiler.h
-include/freerdp2/freerdp/utils/ringbuffer.h
-include/freerdp2/freerdp/utils/signal.h
-include/freerdp2/freerdp/utils/stopwatch.h
-include/freerdp2/freerdp/utils/string.h
-include/freerdp2/freerdp/version.h
-include/freerdp2/freerdp/window.h
-include/winpr2/
-include/winpr2/winpr/
-include/winpr2/winpr/asn1.h
-include/winpr2/winpr/assert.h
-include/winpr2/winpr/bcrypt.h
-include/winpr2/winpr/bitstream.h
-include/winpr2/winpr/clipboard.h
-include/winpr2/winpr/cmdline.h
-include/winpr2/winpr/collections.h
-include/winpr2/winpr/comm.h
-include/winpr2/winpr/credentials.h
-include/winpr2/winpr/credui.h
-include/winpr2/winpr/crt.h
-include/winpr2/winpr/crypto.h
-include/winpr2/winpr/custom-crypto.h
-include/winpr2/winpr/debug.h
-include/winpr2/winpr/dsparse.h
-include/winpr2/winpr/endian.h
-include/winpr2/winpr/environment.h
-include/winpr2/winpr/error.h
-include/winpr2/winpr/file.h
-include/winpr2/winpr/handle.h
-include/winpr2/winpr/heap.h
-include/winpr2/winpr/image.h
-include/winpr2/winpr/ini.h
-include/winpr2/winpr/input.h
-include/winpr2/winpr/interlocked.h
-include/winpr2/winpr/intrin.h
-include/winpr2/winpr/io.h
-include/winpr2/winpr/library.h
-include/winpr2/winpr/locale.h
-include/winpr2/winpr/memory.h
-include/winpr2/winpr/midl.h
-include/winpr2/winpr/ndr.h
-include/winpr2/winpr/nt.h
-include/winpr2/winpr/ntlm.h
-include/winpr2/winpr/pack.h
-include/winpr2/winpr/path.h
-include/winpr2/winpr/pipe.h
-include/winpr2/winpr/platform.h
-include/winpr2/winpr/pool.h
-include/winpr2/winpr/print.h
-include/winpr2/winpr/registry.h
-include/winpr2/winpr/rpc.h
-include/winpr2/winpr/sam.h
-include/winpr2/winpr/schannel.h
-include/winpr2/winpr/security.h
-include/winpr2/winpr/shell.h
-include/winpr2/winpr/smartcard.h
-include/winpr2/winpr/spec.h
-include/winpr2/winpr/ssl.h
-include/winpr2/winpr/sspi.h
-include/winpr2/winpr/sspicli.h
-include/winpr2/winpr/stream.h
-include/winpr2/winpr/string.h
-include/winpr2/winpr/strlst.h
-include/winpr2/winpr/synch.h
-include/winpr2/winpr/sysinfo.h
-include/winpr2/winpr/tchar.h
-include/winpr2/winpr/thread.h
-include/winpr2/winpr/timezone.h
-include/winpr2/winpr/tools/
-include/winpr2/winpr/tools/makecert.h
-include/winpr2/winpr/user.h
-include/winpr2/winpr/version.h
-include/winpr2/winpr/wincrypt.h
-include/winpr2/winpr/windows.h
-include/winpr2/winpr/winhttp.h
-include/winpr2/winpr/winpr.h
-include/winpr2/winpr/winsock.h
-include/winpr2/winpr/wlog.h
-include/winpr2/winpr/wnd.h
-include/winpr2/winpr/wtsapi.h
-include/winpr2/winpr/wtypes.h
-lib/cmake/FreeRDP-Client2/
-lib/cmake/FreeRDP-Client2/FreeRDP-ClientConfig.cmake
-lib/cmake/FreeRDP-Client2/FreeRDP-ClientConfigVersion.cmake
-lib/cmake/FreeRDP-Client2/FreeRDP-ClientTargets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/FreeRDP-Client2/FreeRDP-ClientTargets.cmake
-lib/cmake/FreeRDP2/
-lib/cmake/FreeRDP2/FreeRDPConfig.cmake
-lib/cmake/FreeRDP2/FreeRDPConfigVersion.cmake
-lib/cmake/FreeRDP2/FreeRDPTargets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/FreeRDP2/FreeRDPTargets.cmake
-lib/cmake/WinPR2/
-lib/cmake/WinPR2/WinPRConfig.cmake
-lib/cmake/WinPR2/WinPRConfigVersion.cmake
-lib/cmake/WinPR2/WinPRTargets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/WinPR2/WinPRTargets.cmake
-@lib lib/libfreerdp-client2.so.${LIBfreerdp-client2_VERSION}
-@lib lib/libfreerdp2.so.${LIBfreerdp2_VERSION}
-@lib lib/libwinpr-tools2.so.${LIBwinpr-tools2_VERSION}
-@lib lib/libwinpr2.so.${LIBwinpr2_VERSION}
-lib/pkgconfig/freerdp-client2.pc
-lib/pkgconfig/freerdp2.pc
-lib/pkgconfig/winpr-tools2.pc
-lib/pkgconfig/winpr2.pc
+include/freerdp3/
+include/freerdp3/freerdp/
+include/freerdp3/freerdp/addin.h
+include/freerdp3/freerdp/altsec.h
+include/freerdp3/freerdp/api.h
+include/freerdp3/freerdp/assistance.h
+include/freerdp3/freerdp/autodetect.h
+include/freerdp3/freerdp/build-config.h
+include/freerdp3/freerdp/buildflags.h
+include/freerdp3/freerdp/cache/
+include/freerdp3/freerdp/cache/persistent.h
+include/freerdp3/freerdp/channels/
+include/freerdp3/freerdp/channels/ainput.h
+include/freerdp3/freerdp/channels/audin.h
+include/freerdp3/freerdp/channels/channels.h
+include/freerdp3/freerdp/channels/cliprdr.h
+include/freerdp3/freerdp/channels/disp.h
+include/freerdp3/freerdp/channels/drdynvc.h
+include/freerdp3/freerdp/channels/echo.h
+include/freerdp3/freerdp/channels/encomsp.h
+include/freerdp3/freerdp/channels/geometry.h
+include/freerdp3/freerdp/channels/gfxredir.h
+include/freerdp3/freerdp/channels/location.h
+include/freerdp3/freerdp/channels/log.h
+include/freerdp3/freerdp/channels/rail.h
+include/freerdp3/freerdp/channels/rdp2tcp.h
+include/freerdp3/freerdp/channels/rdpdr.h
+include/freerdp3/freerdp/channels/rdpear.h
+include/freerdp3/freerdp/channels/rdpecam.h
+include/freerdp3/freerdp/channels/rdpei.h
+include/freerdp3/freerdp/channels/rdpemsc.h
+include/freerdp3/freerdp/channels/rdpewa.h
+include/freerdp3/freerdp/channels/rdpgfx.h
+include/freerdp3/freerdp/channels/rdpsnd.h
+include/freerdp3/freerdp/channels/remdesk.h
+include/freerdp3/freerdp/channels/scard.h
+include/freerdp3/freerdp/channels/telemetry.h
+include/freerdp3/freerdp/channels/tsmf.h
+include/freerdp3/freerdp/channels/urbdrc.h
+include/freerdp3/freerdp/channels/video.h
+include/freerdp3/freerdp/channels/wtsvc.h
+include/freerdp3/freerdp/client/
+include/freerdp3/freerdp/client.h
+include/freerdp3/freerdp/client/ainput.h
+include/freerdp3/freerdp/client/audin.h
+include/freerdp3/freerdp/client/channels.h
+include/freerdp3/freerdp/client/client_cliprdr_file.h
+include/freerdp3/freerdp/client/cliprdr.h
+include/freerdp3/freerdp/client/cmdline.h
+include/freerdp3/freerdp/client/disp.h
+include/freerdp3/freerdp/client/drdynvc.h
+include/freerdp3/freerdp/client/encomsp.h
+include/freerdp3/freerdp/client/file.h
+include/freerdp3/freerdp/client/geometry.h
+include/freerdp3/freerdp/client/location.h
+include/freerdp3/freerdp/client/printer.h
+include/freerdp3/freerdp/client/rail.h
+include/freerdp3/freerdp/client/rdpdr.h
+include/freerdp3/freerdp/client/rdpei.h
+include/freerdp3/freerdp/client/rdpgfx.h
+include/freerdp3/freerdp/client/rdpsnd.h
+include/freerdp3/freerdp/client/remdesk.h
+include/freerdp3/freerdp/client/sshagent.h
+include/freerdp3/freerdp/client/tsmf.h
+include/freerdp3/freerdp/client/utils/
+include/freerdp3/freerdp/client/utils/smartcard_cli.h
+include/freerdp3/freerdp/client/video.h
+include/freerdp3/freerdp/codec/
+include/freerdp3/freerdp/codec/audio.h
+include/freerdp3/freerdp/codec/av1.h
+include/freerdp3/freerdp/codec/bitmap.h
+include/freerdp3/freerdp/codec/bulk.h
+include/freerdp3/freerdp/codec/clear.h
+include/freerdp3/freerdp/codec/color.h
+include/freerdp3/freerdp/codec/dsp.h
+include/freerdp3/freerdp/codec/h264.h
+include/freerdp3/freerdp/codec/interleaved.h
+include/freerdp3/freerdp/codec/jpeg.h
+include/freerdp3/freerdp/codec/nsc.h
+include/freerdp3/freerdp/codec/planar.h
+include/freerdp3/freerdp/codec/progressive.h
+include/freerdp3/freerdp/codec/region.h
+include/freerdp3/freerdp/codec/rfx.h
+include/freerdp3/freerdp/codec/video.h
+include/freerdp3/freerdp/codec/yuv.h
+include/freerdp3/freerdp/codec/zgfx.h
+include/freerdp3/freerdp/codecs.h
+include/freerdp3/freerdp/config.h
+include/freerdp3/freerdp/constants.h
+include/freerdp3/freerdp/crypto/
+include/freerdp3/freerdp/crypto/ber.h
+include/freerdp3/freerdp/crypto/certificate.h
+include/freerdp3/freerdp/crypto/certificate_data.h
+include/freerdp3/freerdp/crypto/certificate_store.h
+include/freerdp3/freerdp/crypto/crypto.h
+include/freerdp3/freerdp/crypto/der.h
+include/freerdp3/freerdp/crypto/er.h
+include/freerdp3/freerdp/crypto/per.h
+include/freerdp3/freerdp/crypto/privatekey.h
+include/freerdp3/freerdp/display.h
+include/freerdp3/freerdp/dvc.h
+include/freerdp3/freerdp/emulate/
+include/freerdp3/freerdp/emulate/scard/
+include/freerdp3/freerdp/emulate/scard/smartcard_emulate.h
+include/freerdp3/freerdp/error.h
+include/freerdp3/freerdp/event.h
+include/freerdp3/freerdp/extension.h
+include/freerdp3/freerdp/freerdp.h
+include/freerdp3/freerdp/gdi/
+include/freerdp3/freerdp/gdi/bitmap.h
+include/freerdp3/freerdp/gdi/dc.h
+include/freerdp3/freerdp/gdi/gdi.h
+include/freerdp3/freerdp/gdi/gfx.h
+include/freerdp3/freerdp/gdi/pen.h
+include/freerdp3/freerdp/gdi/region.h
+include/freerdp3/freerdp/gdi/shape.h
+include/freerdp3/freerdp/gdi/video.h
+include/freerdp3/freerdp/graphics.h
+include/freerdp3/freerdp/heartbeat.h
+include/freerdp3/freerdp/input.h
+include/freerdp3/freerdp/license.h
+include/freerdp3/freerdp/listener.h
+include/freerdp3/freerdp/locale/
+include/freerdp3/freerdp/locale/keyboard.h
+include/freerdp3/freerdp/locale/locale.h
+include/freerdp3/freerdp/log.h
+include/freerdp3/freerdp/message.h
+include/freerdp3/freerdp/metrics.h
+include/freerdp3/freerdp/peer.h
+include/freerdp3/freerdp/pointer.h
+include/freerdp3/freerdp/primary.h
+include/freerdp3/freerdp/primitives.h
+include/freerdp3/freerdp/rail.h
+include/freerdp3/freerdp/redirection.h
+include/freerdp3/freerdp/scancode.h
+include/freerdp3/freerdp/secondary.h
+include/freerdp3/freerdp/server/
+include/freerdp3/freerdp/server/ainput.h
+include/freerdp3/freerdp/server/audin.h
+include/freerdp3/freerdp/server/channels.h
+include/freerdp3/freerdp/server/cliprdr.h
+include/freerdp3/freerdp/server/disp.h
+include/freerdp3/freerdp/server/drdynvc.h
+include/freerdp3/freerdp/server/echo.h
+include/freerdp3/freerdp/server/encomsp.h
+include/freerdp3/freerdp/server/gfxredir.h
+include/freerdp3/freerdp/server/location.h
+include/freerdp3/freerdp/server/proxy/
+include/freerdp3/freerdp/server/proxy/proxy_config.h
+include/freerdp3/freerdp/server/proxy/proxy_context.h
+include/freerdp3/freerdp/server/proxy/proxy_log.h
+include/freerdp3/freerdp/server/proxy/proxy_modules_api.h
+include/freerdp3/freerdp/server/proxy/proxy_server.h
+include/freerdp3/freerdp/server/proxy/proxy_types.h
+include/freerdp3/freerdp/server/rail.h
+include/freerdp3/freerdp/server/rdpdr.h
+include/freerdp3/freerdp/server/rdpecam-enumerator.h
+include/freerdp3/freerdp/server/rdpecam.h
+include/freerdp3/freerdp/server/rdpei.h
+include/freerdp3/freerdp/server/rdpemsc.h
+include/freerdp3/freerdp/server/rdpgfx.h
+include/freerdp3/freerdp/server/rdpsnd.h
+include/freerdp3/freerdp/server/remdesk.h
+include/freerdp3/freerdp/server/server-common.h
+include/freerdp3/freerdp/server/shadow.h
+include/freerdp3/freerdp/server/telemetry.h
+include/freerdp3/freerdp/session.h
+include/freerdp3/freerdp/settings.h
+include/freerdp3/freerdp/settings_keys.h
+include/freerdp3/freerdp/settings_types.h
+include/freerdp3/freerdp/settings_types_private.h
+include/freerdp3/freerdp/streamdump.h
+include/freerdp3/freerdp/svc.h
+include/freerdp3/freerdp/timer.h
+include/freerdp3/freerdp/transport_io.h
+include/freerdp3/freerdp/types.h
+include/freerdp3/freerdp/update.h
+include/freerdp3/freerdp/utils/
+include/freerdp3/freerdp/utils/aad.h
+include/freerdp3/freerdp/utils/channel_pdu_tracker.h
+include/freerdp3/freerdp/utils/cliprdr_utils.h
+include/freerdp3/freerdp/utils/drdynvc.h
+include/freerdp3/freerdp/utils/encoded_types.h
+include/freerdp3/freerdp/utils/gfx.h
+include/freerdp3/freerdp/utils/helpers.h
+include/freerdp3/freerdp/utils/http.h
+include/freerdp3/freerdp/utils/passphrase.h
+include/freerdp3/freerdp/utils/pcap.h
+include/freerdp3/freerdp/utils/pod_arrays.h
+include/freerdp3/freerdp/utils/profiler.h
+include/freerdp3/freerdp/utils/proxy_utils.h
+include/freerdp3/freerdp/utils/rdpdr_utils.h
+include/freerdp3/freerdp/utils/ringbuffer.h
+include/freerdp3/freerdp/utils/signal.h
+include/freerdp3/freerdp/utils/smartcard_call.h
+include/freerdp3/freerdp/utils/smartcard_operations.h
+include/freerdp3/freerdp/utils/smartcard_pack.h
+include/freerdp3/freerdp/utils/smartcardlogon.h
+include/freerdp3/freerdp/utils/stopwatch.h
+include/freerdp3/freerdp/utils/string.h
+include/freerdp3/freerdp/utils/warnings.h
+include/freerdp3/freerdp/version.h
+include/freerdp3/freerdp/window.h
+include/winpr3/
+include/winpr3/winpr/
+include/winpr3/winpr/asn1.h
+include/winpr3/winpr/assert-api.h
+include/winpr3/winpr/assert.h
+include/winpr3/winpr/atexit.h
+include/winpr3/winpr/bcrypt.h
+include/winpr3/winpr/bitstream.h
+include/winpr3/winpr/build-config.h
+include/winpr3/winpr/buildflags.h
+include/winpr3/winpr/cast.h
+include/winpr3/winpr/clipboard.h
+include/winpr3/winpr/cmdline.h
+include/winpr3/winpr/collections.h
+include/winpr3/winpr/comm.h
+include/winpr3/winpr/config.h
+include/winpr3/winpr/cred.h
+include/winpr3/winpr/crt.h
+include/winpr3/winpr/crypto.h
+include/winpr3/winpr/custom-crypto.h
+include/winpr3/winpr/debug.h
+include/winpr3/winpr/dsparse.h
+include/winpr3/winpr/endian.h
+include/winpr3/winpr/environment.h
+include/winpr3/winpr/error.h
+include/winpr3/winpr/file.h
+include/winpr3/winpr/handle.h
+include/winpr3/winpr/image.h
+include/winpr3/winpr/ini.h
+include/winpr3/winpr/input.h
+include/winpr3/winpr/interlocked.h
+include/winpr3/winpr/intrin.h
+include/winpr3/winpr/io.h
+include/winpr3/winpr/json.h
+include/winpr3/winpr/library.h
+include/winpr3/winpr/memory.h
+include/winpr3/winpr/ncrypt.h
+include/winpr3/winpr/nt.h
+include/winpr3/winpr/ntlm.h
+include/winpr3/winpr/pack.h
+include/winpr3/winpr/path.h
+include/winpr3/winpr/pipe.h
+include/winpr3/winpr/platform.h
+include/winpr3/winpr/pool.h
+include/winpr3/winpr/print.h
+include/winpr3/winpr/registry.h
+include/winpr3/winpr/rpc.h
+include/winpr3/winpr/sam.h
+include/winpr3/winpr/schannel.h
+include/winpr3/winpr/secapi.h
+include/winpr3/winpr/security.h
+include/winpr3/winpr/shell.h
+include/winpr3/winpr/smartcard.h
+include/winpr3/winpr/spec.h
+include/winpr3/winpr/ssl.h
+include/winpr3/winpr/sspi.h
+include/winpr3/winpr/sspicli.h
+include/winpr3/winpr/stream.h
+include/winpr3/winpr/string.h
+include/winpr3/winpr/strlst.h
+include/winpr3/winpr/synch.h
+include/winpr3/winpr/sysinfo.h
+include/winpr3/winpr/tchar.h
+include/winpr3/winpr/thread.h
+include/winpr3/winpr/timezone.h
+include/winpr3/winpr/tools/
+include/winpr3/winpr/tools/makecert.h
+include/winpr3/winpr/user.h
+include/winpr3/winpr/version.h
+include/winpr3/winpr/wincrypt.h
+include/winpr3/winpr/windows.h
+include/winpr3/winpr/winpr.h
+include/winpr3/winpr/winsock.h
+include/winpr3/winpr/wlog.h
+include/winpr3/winpr/wtsapi.h
+include/winpr3/winpr/wtypes.h
+lib/cmake/
+lib/cmake/FreeRDP-Client3/
+lib/cmake/FreeRDP-Client3/FreeRDP-ClientConfig.cmake
+lib/cmake/FreeRDP-Client3/FreeRDP-ClientConfigVersion.cmake
+lib/cmake/FreeRDP-Client3/FreeRDP-ClientTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/FreeRDP-Client3/FreeRDP-ClientTargets.cmake
+lib/cmake/FreeRDP3/
+lib/cmake/FreeRDP3/FreeRDPConfig.cmake
+lib/cmake/FreeRDP3/FreeRDPConfigVersion.cmake
+lib/cmake/FreeRDP3/FreeRDPTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/FreeRDP3/FreeRDPTargets.cmake
+lib/cmake/WinPR-tools3/
+lib/cmake/WinPR-tools3/WinPR-toolsConfig.cmake
+lib/cmake/WinPR-tools3/WinPR-toolsConfigVersion.cmake
+lib/cmake/WinPR-tools3/WinPR-toolsTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/WinPR-tools3/WinPR-toolsTargets.cmake
+lib/cmake/WinPR3/
+lib/cmake/WinPR3/WinPRConfig.cmake
+lib/cmake/WinPR3/WinPRConfigVersion.cmake
+lib/cmake/WinPR3/WinPRTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/WinPR3/WinPRTargets.cmake
+@lib lib/libfreerdp-client3.so.${LIBfreerdp-client3_VERSION}
+@lib lib/libfreerdp3.so.${LIBfreerdp3_VERSION}
+@lib lib/libwinpr-tools3.so.${LIBwinpr-tools3_VERSION}
+@lib lib/libwinpr3.so.${LIBwinpr3_VERSION}
+lib/pkgconfig/freerdp-client3.pc
+lib/pkgconfig/freerdp3.pc
+lib/pkgconfig/winpr-tools3.pc
+lib/pkgconfig/winpr3.pc
 @man man/man1/winpr-hash.1
 @man man/man1/winpr-makecert.1
 @man man/man1/xfreerdp.1
Index: security/hydra/Makefile
===================================================================
RCS file: /cvs/ports/security/hydra/Makefile,v
diff -u -p -r1.67 Makefile
--- security/hydra/Makefile	11 Aug 2026 22:41:26 -0000	1.67
+++ security/hydra/Makefile	11 Aug 2026 23:18:17 -0000
@@ -2,6 +2,7 @@ COMMENT-main=	parallelized network logon
 COMMENT-gui=	GTK frontend for hydra
 
 VERSION=	9.7
+REVISION-main=	0
 PKGNAME-main=	hydra-${VERSION}
 PKGNAME-gui=	hydra-gui-${VERSION}
 
@@ -17,9 +18,9 @@ PERMIT_PACKAGE=	Yes
 WANTLIB =	c
 
 WANTLIB-main =	${WANTLIB}
-WANTLIB-main += apr-1 aprutil-1 crypto curses freerdp2 gcrypt idn m
+WANTLIB-main += apr-1 aprutil-1 crypto curses freerdp3 gcrypt idn m
 WANTLIB-main += mariadb memcached pcre2-8 pq ssh ssl svn_client-1 svn_subr-1
-WANTLIB-main += sybdb winpr2 z
+WANTLIB-main += sybdb winpr3 z
 
 WANTLIB-gui =	${WANTLIB}
 WANTLIB-gui += atk-1.0 cairo cairo-gobject gdk_pixbuf-2.0 gdk-3 gio-2.0
Index: x11/gnome/connections/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/connections/Makefile,v
diff -u -p -r1.26 Makefile
--- x11/gnome/connections/Makefile	15 May 2026 07:35:01 -0000	1.26
+++ x11/gnome/connections/Makefile	11 Aug 2026 23:18:17 -0000
@@ -1,6 +1,7 @@
 COMMENT=		remote desktop client for GNOME
 
 GNOME_PROJECT=		gnome-connections
+REVISION=		0
 GNOME_VERSION=		50.0
 
 CATEGORIES=		net
@@ -10,10 +11,10 @@ HOMEPAGE=		https://apps.gnome.org/Connec
 # GPLv3
 PERMIT_PACKAGE=		Yes
 
-WANTLIB += c cairo freerdp-client2 freerdp2 gdk-3 gdk_pixbuf-2.0
+WANTLIB += c cairo freerdp-client3 freerdp3 gdk-3 gdk_pixbuf-2.0
 WANTLIB += gio-2.0 glib-2.0 gobject-2.0 gtk-3 gtk-vnc-2.0 gvnc-1.0
 WANTLIB += gvncpulse-1.0 handy-1 intl m secret-1 spice-client-glib-2.0
-WANTLIB += spice-client-gtk-3.0 winpr2 xml2
+WANTLIB += spice-client-gtk-3.0 winpr3 xml2
 
 MODULES=		devel/dconf \
 			devel/meson \
Index: x11/remmina/Makefile
===================================================================
RCS file: /cvs/ports/x11/remmina/Makefile,v
diff -u -p -r1.66 Makefile
--- x11/remmina/Makefile	28 Jan 2025 09:27:40 -0000	1.66
+++ x11/remmina/Makefile	11 Aug 2026 23:18:17 -0000
@@ -1,25 +1,27 @@
-COMMENT=		GTK+ remote desktop client
+COMMENT=	GTK+ remote desktop client
 
-# post-release "Fix build for openssl-1.1"
-C=			93d703ec8524dec774f36d2285a6ec87c6fabb8d
-DIST_TUPLE=		gitlab	Remmina	Remmina	${C}	.
-DISTNAME=		Remmina-${C}
-PKGNAME=		remmina-1.4.34
-CATEGORIES=		x11 net
-REVISION=		1
+V=		1.4.43
+DISTNAME=	Remmina-v$V
+SITES=		https://gitlab.com/Remmina/Remmina/-/archive/v$V/
+# XXX using SITES because DIST_TUPLE uses wrong URLs for gitlab tags;
+# https://gitlab.com/Remmina/Remmina/-/archive/v1.4.43/v1.4.43.tar.gz should be
+# https://gitlab.com/Remmina/Remmina/-/archive/v1.4.43/Remmina-v1.4.43.tar.gz
 
-HOMEPAGE=		https://www.remmina.org/
+PKGNAME=	remmina-$V
+CATEGORIES=	x11 net
+
+HOMEPAGE=	https://www.remmina.org/
 
 # GPLv2+
-PERMIT_PACKAGE=		Yes
+PERMIT_PACKAGE=	Yes
 
 WANTLIB += ${MODPY_WANTLIB}
 WANTLIB += avahi-client avahi-common avahi-ui-gtk3 c cairo crypto
-WANTLIB += cups curl freerdp-client2 gcrypt gdk-3 gdk_pixbuf-2.0
+WANTLIB += cups curl freerdp-client3 freerdp3 gcrypt gdk-3 gdk_pixbuf-2.0
 WANTLIB += gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 gtk-3 intl
-WANTLIB += json-glib-1.0 pango-1.0 pthread secret-1 sndio sodium
-WANTLIB += spice-client-glib-2.0 spice-client-gtk-3.0 ssh ssl
-WANTLIB += vncclient vncserver vte-2.91 winpr2
+WANTLIB += json-glib-1.0 m pango-1.0 pthread secret-1 sodium spice-client-glib-2.0
+WANTLIB += spice-client-gtk-3.0 ssh ssl vncclient vncserver vte-2.91
+WANTLIB += wayland-client winpr3
 
 MODULES=		devel/cmake \
 			lang/python
@@ -53,7 +55,8 @@ CONFIGURE_ARGS=		-DCMAKE_DISABLE_FIND_PA
 # Appindicator is only used by Ubuntu's Unity.
 CONFIGURE_ARGS +=	-DHAVE_LIBAPPINDICATOR=OFF \
 			-DWITH_ICON_CACHE=OFF \
-			-DWITH_UPDATE_DESKTOP_DB=OFF
+			-DWITH_UPDATE_DESKTOP_DB=OFF \
+			-DWITH_FREERDP3=ON
 
 CFLAGS +=		-I${X11BASE}/include -I${LOCALBASE}/include
 
@@ -68,10 +71,5 @@ CONFIGURE_ARGS +=	-DWITH_KF5WALLET=OFF \
 			-DWITH_WWW=OFF
 
 DEBUG_PACKAGES=		${BUILD_PACKAGES}
-
-post-install:
-	# pending "Use universal /bin/sh shebang in remmina-rile-wrapper(1)"
-	# https://gitlab.com/Remmina/Remmina/-/merge_requests/2572
-	sed -i '1s,/usr/bin/env bash,/bin/sh,' ${PREFIX}/bin/remmina-file-wrapper
 
 .include <bsd.port.mk>
Index: x11/remmina/distinfo
===================================================================
RCS file: /cvs/ports/x11/remmina/distinfo,v
diff -u -p -r1.14 distinfo
--- x11/remmina/distinfo	23 Feb 2024 18:14:33 -0000	1.14
+++ x11/remmina/distinfo	11 Aug 2026 23:18:17 -0000
@@ -1,2 +1,2 @@
-SHA256 (Remmina-Remmina-93d703ec8524dec774f36d2285a6ec87c6fabb8d.tar.gz) = sQPaF6QTHIshMfabsWcfDerj1BT3N8qt6KV8ieZu/jw=
-SIZE (Remmina-Remmina-93d703ec8524dec774f36d2285a6ec87c6fabb8d.tar.gz) = 3774333
+SHA256 (Remmina-v1.4.43.tar.gz) = FlM/ioBtr/UkZJu0WuUeUfYWhdqUhGAGAYs8J56+cDU=
+SIZE (Remmina-v1.4.43.tar.gz) = 3952178
Index: x11/remmina/patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/x11/remmina/patches/patch-CMakeLists_txt,v
diff -u -p -r1.13 patch-CMakeLists_txt
--- x11/remmina/patches/patch-CMakeLists_txt	3 Feb 2024 12:39:41 -0000	1.13
+++ x11/remmina/patches/patch-CMakeLists_txt	11 Aug 2026 23:18:17 -0000
@@ -4,7 +4,7 @@
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -274,7 +274,7 @@ set(CMAKE_SHARED_LINKER_FLAGS
+@@ -276,7 +276,7 @@ set(CMAKE_SHARED_LINKER_FLAGS
  check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)
  check_include_files(arpa/inet.h HAVE_ARPA_INET_H)
  check_include_files(netinet/in.h HAVE_NETINET_IN_H)
@@ -13,7 +13,7 @@ Index: CMakeLists.txt
  check_include_files(termios.h HAVE_TERMIOS_H)
  check_include_files(netdb.h HAVE_NETDB_H)
  check_include_files(fcntl.h HAVE_FCNTL_H)
-@@ -285,9 +285,9 @@ check_include_files(errno.h HAVE_ERRNO_H)
+@@ -287,9 +287,9 @@ check_include_files(errno.h HAVE_ERRNO_H)
  include_directories(.)
  include_directories(src/include)
  
@@ -23,53 +23,14 @@ Index: CMakeLists.txt
 -if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
 +if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|OpenBSD|NetBSD")
    set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic")
-   include_directories(/usr/local/include /usr/include)
+   include_directories(SYSTEM /usr/local/include /usr/include)
    link_directories(/usr/local/lib /usr/lib)
-@@ -414,36 +414,17 @@ if(NOT GTK3_FOUND)
+@@ -416,7 +416,7 @@ if(NOT GTK3_FOUND)
  endif()
- include_directories(${GTK3_INCLUDE_DIRS})
+ include_directories(SYSTEM ${GTK3_INCLUDE_DIRS})
  
--pkg_check_modules(wayland-client wayland-client)
--if(wayland-client_FOUND)
--  set(GTK_LIBRARIES
--      ${GTK3_LIBRARY}
--      ${GDK3_LIBRARY}
--      ${GDKPixbuf_LIBRARY}
--      ${Pango_LIBRARY}
--      ${Cairo_LIBRARY}
--      ${GObject_LIBRARY}
--      ${GLib_LIBRARY}
--      ${GIO_LIBRARY}
--      ${Gmodule_LIBRARIES}
--      ${GMODULE_LIBRARY}
--      ${wayland-client_LIBRARIES})
--  include_directories(${wayland-client_INCLUDE_DIRS})
--  message(STATUS "Wayland library found.")
--else()
--  set(GTK_LIBRARIES
--      ${GTK3_LIBRARY}
--      ${GDK3_LIBRARY}
--      ${GDKPixbuf_LIBRARY}
--      ${Pango_LIBRARY}
--      ${Cairo_LIBRARY}
--      ${GObject_LIBRARY}
--      ${GLib_LIBRARY}
--      ${GIO_LIBRARY}
--      ${Gmodule_LIBRARIES}
--      ${GMODULE_LIBRARY})
--  message(STATUS "Wayland library not found.")
--endif()
-+set(GTK_LIBRARIES
-+    ${GTK3_LIBRARY}
-+    ${GDK3_LIBRARY}
-+    ${GDKPixbuf_LIBRARY}
-+    ${Pango_LIBRARY}
-+    ${Cairo_LIBRARY}
-+    ${GObject_LIBRARY}
-+    ${GLib_LIBRARY}
-+    ${GIO_LIBRARY}
-+    ${Gmodule_LIBRARIES}
-+    ${GMODULE_LIBRARY})
- 
- set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
- find_package(Threads REQUIRED)
+-if(NOT APPLE)
++if(NOT APPLE AND NOT OPENBSD)
+   pkg_check_modules(wayland-client wayland-client)
+ endif()
+ if(wayland-client_FOUND)
Index: x11/remmina/patches/patch-plugins_vnc_vnc_plugin_c
===================================================================
RCS file: /cvs/ports/x11/remmina/patches/patch-plugins_vnc_vnc_plugin_c,v
diff -u -p -r1.7 patch-plugins_vnc_vnc_plugin_c
--- x11/remmina/patches/patch-plugins_vnc_vnc_plugin_c	11 Jun 2023 20:59:09 -0000	1.7
+++ x11/remmina/patches/patch-plugins_vnc_vnc_plugin_c	11 Aug 2026 23:18:17 -0000
@@ -3,7 +3,7 @@ Fix double mutex lock and double free
 Index: plugins/vnc/vnc_plugin.c
 --- plugins/vnc/vnc_plugin.c.orig
 +++ plugins/vnc/vnc_plugin.c
-@@ -114,8 +114,6 @@ static void onMainThread_schedule_callback_and_wait(st
+@@ -118,8 +118,6 @@ static void onMainThread_schedule_callback_and_wait(st
  	pthread_mutex_lock(&d->mu);
  	gdk_threads_add_idle((GSourceFunc)onMainThread_cb, (gpointer)d);
  
@@ -12,7 +12,7 @@ Index: plugins/vnc/vnc_plugin.c
  	pthread_cleanup_pop(0);
  	pthread_mutex_unlock(&d->mu);
  	pthread_mutex_destroy(&d->mu);
-@@ -240,7 +238,6 @@ static void remmina_plugin_vnc_update_scale(RemminaPro
+@@ -244,7 +242,6 @@ static void remmina_plugin_vnc_update_scale(RemminaPro
  		d->gp = gp;
  		d->scale = scale;
  		onMainThread_schedule_callback_and_wait(d);
Index: x11/remmina/pkg/PLIST
===================================================================
RCS file: /cvs/ports/x11/remmina/pkg/PLIST,v
diff -u -p -r1.19 PLIST
--- x11/remmina/pkg/PLIST	23 Feb 2024 18:14:33 -0000	1.19
+++ x11/remmina/pkg/PLIST	11 Aug 2026 23:18:17 -0000
@@ -63,6 +63,7 @@ share/icons/hicolor/scalable/actions/org
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-pin-down-symbolic.svg
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-pin-up-symbolic.svg
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-preferences-system-symbolic.svg
+share/icons/hicolor/scalable/actions/org.remmina.Remmina-reconnect-symbolic.svg
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-scale-symbolic.svg
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-switch-page-symbolic.svg
 share/icons/hicolor/scalable/actions/org.remmina.Remmina-system-run-symbolic.svg
@@ -74,6 +75,9 @@ share/icons/hicolor/scalable/emblems/org
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-spice-ssh-symbolic.svg
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-spice-symbolic.svg
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-ssh-symbolic.svg
+share/icons/hicolor/scalable/emblems/org.remmina.Remmina-status-green.svg
+share/icons/hicolor/scalable/emblems/org.remmina.Remmina-status-grey.svg
+share/icons/hicolor/scalable/emblems/org.remmina.Remmina-status-red.svg
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-tool-symbolic.svg
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-vnc-ssh-symbolic.svg
 share/icons/hicolor/scalable/emblems/org.remmina.Remmina-vnc-symbolic.svg
@@ -150,6 +154,7 @@ share/locale/sl/LC_MESSAGES/remmina.mo
 share/locale/sq/LC_MESSAGES/remmina.mo
 share/locale/sr/LC_MESSAGES/remmina.mo
 share/locale/sv/LC_MESSAGES/remmina.mo
+share/locale/ta/LC_MESSAGES/remmina.mo
 share/locale/te/LC_MESSAGES/remmina.mo
 share/locale/th/LC_MESSAGES/remmina.mo
 share/locale/tr/LC_MESSAGES/remmina.mo
Index: x11/kde-applications/krdc/Makefile
===================================================================
RCS file: /cvs/ports/x11/kde-applications/krdc/Makefile,v
diff -u -p -r1.19 Makefile
--- x11/kde-applications/krdc/Makefile	2 May 2025 06:11:30 -0000	1.19
+++ x11/kde-applications/krdc/Makefile	11 Aug 2026 23:18:17 -0000
@@ -1,4 +1,4 @@
-BROKEN = Depends on FreeRDP3
+BROKEN =	krdc-26.04.3/rdp/rdpsession.cpp:727:25: error: invalid use of member 'm_thread' in static member function
 
 COMMENT =	VNC and RDP  desktop client
 DISTNAME =	krdc-${VERSION}
@@ -16,9 +16,9 @@ WANTLIB += KF6KCMUtilsQuick KF6KIOCore K
 WANTLIB += KF6Notifications KF6NotifyConfig KF6Service KF6Solid
 WANTLIB += KF6StatusNotifierItem KF6Wallet KF6WidgetsAddons KF6WindowSystem
 WANTLIB += KF6XmlGui PlasmaActivities Qt6Core Qt6DBus Qt6Gui Qt6Network
-WANTLIB += Qt6Qml Qt6WaylandClient Qt6Widgets Qt6Xml X11 c freerdp-client2
-WANTLIB += freerdp2 m sndio ssh vncclient wayland-client wayland-cursor
-WANTLIB += winpr2 xkbcommon
+WANTLIB += Qt6Qml Qt6WaylandClient Qt6Widgets Qt6Xml X11 c freerdp-client3
+WANTLIB += freerdp3 m sndio ssh vncclient wayland-client wayland-cursor
+WANTLIB += winpr3 xkbcommon
 
 MODKDE_DESKTOP_FILE = yes
 MODKDE_TRANSLATIONS = yes
@@ -53,6 +53,7 @@ LIB_DEPENDS =	devel/kf6/kbookmarks \
 		devel/kf6/kcrash \
 		net/libvncserver \
 		security/libssh \
+		security/qtkeychain,qt6 \
 		wayland/wayland \
 		x11/freerdp \
 		x11/kde-plasma/plasma-activities \
Index: x11/kde-applications/krdc/patches/patch-core_sshtunnelthread_cpp
===================================================================
RCS file: x11/kde-applications/krdc/patches/patch-core_sshtunnelthread_cpp
diff -N x11/kde-applications/krdc/patches/patch-core_sshtunnelthread_cpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/kde-applications/krdc/patches/patch-core_sshtunnelthread_cpp	11 Aug 2026 23:18:17 -0000
@@ -0,0 +1,11 @@
+Index: core/sshtunnelthread.cpp
+--- core/sshtunnelthread.cpp.orig
++++ core/sshtunnelthread.cpp
+@@ -11,6 +11,7 @@
+ #include <KLocalizedString>
+ 
+ #include <arpa/inet.h>
++#include <errno.h>
+ #include <fcntl.h>
+ #include <netinet/in.h>
+ #include <sys/socket.h>
Index: x11/kde-applications/krdc/patches/patch-rdp_rdpsession_cpp
===================================================================
RCS file: /cvs/ports/x11/kde-applications/krdc/patches/patch-rdp_rdpsession_cpp,v
diff -u -p -r1.6 patch-rdp_rdpsession_cpp
--- x11/kde-applications/krdc/patches/patch-rdp_rdpsession_cpp	2 May 2025 06:11:30 -0000	1.6
+++ x11/kde-applications/krdc/patches/patch-rdp_rdpsession_cpp	11 Aug 2026 23:18:17 -0000
@@ -1,9 +1,9 @@
 Index: rdp/rdpsession.cpp
 --- rdp/rdpsession.cpp.orig
 +++ rdp/rdpsession.cpp
-@@ -12,6 +12,10 @@
+@@ -11,6 +11,10 @@
+ 
  #include <algorithm>
- #include <memory>
  
 +#ifdef __OpenBSD__
 +#include <pthread_np.h> /* pthread_set_name_np */
@@ -12,7 +12,7 @@ Index: rdp/rdpsession.cpp
  #include <QApplication>
  #include <QKeyEvent>
  #include <QMouseEvent>
-@@ -715,7 +719,12 @@ int RdpSession::clientContextStart(rdpContext *context
+@@ -718,7 +722,12 @@ int RdpSession::clientContextStart(rdpContext *context
      }
  
      session->m_thread = std::thread(std::bind(&RdpSession::run, session));
@@ -25,10 +25,3 @@ Index: rdp/rdpsession.cpp
  
      return 0;
  }
-@@ -1228,4 +1237,4 @@ bool RdpSession::sendResizeEvent(const QSize newSize)
- void RdpSession::setRemoteCursor(const QCursor &cursor)
- {
-     Q_EMIT cursorChanged(cursor);
--}
-\ No newline at end of file
-+}
Index: x11/kde-applications/krdc/patches/patch-vnc_vncclientthread_cpp
===================================================================
RCS file: /cvs/ports/x11/kde-applications/krdc/patches/patch-vnc_vncclientthread_cpp,v
diff -u -p -r1.11 patch-vnc_vncclientthread_cpp
--- x11/kde-applications/krdc/patches/patch-vnc_vncclientthread_cpp	28 Jun 2024 19:04:00 -0000	1.11
+++ x11/kde-applications/krdc/patches/patch-vnc_vncclientthread_cpp	11 Aug 2026 23:18:17 -0000
@@ -3,7 +3,7 @@
 Index: vnc/vncclientthread.cpp
 --- vnc/vncclientthread.cpp.orig
 +++ vnc/vncclientthread.cpp
-@@ -657,23 +657,6 @@ void VncClientThread::clientSetKeepalive()
+@@ -677,23 +677,6 @@ void VncClientThread::clientSetKeepalive()
          return;
      }
  
Index: x11/kde-applications/krdc/patches/patch-vnc_vncsshtunnelthread_cpp
===================================================================
RCS file: x11/kde-applications/krdc/patches/patch-vnc_vncsshtunnelthread_cpp
diff -N x11/kde-applications/krdc/patches/patch-vnc_vncsshtunnelthread_cpp
--- x11/kde-applications/krdc/patches/patch-vnc_vncsshtunnelthread_cpp	28 Jun 2024 19:04:00 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-Missing include
-
-Index: vnc/vncsshtunnelthread.cpp
---- vnc/vncsshtunnelthread.cpp.orig
-+++ vnc/vncsshtunnelthread.cpp
-@@ -11,6 +11,7 @@
- #include <KLocalizedString>
- 
- #include <arpa/inet.h>
-+#include <errno.h>
- #include <fcntl.h>
- #include <netinet/in.h>
- #include <sys/socket.h>