diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..05a0e946187b8160d0c54c23a9f8100f44e0f43b --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.xz filter=lfs diff=lfs merge=lfs -text diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000000000000000000000000000000000000..75578c78b0a9c8229d5a12987581e263da108530 --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,2 @@ +[lfs] + url = https://artlfs.openeuler.openatom.cn/src-openEuler/freerdp diff --git a/CVE-2024-32661.patch b/CVE-2024-32661.patch deleted file mode 100644 index 4e727954458da963d38eef9e95cbecef952d27cf..0000000000000000000000000000000000000000 --- a/CVE-2024-32661.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 71e463e31b4d69f4022d36bfc814592f56600793 Mon Sep 17 00:00:00 2001 -From: akallabeth -Date: Sun, 21 Apr 2024 13:56:13 +0200 -Subject: [PATCH] [core,info] fix missing check in rdp_write_logon_info_v1 - -Origin: https://github.com/FreeRDP/FreeRDP/commit/71e463e31b4d69f4022d36bfc814592f56600793 - ---- - libfreerdp/core/info.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/libfreerdp/core/info.c -+++ b/libfreerdp/core/info.c -@@ -1322,6 +1322,10 @@ static BOOL rdp_write_logon_info_v1(wStr - return FALSE; - - /* domain */ -+ WINPR_ASSERT(info); -+ if (!info->domain || !info->username) -+ return FALSE; -+ - ilen = ConvertToUnicode(CP_UTF8, 0, info->domain, -1, &wString, 0); - - if (ilen < 0) - diff --git a/Fix-clang-incompatible-function-pointer-error.patch b/Fix-clang-incompatible-function-pointer-error.patch deleted file mode 100644 index 3b4b9b262614f95532b2525171af08fddaa0fe27..0000000000000000000000000000000000000000 --- a/Fix-clang-incompatible-function-pointer-error.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0a35fd99e25e085a4826a7e5af4711034fec2eed Mon Sep 17 00:00:00 2001 -From: yanying <201250106@smail.nju.edu.cn> -Date: Mon, 5 Aug 2024 23:42:40 +0800 -Subject: [PATCH] Fix clang incompatible function pointer error - ---- - libfreerdp/codec/rfx.c | 4 ++-- - winpr/include/winpr/collections.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c -index ccbc5afe4..eec736558 100644 ---- a/libfreerdp/codec/rfx.c -+++ b/libfreerdp/codec/rfx.c -@@ -153,7 +153,7 @@ static void rfx_tile_init(void* obj) - } - } - --static void* rfx_decoder_tile_new(void* val) -+static void* rfx_decoder_tile_new(const void* val) - { - RFX_TILE* tile = NULL; - WINPR_UNUSED(val); -@@ -184,7 +184,7 @@ static void rfx_decoder_tile_free(void* obj) - } - } - --static void* rfx_encoder_tile_new(void* val) -+static void* rfx_encoder_tile_new(const void* val) - { - WINPR_UNUSED(val); - return calloc(1, sizeof(RFX_TILE)); -diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h -index 807f011d7..b8c8d9d66 100644 ---- a/winpr/include/winpr/collections.h -+++ b/winpr/include/winpr/collections.h -@@ -36,7 +36,7 @@ extern "C" - { - #endif - -- typedef void* (*OBJECT_NEW_FN)(void* val); -+ typedef void* (*OBJECT_NEW_FN)(const void* val); - typedef void (*OBJECT_INIT_FN)(void* obj); - typedef void (*OBJECT_UNINIT_FN)(void* obj); - typedef void (*OBJECT_FREE_FN)(void* obj); --- -2.41.0.windows.1 - diff --git a/Fix-freerdp-shadow-cli-exit-codes-for-help-and-version.patch b/Fix-freerdp-shadow-cli-exit-codes-for-help-and-version.patch index 20b7012a17af56dc28d4356e46748651f903b2cd..d415d5b8e6f5e68ee793788ea650fb59c91dd7cc 100644 --- a/Fix-freerdp-shadow-cli-exit-codes-for-help-and-version.patch +++ b/Fix-freerdp-shadow-cli-exit-codes-for-help-and-version.patch @@ -5,32 +5,29 @@ Subject: [PATCH] Fix freerdp-shadow-cli exit codes for help and version option Signed-off-by: si-gui <245140120@qq.com> --- - server/shadow/shadow.c | 5 ++++- + server/shadow/cli/shadow.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -diff --git a/server/shadow/shadow.c b/server/shadow/shadow.c -index fcf8bd3..16f7dfb 100644 ---- a/server/shadow/shadow.c -+++ b/server/shadow/shadow.c -@@ -42,6 +42,7 @@ int main(int argc, char** argv) +diff --git a/server/shadow/cli/shadow.c b/server/shadow/cli/shadow.c +index adfc6ec..e9989dc 100644 +--- a/server/shadow/cli/shadow.c ++++ b/server/shadow/cli/shadow.c +@@ -35,6 +35,7 @@ + int main(int argc, char** argv) { - MSG msg; int status = 0; + int rc = 0; - DWORD dwExitCode; - rdpSettings* settings; - rdpShadowServer* server; -@@ -71,7 +72,9 @@ int main(int argc, char** argv) + DWORD dwExitCode = 0; + COMMAND_LINE_ARGUMENT_A shadow_args[] = { + { "log-filters", COMMAND_LINE_VALUE_REQUIRED, ":[,:[,...]]", NULL, +@@ -147,7 +148,9 @@ int main(int argc, char** argv) - if ((status = shadow_server_parse_command_line(server, argc, argv)) < 0) + if ((status = shadow_server_parse_command_line(server, argc, argv, shadow_args)) < 0) { -- shadow_server_command_line_status_print(server, argc, argv, status); -+ rc = shadow_server_command_line_status_print(server, argc, argv, status); +- shadow_server_command_line_status_print(server, argc, argv, status, shadow_args); ++ rc = shadow_server_command_line_status_print(server, argc, argv, status, shadow_args); + if (rc <= COMMAND_LINE_STATUS_PRINT && rc >= COMMAND_LINE_STATUS_PRINT_LAST) + status = 0; - goto fail_parse_command_line; + goto fail; } --- -2.23.0 - diff --git a/freerdp-2.11.7-port-to-newer-cmake.patch b/freerdp-2.11.7-port-to-newer-cmake.patch deleted file mode 100644 index 0ec9e4fd19c94401c28013271c60b1c3a695d3a4..0000000000000000000000000000000000000000 --- a/freerdp-2.11.7-port-to-newer-cmake.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 67f3437..1fa65e0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -18,7 +18,7 @@ - # See the License for the specific language governing permissions and - # limitations under the License. - --cmake_minimum_required(VERSION 2.8) -+cmake_minimum_required(VERSION 2.8...${CMAKE_VERSION}) - - project(FreeRDP C CXX) - ---- freerdp-2.11.7/rdtk/CMakeLists.txt.orig 2025-03-06 18:27:27.033641368 +0800 -+++ freerdp-2.11.7/rdtk/CMakeLists.txt 2025-03-06 18:27:36.343775988 +0800 -@@ -15,7 +15,7 @@ - # See the License for the specific language governing permissions and - # limitations under the License. - --cmake_minimum_required(VERSION 2.8) -+cmake_minimum_required(VERSION 2.8...${CMAKE_VERSION}) - - project(RdTk C) - ---- freerdp-2.11.7/winpr/CMakeLists.txt.orig 2025-03-06 18:26:53.497156449 +0800 -+++ freerdp-2.11.7/winpr/CMakeLists.txt 2025-03-06 18:27:04.647317675 +0800 -@@ -15,7 +15,7 @@ - # See the License for the specific language governing permissions and - # limitations under the License. - --cmake_minimum_required(VERSION 2.8) -+cmake_minimum_required(VERSION 2.8...${CMAKE_VERSION}) - - project(WinPR C) - diff --git a/freerdp-2.11.7.tar.gz b/freerdp-2.11.7.tar.gz deleted file mode 100644 index ae6741f8f28ead8a6bc59f99ee0b006cf08bda05..0000000000000000000000000000000000000000 Binary files a/freerdp-2.11.7.tar.gz and /dev/null differ diff --git a/freerdp-3.14.1.tar.xz b/freerdp-3.14.1.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..535ba7c3275eebcc7ffbc1b4853ce2e919ce8b2a --- /dev/null +++ b/freerdp-3.14.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55d21d590d6af442e4576cd9f16992b4633eaf2a17c365db4e75e99148f842e9 +size 7132840 diff --git a/freerdp.spec b/freerdp.spec index cd5ad989fa72bdc2484b223492c6d32774ecc14e..feef736fb8c956ede155b2d8c1df7c867d114803 100644 --- a/freerdp.spec +++ b/freerdp.spec @@ -1,27 +1,45 @@ Name: freerdp -Version: 2.11.7 -Release: 6 +Version: 3.14.1 +Release: 1 Epoch: 2 Summary: A Remote Desktop Protocol Implementation License: Apache-2.0 URL: https://www.freerdp.com -Source0: https://github.com/FreeRDP/FreeRDP/releases/download/%{version}/freerdp-%{version}.tar.gz +Source0: https://pub.freerdp.com/releases/%{name}-%{version}.tar.xz Patch0001: Fix-freerdp-shadow-cli-exit-codes-for-help-and-version.patch -Patch0002: CVE-2024-32661.patch -Patch0003: Fix-clang-incompatible-function-pointer-error.patch -Patch0004: freerdp-2.11.7-port-to-newer-cmake.patch - -BuildRequires: gcc gcc-c++ alsa-lib-devel cmake >= 2.8 cups-devel gsm-devel libXrandr-devel libXv-devel -BuildRequires: libjpeg-turbo-devel libjpeg-turbo-devel libX11-devel libXcursor-devel libxkbfile-devel -BuildRequires: libXdamage-devel libXext-devel libXi-devel libXinerama-devel libxkbfile-devel pam-devel -BuildRequires: xmlto zlib-devel pkgconfig(dbus-1) pkgconfig(dbus-glib-1) pkgconfig(gstreamer-1.0) -BuildRequires: pkgconfig(glib-2.0) pkgconfig(gstreamer-base-1.0) pkgconfig(gstreamer-app-1.0) -BuildRequires: pkgconfig(gstreamer-audio-1.0) pkgconfig(gstreamer-fft-1.0) pkgconfig(gstreamer-video-1.0) -BuildRequires: pkgconfig(gstreamer-pbutils-1.0) pkgconfig(libpcsclite) pkgconfig(libpulse) -BuildRequires: pkgconfig(libpulse) pkgconfig(libsystemd) pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(xkbcommon) pkgconfig(openssl) pkgconfig(wayland-client) pkgconfig(cairo) -BuildRequires: pkgconfig(libusb-1.0) + +BuildRequires: cmake >= 3.13 +BuildRequires: ninja-build +BuildRequires: alsa-lib-devel +BuildRequires: cups-devel +BuildRequires: ffmpeg-devel +BuildRequires: gsm-devel +BuildRequires: krb5-devel +BuildRequires: libX11-devel +BuildRequires: libXcursor-devel +BuildRequires: libXdamage-devel +BuildRequires: libXext-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrandr-devel +BuildRequires: libXv-devel +BuildRequires: libxkbfile-devel +BuildRequires: pam-devel +BuildRequires: xmlto +BuildRequires: zlib-devel +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(fuse3) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(libcjson) +BuildRequires: pkgconfig(libpcsclite) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(liburiparser) +BuildRequires: pkgconfig(libusb-1.0) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(xkbcommon) Requires: libwinpr = %{?epoch}:%{version}-%{release} systemd-pam Provides: %{name}-libs = %{?epoch}:%{version}-%{release} xfreerdp = %{version}-%{release} @@ -32,11 +50,11 @@ Obsoletes: %{name}-libs < %{?epoch}:%{version}-%{release} %description FreeRDP is a client implementation of the Remote Desktop Protocol (RDP) that follows Microsoft's -open specifications. This package provides the client applications xfreerdp and wlfreerdp. +open specifications. This package provides the client applications xfreerdp. %package devel Summary: Development support for freerdp -Requires: %{name} = %{?epoch}:%{version}-%{release} pkgconfig cmake >= 2.8 +Requires: %{name} = %{?epoch}:%{version}-%{release} %description devel Development headers and libraries for freerdp-libs. @@ -62,26 +80,19 @@ Development headers and libraries for freerdp-libwinpr. %prep %autosetup -p1 -n %{name}-%{version} -find . -name "*.h" -exec chmod 664 {} \; -find . -name "*.c" -exec chmod 664 {} \; %build -%cmake %{?_cmake_skip_rpath} \ +%cmake -GNinja %{?_cmake_skip_rpath} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} -DWITH_ALSA=ON -DWITH_CUPS=ON -DWITH_CHANNELS=ON \ - -DBUILTIN_CHANNELS=OFF -DWITH_CLIENT=ON -DWITH_DIRECTFB=OFF -DWITH_FFMPEG=OFF -DWITH_GSM=ON \ - -DWITH_GSSAPI=OFF -DWITH_GSTREAMER_1_0=ON -DWITH_GSTREAMER_0_10=OFF \ - -DPROXY_PLUGINDIR=%{_libdir}/freerdp2/server/proxy/plugins \ - -DGSTREAMER_1_0_INCLUDE_DIRS=%{_includedir}/gstreamer-1.0 -DWITH_IPP=OFF -DWITH_JPEG=ON \ - -DWITH_MANPAGES=ON DWITH_OPENH264=OFF \ + -DWITH_CLIENT=ON -DWITH_DIRECTFB=OFF -DWITH_FFMPEG=ON -DWITH_GSM=ON \ + -DWITH_GSSAPI=OFF \ + -DWITH_IPP=OFF -DWITH_JPEG=ON \ + -DWITH_MANPAGES=ON -DWITH_OPENH264=OFF \ -DWITH_OPENSSL=ON -DWITH_PCSC=ON -DWITH_PULSE=ON -DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON \ - -DWITH_SHADOW_X11=ON -DWITH_SHADOW_MAC=ON -DWITH_WAYLAND=ON -DWITH_X11=ON \ + -DWITH_SHADOW_X11=ON -DWITH_SHADOW_MAC=ON -DWITH_WAYLAND=OFF -DWITH_X11=ON \ -DWITH_X264=OFF -DWITH_XCURSOR=ON -DWITH_XEXT=ON \ -DWITH_XKBFILE=ON -DWITH_XI=ON -DWITH_XINERAMA=ON -DWITH_XRENDER=ON -DWITH_XTEST=OFF \ -DWITH_XV=ON -DWITH_ZLIB=ON \ -%ifarch x86_64 - -DWITH_SSE2=ON \ -%else - -DWITH_SSE2=OFF \ -%endif + -DWITH_CLIENT_SDL=OFF %cmake_build @@ -91,32 +102,70 @@ find . -name "*.c" -exec chmod 664 {} \; %files %license LICENSE %doc README.md ChangeLog -%dir %{_libdir}/freerdp2/ -%{_libdir}/freerdp2/*.so -%{_bindir}/{winpr-hash,winpr-makecert,wlfreerdp,xfreerdp,freerdp-shadow-cli,freerdp-proxy} -%{_libdir}/{libfreerdp*,libuwac0}.so.* +%{_bindir}/freerdp-proxy +%{_bindir}/freerdp-shadow-cli +%{_bindir}/sfreerdp +%{_bindir}/sfreerdp-server +%{_bindir}/winpr-hash +%{_bindir}/winpr-makecert +%{_bindir}/xfreerdp +%{_datadir}/FreeRDP +%{_libdir}/libfreerdp-client3.so.* +%{_libdir}/libfreerdp-server-proxy3.so.* +%{_libdir}/libfreerdp-server3.so.* +%{_libdir}/libfreerdp-shadow-subsystem3.so.* +%{_libdir}/libfreerdp-shadow3.so.* +%{_libdir}/libfreerdp3.so.* +%{_libdir}/librdtk0.so.* +%dir %{_libdir}/freerdp3 +%dir %{_libdir}/freerdp3/proxy +%{_libdir}/freerdp3/proxy/*.so %files devel -%{_includedir}/{freerdp2,uwac0} -%{_libdir}/cmake/{FreeRDP*,uwac0} -%{_libdir}/{libfreerdp*,libuwac0}.so -%{_libdir}/pkgconfig/{freerdp*,uwac0}.pc +%{_includedir}/freerdp3 +%{_includedir}/rdtk0 +%{_libdir}/cmake/FreeRDP-Client3 +%{_libdir}/cmake/FreeRDP-Proxy3 +%{_libdir}/cmake/FreeRDP-Server3 +%{_libdir}/cmake/FreeRDP-Shadow3 +%{_libdir}/cmake/FreeRDP3 +%{_libdir}/cmake/rdtk0 +%{_libdir}/libfreerdp-client3.so +%{_libdir}/libfreerdp-server-proxy3.so +%{_libdir}/libfreerdp-server3.so +%{_libdir}/libfreerdp-shadow-subsystem3.so +%{_libdir}/libfreerdp-shadow3.so +%{_libdir}/libfreerdp3.so +%{_libdir}/librdtk0.so +%{_libdir}/pkgconfig/freerdp-client3.pc +%{_libdir}/pkgconfig/freerdp-server-proxy3.pc +%{_libdir}/pkgconfig/freerdp-server3.pc +%{_libdir}/pkgconfig/freerdp-shadow3.pc +%{_libdir}/pkgconfig/freerdp3.pc +%{_libdir}/pkgconfig/rdtk0.pc %files -n libwinpr %license LICENSE %doc README.md ChangeLog -%{_libdir}/{libwinpr2.so.*,libwinpr-tools2.so.*} +%{_libdir}/libwinpr-tools3.so.* +%{_libdir}/libwinpr3.so.* %files -n libwinpr-devel -%{_libdir}/cmake/WinPR2 -%{_includedir}/winpr2 -%{_libdir}/{libwinpr2,libwinpr-tools2}.so -%{_libdir}/pkgconfig/{winpr2,winpr-tools2}.pc +%{_includedir}/winpr3 +%{_libdir}/libwinpr-tools3.so +%{_libdir}/libwinpr3.so +%{_libdir}/cmake/WinPR-tools3 +%{_libdir}/cmake/WinPR3 +%{_libdir}/pkgconfig/winpr-tools3.pc +%{_libdir}/pkgconfig/winpr3.pc %files help %{_mandir}/man?/* %changelog +* Wed Apr 09 2025 Funda Wang - 2:3.14.1-1 +- update to 3.14.1 + * Thu Mar 06 2025 Funda Wang - 2:2.11.7-6 - build with cmake 4.0