# 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


