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

Reply via email to