# 2024-10-21 Version 3.9.0 We're proud to present the newest release of FreeRDP. This one brings some major code cleanup (we've addressed lots of clang-tidy warnings) as well as some highly anticipated new features. We also did update the API documentation quite a bit (still incomplete though, help always welcome ;)) So, what is new: * Support for RDPEAR (remote credential guard) /remoteGuard option for non windows clients * Global configuration file support, allowing to configure certificate accept/ignore/... default settings for all users * Simplified manpage generation, eliminates docbook and xmlto dependencies speeding up builds * New API for client channels to run tasks on RDP thread * New extended transport layer API * RDPECAM MJPEG support * the first updates of timezone definitions from our automated ci Noteworthy changes: * Fix bugs in SSE4.1/AVX2 image copy (#10720) * Add warnings for invalid monitor settings during connect (#10672) * Fix ALSA microphone support (#10664) * Fix modal windows in RAILS mode (#10629) * Update experimental SDL3 client (SDL3 API should now have been stabilized, various pull requests) * Fix keyboard layouts, the external JSON did miss a few (#10639) For a complete and detailed change log since the last release run: git log 3.9.0...3.8.0 # 2024-08-30 Version 3.8.0 This is a bugfix release. Due to additional exports required by a bugfix the minor version was incremented Noteworthy changes: * Reduce number of warnings on CI build (make dependency includes SYSTEM) (#10509) * Fix possible crashes with P11 certificate parsing (#10462, #10463) * Various clipboard related fixes (#10472, #10476, #10477, #10480, #10484) * Fix a race condition on DesktopResize (xfreerdp) (#10488) * Improve certificate warnings (#10489) * Try all possible resolved IP addresses for a DNS name on connect (#10491) * Fix an issue with GFX SolidFill alpha data (#10498) * Various fixes for SDL clients (#10504, #10492, #10471) * Fix serial and parallel redirection crashes (#10510) * Fix android build issues with NDK 27 (#10529) * Improve performance of some WinPR primitives (#10528) * Fix an issue with autoreconnect (#10523) * Support ssh-askpass like password reading (#10516) * Lots of code cleanups to reduce clang-tidy warnings (#10531, #10525, #10521, #10520, #10519, #10518) For a complete and detailed change log since the last release run: git log 3.8.0...3.7.0 # 2024-08-08 Version 3.7.0 This release has accumulated quite a number of changes. Along bugfixes for 3.6.3 it also contains a number of improvements for distributors: * Support for FDK-AAC for sound and microphone redirection (activate with -DWITH_FDK_AAC=ON build option) This allows enabling the AAC compression that do not ship faad2 and/or faac * Support keyboard layouts as JSON resources (activate with -DWITH_KEYBOARD_LAYOUT_FROM_FILE=ON build option, also requires JSON support) This allows editing keyboard layouts for existing releases should the need arise * Support timezones as JSON resources (activate with -DWITH_TIMEZONE_FROM_FILE=ON -DWITH_TIMEZONE_COMPILED=OFF build options, also requires JSON support) Allows reading the mapping between IANA and windows timezones from a JSON file, allowing easier updates without recompile * Improve shadow server compatibility with windows 11 24H2 RDP client Windows 7 RFX and bitmap updates with multiple rectangles have been deactivated, so adjust shadow to not send such. Noteworthy changes: * Fix ActionScript paramter (#10423) * Support keyboard layouts as JSON resource (#10394) * Support timezones as JSON resource and command line argument (#10428 #10393 #10391) * Deactivate AsyncUpdate (#10402) * Compatibility fixes for shadow with windows 11 24H2 (#10455 #10422 #10420 #10416) * Fix SDL client autoreconnect (#10390) * Fix xfreerdp clipboard locking (#10385) * Improve logging (#10426 #10441) * Improve warnings and code checks (#10381 #10401 #10403 #10405 #10406 #10410 #10421 #10454) * Support FDK-AAC (#10372) * Fix drive redirection state transitions (#10367 #10374) * Support mth:// routing token (#10366) * Ignore unsupported SetThreadPriority (#10363) * Fix reported documentation and code typos (#10365 #10368 #10370 #10369 #10431 #10446) For a complete and detailed change log since the last release run: git log 3.7.0...3.6.3 # 2024-07-08 Version 3.6.3 Bugfix release for 3.6.2 issues reported Noteworthy changes: * fix a graphics regression (#10352) * workaround for a protocol bug of older FreeRDP based servers (#10358) * fix possible NULL dereference in command line parser (#10348) * fix intrinsics detection (#10346, #10350) For a complete and detailed change log since the last release run: git log 3.6.3...3.6.2 # 2024-07-04 Version 3.6.2 Bugfix release for 3.6.1 issues detected during release tests Noteworthy changes: * Fix xfreerdp and sdl-freerdp manpage names (accidentally changed name) * Fix crash of wfreerdp For a complete and detailed change log since the last release run: git log 3.6.2...3.6.1 # 2024-07-04 Version 3.6.1 Bugfix release for 3.6.0 Noteworthy changes: * Fix missing dependency for ci abi-checker * Fix build WITH_SSE2/WITH_NEON: only enable support if the compiler also defines symbols that suggest support. * Fix incomplete changelog for 3.6.0: * Improved image copy (#10208) * Experimental [MS-RDPECAM] support by @oleg0421 (#10258) * Improved primitives (#10304) * Connection timeout for HTTP gateway transport (#10288) For a complete and detailed change log since the last release run: git log 3.6.1...3.6.0 # 2024-07-03 Version 3.6.0 With this release we did improve decoder speed so you should notice a significant speed improvement with progressive and other gfx codecs. We've also eliminated a couple of issues along the way, so an update is highly recommended. Noteworthy changes: * Improved command line failure logging (#10333) * p11-kit support (#10081) * json-c support (#10183) * (experimental) SDL3 port SDL client (#10195) * New option '/gfx:frame-ack:off' for connection delay testing (#10214) * improved decoder speed (#10222, #10235) * xfreerdp floatbar hide bug (#10237) * winpr-makecert month bug (#10236) * kerberos kdcUrl check fixes (#10238) * timezone updates (#10120, #10144, #10170) * fixed a capability protocol violation bug (#10132) * fix SDL client dialog bug terminating on credential dialog (#10134) * some more oss-fuzz issues (#10126, #10141, #10148, #10161, #10239) * rails popup window fixes (#10160) For a complete and detailed change log since the last release run: git log 3.6.0...3.5.1 # 2024-04-22 Version 3.5.1 This release eliminates a bunch of issues detected during oss-fuzz runs. The test coverage was increased and detected issues eliminates, so an update is highly recommended. Noteworthy changes: * Lots of fixes for oss-fuzz reports * Timezone detection fixes (#10106) * SDL key remapping support (#10103) * Improved help (#10099) * FreeBSD epoll detection fix (#10097) For a complete and detailed change log since the last release run: git log 3.5.1...3.5.0 # 2024-04-16 Version 3.5.0 This release focus is on squashing bugs. The improved test coverage and ci builds revealed a number of previously unnoticed issues we have addressed and we also got a report from Evgeny Legerov of Kaspersky Lab identifying a number of out of bound reads in decoder components and one very nasty out of bound write. CVE: CVE-2024-32041 [Low[ OutOfBound Read in zgfx_decompress_segment CVE-2024-32039 [Moderate] Integer overflow & OutOfBound Write in clear_decompress_residual_data CVE-2024-32040 [Low] integer underflow in nsc_rle_decode CVE-2024-32458 [Low] OutOfBound Read in planar_skip_plane_rle CVE-2024-32459 [Low] OutOfBound Read in ncrush_decompress CVE-2024-32460 [Low] OutOfBound Read in interleaved_decompress Noteworthy changes: * location channel support #9981, #9984, #10065 * bugfixes for report from Evgeny Legerov of Kaspersky Lab #10077 * fuzzer tests from Evgeny Legerov of Kaspersky Lab #10078 * bugfixes for coverty scanner #10066, #10068, #10069, #10070, #10075 * clipboard and generic locking fixes #10076 * split autoreconnect support from enabling it #10063 * various nightly and workflow fixes #10064, #10058, #10062 * always set wm-class to app_id #10051 * refactored and simplified CMake #10046, #10047 * fix relative mouse event sending #10010 * improve and unify check for APIs used (POSIX, win32, mac, ...) #9995 * fix termination for gateway connections #9985 * fix drivestoredirect RDP file setting, ignore invalid #9989 * drop IPP support #10038 For a complete and detailed change log since the last release run: git log 3.5.0...3.4.0 # 2024-03-14 Version 3.4.0 This release concentrates on improving test coverage and ci builds. Some usability issues and inconvenient API functions were fixed on the way. New features have been introduced (stub for location channel) Noteworthy changes: * fix a bug in RAIL mode not activating window focus (#9973) * improve logging (#9969, #9943) * OpenSSL <= 1.1.1 build fixes (#9897) * improved help (#9899, #9905) * improved MINGW support (#9914, #9915, #9919, #9964, #9965, #9920) * fix right control ungrab for xfreerdp (#9960) * fix RPATH option settings (#9963) * fix SDL client screen updates (#9962, #9954) * fix issues with childSession under windows (#9961, #9956, #9922) * fix xfreerdp crash with +auth-only (#9947) * fix windows printer channel (#9934) * add support to enforce gateway policy (#9942) * improve big endian support (#9927) * ignore empty proxy environment variables (#9929) * improve quoting support for command line (#9912) For a complete and detailed change log since the last release run: git log 3.4.0...3.3.0 # 2024-02-22 Version 3.3.0 This release concentrates on code cleanup and overall quality improvements. Some usability issues and inconvenient API functions were fixed on the way. New features have been introduced (better image clipboard) but that stays deactivated by default as we´re in a stable series. Check the new CMake options: * PLUGIN_ABS_PATHS_DEFAULT disables loading of external channels from all but a specified absolute plugin directory defined by FREERDP_PLUGIN_PATH * WINPR_UTILS_IMAGE_PNG enables PNG support with libpng in winpr image/clipboard * WITH_LODEPNG enables PNG support with lodepng library in winpr image/clipboard * WINPR_UTILS_IMAGE_WEBP enables WEBP support in winpr image/clipboard * WINPR_UTILS_IMAGE_JPEG enables JPEG support in winpr image/clipboard * USE_EXECINFO enables or disables backtrace support with execinfo * WITH_WEBVIEW now defaults to OFF on windows, apple and android (not implemented) Noteworthy changes: * Improved image clipboard (xfreerdp, wlfreerdp) (#9873, #9826) * Improved SDL client (#9875, #9887, #9883, #9878, #9792) * Allow plugin loader to only use absolute paths (#9809) * Improved TLS channel binding (#9838) * Add GCC/clang attribute malloc wrapper WINPR_ATTR_MALLOC (#9863) * Major clang-tidy code cleanups and bugfixes (#9799, #9834) * Provide some defaults for wObject functions (#9799) * Fix a bug in shadow with GFX breaking mstsc (#9818) * Improved manpages and help (#9813, #9804) * Blocking mode via transport IO interface (#9793) For a complete and detailed change log since the last release run: git log 3.3.0...3.2.0 # 2024-01-19 Version 3.2.0 This release mostly addresses issues reported since the last release. Fixing some usablity and build issues as well as adding API functions that are needed from external projects Noteworthy changes: * Fix proxy module load check (#9777) * Improve kerberos error logging (#9771) * Improve mac client keyboard handling (#9767) * Add option to run client dynamic channel synchronous (#9764) * Move huge struct to heap (#9763) * Improved failure logging of license module (#9759) * Improve server side gfx logging (#9757) * Print shadow server help with printf instead of WLog (#9756) * Fix SDL client timer initialization (#9754) * Fix server peer message parsing (#9751) * Enable NEON instructions if __ARM_NEON is defined (#9748) * Add new proxy config file option TlsSecLevel (#9741) * Improve android and mac os build scripts (#9735) * Do not disable wayland support on BSD (#9730) * Fix issues with assistance file parsing (#9727, #9728) * Keyboard handling fixes for wayland client (#9725) * Fix relative pkg-config file paths (#9720) * Add new transport IO callback GetPublicKey (#9719) * Fix wayland client scaling (#9715) For a complete and detailed change log since the last release run: git log 3.2.0...3.1.0 # 2023-12-22 Version 3.1.0 A new 3.1.0 minor release for the new 3.0.0 series. This contains bugfixes, adds (better) support for libressl and mbedtls and brings a bunch of improvements for the SDL client. This comes with a price though, we now (optionally) require SDL_image if you want to build the sdl-client Since there are multiple new features, some new files (man pages) and new optional dependencies we´ve directly incremented the minor version. New CMake options: * SDL_USE_COMPILED_RESOURCES (default ON) builds fonts and images into SDL client. Set to OFF to install these resources as files. (was already part of 3.0.0, but worth mentioning here) * WITH_SDL_IMAGE_DIALOGS (default OFF) Show some nice icons for SDL client connection dialogs. Requires SDL_image for build. * WITH_BINARY_VERSIONING (default OFF) Similar as for libraries the binaries, manpages and resource locations created by FreeRDP project are postfixed with the API version. Recommended if packagers want to install the package alongside FreeRDP 2 without conflicts. * RDTK_FORCE_STATIC_BUILD (default OFF) Build and link RDTK statically into shadow server. Recommended for packagers as this library is not really used outside of FreeRDP-shadow. * UWAC_FORCE_STATIC_BUILD (default OFF) Build and link UWAC statically into wlfreerdp. Recommended for packagers as this library is not really used outside of wlfreerdp. Noteworthy changes: * Fix a nasty bug with relative mouse movement (#9677) * LibreSSL support enhancements (#9691, #9670) * mbedTLS support enhancements (#9662) * Improve building on mac OS (#9641) * New and improved manpages (#9690, #9650) * Unify CMake common options, add (optional) binary versioning and allow building rdtk and uwac as static dependencies (#9695) * SDL client improvements (#9693, #9657, #9659, #9683, #9680, #9657, #9664, #9656) For a complete and detailed change log since the last release run: git log 3.1.0...3.0.0 # 2023-12-12 Version 3.0.0 Final 3.0.0 release just a little over two weeks after the last 3.0.0-rc0. This contains bugfixes, drops some legacy code, implements a small feature request and adds some improvements to the build system. Most notably is the new PreventInSourceBuilds.cmake which does exactly what the name implies, it aborts builds where source equals build directory. If you can not use out of source tree builds for some reason, you can circumvent this measure with the CMake setting -DALLOW_IN_SOURCE_BUILD=ON Noteworthy changes: * add support for AF_VSOCK #9561 * xfreerdp drop X11 GDI implementation #9492 * fixed connection freeze with childSession #9594 * fixed relative mouse input issues #9608 * fixed issues with drive redirection #9610 * simplified mac build #9601 * fixed TSMF to build again #9603 * fixed command line /gfx parsing bug #9598 * prevent in source tree build #9550 * fixed various issues with settings #9595, #9596 * add E2K cpu support in WinPR #9599 * fixed wfreerdp DPI settings when used as embedded window #9593 * android add mouse hover support #9495 For a complete and detailed change log since the last release run: git log 3.0.0..3.0.0-rc0 # 2023-11-27 Version 3.0.0-rc0 Nearly 2 months of testing, bugfixing and API refinements later we´re happy to announce the first release candidate for FreeRDP 3.0 The API should now be considered stable and only minor changes (if at all) will happen from this point on, so every project using FreeRDP can check compatibility with upcoming 3.0 Noteworthy changes: * Updated rdpSettings API #9465: * getter/setter now use enum types for keys (generates compiler warnings for mismatch) * Refined functions (added missing, dropped problematic ones) * prepared opaque settings (direct struct access now deprecated) * Server side [MS-RDPEL] channel #9471 * Relative mouse movement support #9459 * relocatable pkg-config files (enable with -DPKG_CONFIG_RELOCATABLE=ON, #9453) * cliprdr dropped support for fuse2 (#9453) * added support for uriparser for clipboard file:// parsing (#9455) * aFreeRDP translation for traditional chinese (zh-rTW) added (#9450) * fixed sdl-freerdp crash on credential dialog (#9455) * fixed sdl-freerdp alt+tab in fullscreen (#9442) * added /connect-child-session option (WIN32 only, #9427) * fix rfx-image codec setup (#9425) * added missing cmake configuration for winpr-tools (#9453) * cleaned up cmake configuration files, dropped no longer required ones (#9455) * fixed x11 keyboard layout detection (#9433) * add missing API calls for server implementation (tested against ogon, #9453) * keep dynamic channels in a hash table instead of a list (#9448) * keep TSCredentials in server peer instance (#9430) * fix FFMPEG/AAC encoding (#9576) * support remote credential guard (#9574) * fix printing on mac os 14 (#9569) * improve RPC gateway support (#9508) * add opus audio support for gnome-remote-desktop (#9575) * server side handling of mouse cursor channel [MS-RDPEMSC] (#9513) For a complete and detailed change log since the last release run: git log 3.0.0-rc0..3.0.0-beta4 # 2023-09-31 Version 3.0.0-beta4 Noteworthy changes: * Improved and fixed AVD authentication, now allows retries for machines just starting up * Improve RDP file parser, prepare new fields used by AVD * Fixed and improved pen support in multitouch implementation (xfreerdp) * Lots of smaller code and leak cleanups For a complete and detailed change log since the last release run: git log 3.0.0-beta4..3.0.0-beta3 # 2023-08-31 Version 3.0.0-beta3 Noteworthy changes: * fix xfreerdp keyboard on mac os * Various crashes and input check fixes * Improved logging of autodetect, redirection and fastpath failures * Smartcard emulation now selectable at runtime * Allow certificates without a subject to pass client checks * Fix FindFirstFile issues on android * Add FREERDP_ENTRY_POINT to silence -Wmissing-prototypes warnings for library entry points * Add WINPR_RESTRICT to enable restrict (C99) or __restring (MSVC) keywords for compiler * Fix support for older OpenSSL versions For a complete and detailed change log since the last release run: git log 3.0.0-beta3..3.0.0-beta2 # 2023-08-03 Version 3.0.0-beta2 Noteworthy changes: * Update CMake defaults, now all features are enabled by default with a platform independent option if multiple are available. * SDL client: (basic) multimonitor support * SDL client: fix dialog cleanup order (crash fix) * clipboard: fix FUSE shutdown crash * fixed drive redirection: FindNextFile did miss some files/directories * improved AAD support: honor rdp file options * improved (gateway) http failure logging * improved shadow server error handling * improved CMake configuration (using find_dependency) * updated timezone definitions * mbedTLS build fixed * improved MINGW build support For a complete and detailed change log since the last release run: git log 3.0.0-beta2..3.0.0-beta1 # 2023-07-21 Version 3.0.0-beta1 We are pleased to announce the first beta release for the next stable 3.0 series of FreeRDP. It has been a huge endeavour to implement all the new shiny bells and whistles as well as clean up the code base and we´re still ironing out some smaller glitches. This is the first API breaking change since the 2.0 series and there are some adjustments to be made for existing applications. See https://github.com/FreeRDP/FreeRDP/wiki/FreeRDP3-migration-notes for help (still incomplete) Noteworthy changes: * Support for AAD/AVD authentication * Support for websocket transport * Support smartcard authentication (TLS and NLA) * Full smartcard emulation support (login with certificate + key) * Rewritten proxy, new module API * New reference client based on SDL2 (work in progress) * Rewritten logging, now parsing issues are all writing to the log so that issues with protocol incompatibilities can be easier analyzed by just turning on logging * Full OpenSSL 3 support * Internal implementations for RC4, MD4 and MD5 (required for non critical parts in RDP but not part of more recend SSL libraries) * Updated RDP protocol support * Improved xfreerdp remote app support * Reworked internal state machine for both client and server implementations * Server implementations can now make use of connect-time network autodetection * Improved clipboard handling, now also support server-to-client file transfer (currently xfreerdp only) * EnhancedRemoteApp support: Utilizing the more modern standard allows remote apps with less glitches and window shadows * Added client- and server-side handling for RDSTLS * Support for the graphics redirection channel For a complete and detailed change log since the last release run: git log 3.0.0-beta1..2.10.0