From 761c62f754182008b520bc22bf63bc779e38ea99 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 14 Feb 2025 09:09:19 +0100 Subject: [PATCH 1/6] [common,settings] add comments for compat entries --- libfreerdp/common/settings_getters.c | 4 ++++ tools/update-settings-tests | 2 ++ 2 files changed, 6 insertions(+) diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index ac8b12b19..f41b8a9aa 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -2002,9 +2002,11 @@ UINT32 freerdp_settings_get_uint32(WINPR_ATTR_UNUSED const rdpSettings* settings case FreeRDP_VCFlags: return settings->VCFlags; + // API Compatibility section, remove with FreeRDP 4.x case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftX: return (UINT32)settings->MonitorLocalShiftX; + // API Compatibility section, remove with FreeRDP 4.x case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftY: return (UINT32)settings->MonitorLocalShiftY; @@ -2529,10 +2531,12 @@ BOOL freerdp_settings_set_uint32(WINPR_ATTR_UNUSED rdpSettings* settings, settings->VCFlags = cnv.c; break; + // API Compatibility section, remove with FreeRDP 4.x case FreeRDP_MonitorLocalShiftX: settings->MonitorLocalShiftX = (int32_t)cnv.c; break; + // API Compatibility section, remove with FreeRDP 4.x case FreeRDP_MonitorLocalShiftY: settings->MonitorLocalShiftY = (int32_t)cnv.c; break; diff --git a/tools/update-settings-tests b/tools/update-settings-tests index ff1aa2133..8d33ef613 100755 --- a/tools/update-settings-tests +++ b/tools/update-settings-tests @@ -104,6 +104,7 @@ def write_getter_body(f, values, ret, keys, isPointer, compat_values, typestr, e for i in range(len(compat_values)): val = compat_values[i] cast = '(' + entry_type + ')' + f.write('\t\t// API Compatibility section, remove with FreeRDP 4.x\n') write_getter_case(f, val, cast, typestr) f.write('\t\tdefault:\n') f.write('\t\t\tWLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n') @@ -218,6 +219,7 @@ def write_setter(f, entry_dict, entry_type, entry_name, postfix, compat_dict): if compat_values: for val in compat_values: cast = '(int32_t)' + f.write('\t\t// API Compatibility section, remove with FreeRDP 4.x\n') write_setter_case(f, val, postfix, isPointer, cast) f.write('\t\tdefault:\n') f.write('\t\t\tWLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n') From 95b5d7f640a0216ff8559f3ed90a17b7873ed8d0 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 14 Feb 2025 09:26:19 +0100 Subject: [PATCH 2/6] [winpr,sysinfo] add NEON check to IsProcessorFeaturePresent --- winpr/libwinpr/sysinfo/sysinfo.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/winpr/libwinpr/sysinfo/sysinfo.c b/winpr/libwinpr/sysinfo/sysinfo.c index 497933304..6c4a12ff6 100644 --- a/winpr/libwinpr/sysinfo/sysinfo.c +++ b/winpr/libwinpr/sysinfo/sysinfo.c @@ -962,6 +962,11 @@ BOOL IsProcessorFeaturePresent(DWORD ProcessorFeature) case PF_AVX512F_INSTRUCTIONS_AVAILABLE: ret = __builtin_cpu_supports("avx512f"); break; + case PF_ARM_NEON_INSTRUCTIONS_AVAILABLE: +#if defined(__ARM_NEON__) + ret = TRUE; +#endif + break; default: WLog_WARN(TAG, "feature 0x%08" PRIx32 " check not implemented", ProcessorFeature); break; From ffa28414ef24d9e21ebf453051a382141caa8d30 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 14 Feb 2025 09:15:06 +0100 Subject: [PATCH 3/6] [winpr,thread] remove wrong log message --- winpr/libwinpr/thread/process.c | 1 - 1 file changed, 1 deletion(-) diff --git a/winpr/libwinpr/thread/process.c b/winpr/libwinpr/thread/process.c index 1cdf19d68..2457f0650 100644 --- a/winpr/libwinpr/thread/process.c +++ b/winpr/libwinpr/thread/process.c @@ -498,7 +498,6 @@ HANDLE _GetCurrentProcess(VOID) DWORD GetCurrentProcessId(VOID) { - WLog_ERR("TODO", "TODO: implement"); return ((DWORD)getpid()); } From e191a624716f3090939dae36ce7c5275c8abdc88 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 11 Feb 2025 12:43:28 +0100 Subject: [PATCH 4/6] changelog --- ChangeLog | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8766a4ab8..1a8ffe2e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,46 @@ +# 2025-02-14 Version 3.12.0 + +A bugfix and cleanup release. +Due to a new function and a new macro the minor version was incremented. +* Multimonitor backward compatibility fixes +* Smartcard compatibility +* Improve the [MS-RDPECAM] support +* Improve smartcard redirection support +* Refactor SSE optimizations: Split headers, unify load/store, require SSE3 for + all optimized functions +* Refactors the CMake build to better support configuration based builders +* Fix a few regressions from last release (USB redirection and graphical glitches) + +Noteworthy Changes: +* Fix all unused warnings (#11167) +* [common,settings] fix backward compatibility for LocalMonitorOffset (#11175) +* Warning cleanups (#11172, #11173, #11167) +* CMake configurable C/C++ standard, WINPR_ATTR_UNUSED (#11171) +* [utils,smartcard] fix return checks for SCardListReaders (#11170) +* [primitives,sse] split headers (#11163) +* X11 keymap reload fix (#11162) +* [core,freerdp] New API freerdp_presist_credentials (#/11160) +* [client,common] Avoid use of reserved types by @fossdd (#11144) +* [core,orders] fix update_read_delta by @akallabeth (#11145) +* [build,android] only enable required codecs for ffmpeg by @akallabeth (#11147) +* [iOS] Update OpenSSL library location and build script by @beersheba (#11148) +* Warn fixes, code cleanups by @akallabeth (#11140) +* [server] fix compilation errors after adding NONAMELESSUNION. by @llyzs (#11149) +* [channel,rdpecam] support Logitech UVC H.264 stream mux payload by @oleg0421 (#11132) +* [winpr,sysinfo] limit GetComputerNameA to 31 chars by @akallabeth (#11150) +* Warn fixes42 by @akallabeth (#11151) +* [utils,smartcard] return proper list for smartcard listing by @akallabeth (#11152) +* [channel,rdpecam] uvc_h264 xu_descriptor pointer fix by @oleg0421 (#11154) +* [channel,urbdrc] fix libusb return code checks by @akallabeth (#11156) +* Function size refactor by @akallabeth (#11157) +* Cmake multiconfig2 by @akallabeth (#10853) + +New Contributors: +* @fossdd made their first contribution in https://github.com/FreeRDP/FreeRDP/pull/11144 + +For a complete and detailed change log since the last release run: +git log 3.12.0...3.11.1 + # 2025-02-07 Version 3.11.1 A bugfix release addressing two regressions reported against 3.11.0 From 060e50d9ea722822c7b69d7a588f6c21b4e2512f Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 11 Feb 2025 12:43:59 +0100 Subject: [PATCH 5/6] release 3.12.0 --- CMakeLists.txt | 2 +- winpr/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fb2c68729..ea02d0fd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ if($ENV{BUILD_NUMBER}) endif() set(VERSION_REGEX "^(.*)([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") -set(RAW_VERSION_STRING "3.11.2-dev0") +set(RAW_VERSION_STRING "3.12.0") if(EXISTS "${PROJECT_SOURCE_DIR}/.source_tag") file(READ ${PROJECT_SOURCE_DIR}/.source_tag RAW_VERSION_STRING) elseif(USE_VERSION_FROM_GIT_TAG) diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index dc9384c6a..53c0158e9 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -131,7 +131,7 @@ endif() # Soname versioning set(VERSION_REGEX "^(.*)([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") -set(RAW_VERSION_STRING "3.11.2-dev0") +set(RAW_VERSION_STRING "3.12.0") if(EXISTS "${PROJECT_SOURCE_DIR}/.source_tag") file(READ ${PROJECT_SOURCE_DIR}/.source_tag RAW_VERSION_STRING) elseif(USE_VERSION_FROM_GIT_TAG) From f2fe5e5952a774006744c66dd54f0995f25a074c Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 11 Feb 2025 12:44:26 +0100 Subject: [PATCH 6/6] start 3.12.1-dev0 cycle --- CMakeLists.txt | 2 +- winpr/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea02d0fd9..621acacf1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ if($ENV{BUILD_NUMBER}) endif() set(VERSION_REGEX "^(.*)([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") -set(RAW_VERSION_STRING "3.12.0") +set(RAW_VERSION_STRING "3.12.1-dev0") if(EXISTS "${PROJECT_SOURCE_DIR}/.source_tag") file(READ ${PROJECT_SOURCE_DIR}/.source_tag RAW_VERSION_STRING) elseif(USE_VERSION_FROM_GIT_TAG) diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index 53c0158e9..52fa168d9 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -131,7 +131,7 @@ endif() # Soname versioning set(VERSION_REGEX "^(.*)([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") -set(RAW_VERSION_STRING "3.12.0") +set(RAW_VERSION_STRING "3.12.1-dev0") if(EXISTS "${PROJECT_SOURCE_DIR}/.source_tag") file(READ ${PROJECT_SOURCE_DIR}/.source_tag RAW_VERSION_STRING) elseif(USE_VERSION_FROM_GIT_TAG)