From: Brad Smith Subject: UPDATE: FreeRDP 3.32.0 To: ports@openbsd.org Cc: Stuart Henderson Date: Wed, 23 Sep 2026 22:06:35 -0400 Here is an update to FreeRDP 3.32.0. https://github.com/FreeRDP/FreeRDP/releases/tag/3.32.0 A lot of CVE fixed. From speaking with the author it seems strict alignment archs were never officially supported in the past. He had addded some markers all over the tree where there were alignment issues with the code this cycle. I noticed as git master was no longer building on OpenBSD/aarch64. I said something and he eventually gave in and I believe he has fixed all of the issues. So any and all testing welcome. I took out some of the CMake options as they're already enabled. Index: Makefile =================================================================== RCS file: /cvs/ports/x11/freerdp/Makefile,v retrieving revision 1.84 diff -u -p -u -p -r1.84 Makefile --- Makefile 10 Sep 2026 14:26:10 -0000 1.84 +++ Makefile 23 Sep 2026 21:39:20 -0000 @@ -1,7 +1,6 @@ COMMENT = client for Microsoft RDP (remote desktop protocol) -DISTNAME = freerdp-3.31.1 -REVISION = 0 +DISTNAME = freerdp-3.32.0 CATEGORIES = x11 net @@ -52,18 +51,17 @@ CONFIGURE_ARGS += \ -DUSE_VERSION_FROM_GIT_TAG=OFF \ -DUSE_GIT_FOR_REVISION=OFF \ -DBUILD_TESTING=ON \ + -DWITH_ALSA=OFF \ -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 + -DWITH_PULSE=OFF # experimental, pulls in libpam CONFIGURE_ARGS += -DWITH_SERVER=OFF @@ -77,7 +75,7 @@ CONFIGURE_ARGS += -DWITH_CLIENT_SDL=OFF # wants at least LDEP on wayland/wayland x11/xkbcommon CONFIGURE_ARGS += -DWITH_WAYLAND=OFF -.if ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "i386" +.if ${MACHINE_ARCH} == "i386" CONFIGURE_ARGS += -DWITH_SIMD=OFF .endif Index: distinfo =================================================================== RCS file: /cvs/ports/x11/freerdp/distinfo,v retrieving revision 1.33 diff -u -p -u -p -r1.33 distinfo --- distinfo 3 Sep 2026 12:17:41 -0000 1.33 +++ distinfo 23 Sep 2026 21:39:20 -0000 @@ -1,2 +1,2 @@ -SHA256 (freerdp-3.31.1.tar.gz) = SiYpAmiWy04m+47S1spqpKuJypVSjfuuJVDC9ryGaZE= -SIZE (freerdp-3.31.1.tar.gz) = 11111567 +SHA256 (freerdp-3.32.0.tar.gz) = hVZF6Ib5dJpIXLZjD/6TSqcX17GM9xZpmrH8iGRjMhA= +SIZE (freerdp-3.32.0.tar.gz) = 11264313 Index: patches/patch-channels_rdpdr_client_rdpdr_main_c =================================================================== RCS file: patches/patch-channels_rdpdr_client_rdpdr_main_c diff -N patches/patch-channels_rdpdr_client_rdpdr_main_c --- patches/patch-channels_rdpdr_client_rdpdr_main_c 3 Sep 2026 12:17:41 -0000 1.9 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,23 +0,0 @@ -no hotplug on openbsd - -Index: channels/rdpdr/client/rdpdr_main.c ---- channels/rdpdr/client/rdpdr_main.c.orig -+++ channels/rdpdr/client/rdpdr_main.c -@@ -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__) - - static UINT handle_hotplug(WINPR_ATTR_UNUSED RdpdrClientContext* context, - WINPR_ATTR_UNUSED RdpdrHotplugEventType type) -@@ -1098,7 +1098,7 @@ out: - - #endif - --#if !defined(_WIN32) && !defined(__IOS__) -+#if !defined(_WIN32) && !defined(__IOS__) && !defined(__OpenBSD__) - /** - * Function description - * Index: patches/patch-channels_rdpsnd_client_rdpsnd_main_c =================================================================== RCS file: /cvs/ports/x11/freerdp/patches/patch-channels_rdpsnd_client_rdpsnd_main_c,v retrieving revision 1.3 diff -u -p -u -p -r1.3 patch-channels_rdpsnd_client_rdpsnd_main_c --- patches/patch-channels_rdpsnd_client_rdpsnd_main_c 12 Aug 2026 16:04:45 -0000 1.3 +++ patches/patch-channels_rdpsnd_client_rdpsnd_main_c 23 Sep 2026 21:39:20 -0000 @@ -3,7 +3,7 @@ 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 -@@ -1017,7 +1017,8 @@ static UINT rdpsnd_process_addin_args(rdpsndPlugin* rd +@@ -1040,7 +1040,8 @@ static UINT rdpsnd_process_addin_args(rdpsndPlugin* rd } CommandLineSwitchEnd(arg) } while ((arg = CommandLineFindNextArgumentA(arg)) != nullptr); Index: patches/patch-winpr_CMakeLists_txt =================================================================== RCS file: patches/patch-winpr_CMakeLists_txt diff -N patches/patch-winpr_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-winpr_CMakeLists_txt 23 Sep 2026 21:39:20 -0000 @@ -0,0 +1,16 @@ +- Have Libs.private entry even for a shared library + +Index: winpr/CMakeLists.txt +--- winpr/CMakeLists.txt.orig ++++ winpr/CMakeLists.txt +@@ -402,7 +402,9 @@ endif() + # Do not set Requires.Private if not a static build + if(BUILD_SHARED_LIBS) + set(WINPR_PC_REQUIRES_PRIVATE "") +- set(WINPR_PC_LIBRARY_PRIVATE "") ++ if(NOT OPENBSD) ++ set(WINPR_PC_LIBRARY_PRIVATE "") ++ endif() + endif() + + if(WITH_WINPR_TOOLS) Index: patches/patch-winpr_libwinpr_library_CMakeLists_txt =================================================================== RCS file: patches/patch-winpr_libwinpr_library_CMakeLists_txt diff -N patches/patch-winpr_libwinpr_library_CMakeLists_txt --- patches/patch-winpr_libwinpr_library_CMakeLists_txt 12 Aug 2026 16:04:45 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,11 +0,0 @@ -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: patches/patch-winpr_libwinpr_library_library_c =================================================================== RCS file: patches/patch-winpr_libwinpr_library_library_c diff -N patches/patch-winpr_libwinpr_library_library_c --- patches/patch-winpr_libwinpr_library_library_c 10 Sep 2026 14:26:10 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,38 +0,0 @@ -- [winpr,library] implement GetModuleFileNameA on OpenBSD with getexecpath() - -Index: winpr/libwinpr/library/library.c ---- winpr/libwinpr/library/library.c.orig -+++ winpr/libwinpr/library/library.c -@@ -349,6 +349,32 @@ DWORD GetModuleFileNameA(HMODULE hModule, LPSTR lpFile - return module_from_proc("/proc/curproc/exe", lpFilename, nSize); - #elif defined(__DragonFly__) - return module_from_proc("/proc/curproc/file", lpFilename, nSize); -+#elif defined(__OpenBSD__) -+ char path[PATH_MAX] = WINPR_C_ARRAY_INIT; -+ const int status = getexecpath(path, sizeof(path)); -+ -+ if (status != 0) -+ { -+ SetLastError(ERROR_INTERNAL_ERROR); -+ return 0; -+ } -+ -+ const size_t length = strlen(path); -+ -+ if (length < nSize) -+ { -+ CopyMemory(lpFilename, path, length + 1); -+ return (DWORD)length; -+ } -+ -+ if (nSize > 0) -+ { -+ CopyMemory(lpFilename, path, nSize - 1); -+ lpFilename[nSize - 1] = '\0'; -+ } -+ -+ SetLastError(ERROR_INSUFFICIENT_BUFFER); -+ return nSize; - #elif defined(__MACOSX__) - char path[4096] = WINPR_C_ARRAY_INIT; - char buffer[4096] = WINPR_C_ARRAY_INIT; Index: patches/patch-winpr_winpr_pc_in =================================================================== RCS file: patches/patch-winpr_winpr_pc_in diff -N patches/patch-winpr_winpr_pc_in --- patches/patch-winpr_winpr_pc_in 12 Aug 2026 16:04:45 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,10 +0,0 @@ -Index: winpr/winpr.pc.in ---- winpr/winpr.pc.in.orig -+++ winpr/winpr.pc.in -@@ -11,5 +11,5 @@ Version: @WINPR_VERSION@ - Requires: - Requires.private: @WINPR_PC_REQUIRES_PRIVATE@ - Libs: -L${libdir} ${libs} --Libs.private: @WINPR_PC_LIBRARY_PRIVATE@ -+Libs.private: -lm -lpthread - Cflags: -I${includedir} Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/x11/freerdp/pkg/PLIST,v retrieving revision 1.16 diff -u -p -u -p -r1.16 PLIST --- pkg/PLIST 3 Sep 2026 12:17:41 -0000 1.16 +++ pkg/PLIST 23 Sep 2026 21:39:20 -0000 @@ -46,6 +46,7 @@ include/freerdp3/freerdp/channels/video. include/freerdp3/freerdp/channels/wtsvc.h include/freerdp3/freerdp/client/ include/freerdp3/freerdp/client.h +include/freerdp3/freerdp/client/aad_helper.h include/freerdp3/freerdp/client/ainput.h include/freerdp3/freerdp/client/audin.h include/freerdp3/freerdp/client/channels.h @@ -317,4 +318,5 @@ lib/pkgconfig/winpr3.pc @man man/man1/winpr-hash.1 @man man/man1/winpr-makecert.1 @man man/man1/xfreerdp.1 +@man man/man7/freerdp.7 @man man/man7/wlog.7