# 2024-12-17 Version 3.10.3

Follow up release to 3.10.2, as we've discovered a few bugs after release.

Noteworthy changes:
 * Fix usage of GetComputerNameExA (#10988)
 * Fix cmake clean target (#10990)

For a complete and detailed change log since the last release run:
git log 3.10.3...3.10.2

# 2024-12-16 Version 3.10.2

Follow up release to 3.10.1, as we've discovered a few bugs during release
tests.

Noteworthy changes:
 * Fix initializing ComputerName setting (#10985)
 * Fix some warnings and possible leaks (#10985)

For a complete and detailed change log since the last release run:
git log 3.10.2...3.10.1

# 2024-12-16 Version 3.10.1

We're happy to present a new release of FreeRDP.
This release contains a few fixes for bugs revealed by checks introduced
with 3.10.0

Noteworthy Changes:
 * Add FreeBSD as architecture build to our ci (#10980 and others)
 * Fix empty include directory creation (#10981)
 * fix SIMD detection (#10968)
 * improve settings unit test coverage (#10966)
 * fix sending server redirection PDU (#10963)
 * fix return and use of GetComputerNameA (#10962)

For a complete and detailed change log since the last release run:
git log 3.10.1...3.10.0

# 2024-12-12 Version 3.10.0

We're happy to present a new release of FreeRDP.
This one contains some more code cleanups (we've addressed lots of clang-tidy
warnings) as well as some highly anticipated new features and bugfixes.

So, what is new:
* Enforce use of a supported build type (#10777)
* Enable FDK-AAC support for nightly packages (#10875, #10781)
* Better AAD/AVD support (#10796)
* Build system updates (#10844)
* Enforce spell checking (#10881)
* Split unit tests so a subset can be run during package build (#10776)
* We're shipping a .desktop file now (#10465)
* Build scripts for nightly packages (#10835, #10783)

Noteworthy changes:
* Fix wStream API bugs (#10885)
* Autoreconnect fixes (#10915)
* Fix monitor layout checks (#10905)
* Enforce code formatting for CMake files (#10895)
* Enable SIMD optimizations by default (#10894)
* WinPR types not based on stdint.h et al (#10754)
* Improve code assertions (#10768)
* Code cleanups (#10763, #10914)

For a complete and detailed change log since the last release run:
git log 3.10.0...3.9.0


# 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 parameter (#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 recent 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


