From 71e9cc75083d20e307c95584de74f70a507c81db78166c1a82802a2df4456225 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 21 Dec 2023 07:43:30 +0000 Subject: [PATCH] https://bugzilla.opensuse.org/show_bug.cgi?id=1218290 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/freerdp?expand=0&rev=72 --- ...-H.264-codec-optional-during-runtime.patch | 32 ++++ FreeRDP-2.11.2.tar.gz | 3 + FreeRDP-3.0.0.tar.gz | 3 - freerdp-rpmlintrc | 2 +- freerdp.changes | 65 -------- freerdp.spec | 141 +++--------------- 6 files changed, 59 insertions(+), 187 deletions(-) create mode 100644 0001-Make-H.264-codec-optional-during-runtime.patch create mode 100644 FreeRDP-2.11.2.tar.gz delete mode 100644 FreeRDP-3.0.0.tar.gz diff --git a/0001-Make-H.264-codec-optional-during-runtime.patch b/0001-Make-H.264-codec-optional-during-runtime.patch new file mode 100644 index 0000000..fa129a8 --- /dev/null +++ b/0001-Make-H.264-codec-optional-during-runtime.patch @@ -0,0 +1,32 @@ +From 24b8b4e5df644ba77c673c41b90cc48c4358aaa0 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Thu, 2 Dec 2021 15:50:08 +0100 +Subject: [PATCH] Make H.264 codec optional during runtime + +It's possible that FreeRDP was built against FFmpeg, but it doesn't support +H.264. In that case, just continue without H.264 support instead of failing +hard before even trying to connect. + +This is especially useful for Linux distributions which can't ship H.264 +support in FFmpeg out of the box (patent issues), but allow enabling H.264 +later by installing a version of FFmpeg which has it enabled. +--- + libfreerdp/core/codecs.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +Index: FreeRDP-2.4.1/libfreerdp/core/codecs.c +=================================================================== +--- FreeRDP-2.4.1.orig/libfreerdp/core/codecs.c ++++ FreeRDP-2.4.1/libfreerdp/core/codecs.c +@@ -106,10 +106,7 @@ BOOL freerdp_client_codecs_prepare(rdpCo + + if (!(codecs->h264 = h264_context_new(FALSE))) + { +- WLog_ERR(TAG, "Failed to create h264 codec context"); +-#ifndef WITH_OPENH264_LOADING +- return FALSE; +-#endif ++ WLog_WARN(TAG, "Failed to create h264 codec context"); + } + } + #endif diff --git a/FreeRDP-2.11.2.tar.gz b/FreeRDP-2.11.2.tar.gz new file mode 100644 index 0000000..1e73870 --- /dev/null +++ b/FreeRDP-2.11.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:674b5600bc2ae3e16e5b5a811c7d5b0daaff6198601ba278bd15b4cb9b281044 +size 7332202 diff --git a/FreeRDP-3.0.0.tar.gz b/FreeRDP-3.0.0.tar.gz deleted file mode 100644 index a3ec251..0000000 --- a/FreeRDP-3.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bd040876289d835a461252fda91b7c48b9252b1c4f231f96a07b229aca8a4d9 -size 8975101 diff --git a/freerdp-rpmlintrc b/freerdp-rpmlintrc index 465e513..ae7b8b1 100644 --- a/freerdp-rpmlintrc +++ b/freerdp-rpmlintrc @@ -1 +1 @@ -addFilter("binary-or-shlib-calls-gethostbyname /usr/lib64/libwinpr3.so") +addFilter("binary-or-shlib-calls-gethostbyname /usr/lib64/libwinpr2.so") diff --git a/freerdp.changes b/freerdp.changes index aee7cbe..67f0461 100644 --- a/freerdp.changes +++ b/freerdp.changes @@ -1,68 +1,3 @@ -------------------------------------------------------------------- -Tue Dec 19 13:56:15 UTC 2023 - Hans-Peter Jansen - -- Remove freerdp-allow-compiling-with-old-c++-compiler.patch - Solve by requiring gcc12-c++ for older environments -- Adjust Requires/Obsoletes -- Merge %{name}-server-proxy%{libfreerdp_package}-devel with -devel - -------------------------------------------------------------------- -Mon Dec 18 11:57:05 UTC 2023 - Joan Torres - -- Add freerdp-allow-compiling-with-old-c++-compiler.patch - * This allows building with older Leap versions which use gcc7-c++. - -- Use cups-devel instead of relying on pkgconfig. - * Older Leap versions were unable to find it that way. - -- Fix some package naming and versioning. - -------------------------------------------------------------------- -Fri Dec 15 11:02:39 UTC 2023 - Joan Torres - -- Add sdl dependencies to build the sdl-freerdp client. - * This is due to the wlfreerdp client being deprecated. - -- Cleanup specfile. - * Rely preferably on pkgconfig to pull devel packages instead of - hardcoding them. - -------------------------------------------------------------------- -Thu Dec 14 07:23:30 UTC 2023 - Paolo Stivanin - -- Update to 3.0.0: - * 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 - * Full changelongs can be found at the following links: - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0-beta1 - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0-beta2 - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0-beta3 - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0-beta4 - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0-rc0 - + https://github.com/FreeRDP/FreeRDP/releases/tag/3.0.0 -- Drop upstreamed 0001-Make-H.264-codec-optional-during-runtime.patch. -- Enable GSS again since gh#issues/4348 has been fixed. - ------------------------------------------------------------------- Thu Nov 16 08:59:58 UTC 2023 - Christophe Marin diff --git a/freerdp.spec b/freerdp.spec index 51ceacf..8a730ba 100644 --- a/freerdp.spec +++ b/freerdp.spec @@ -27,17 +27,16 @@ %endif %endif -%global _with_gss 1 +# enable -DWITH_GSSAPI=ON again after #gh/FreeRDP/FreeRDP/4348 has been fixed +#global _with_gss 1 -%define major_version 3 +%define major_version 2 %define libfreerdp_package %{major_version}-%{major_version} -%define rdtk_version 0 -%define rdtk_package %{rdtk_version}-%{rdtk_version} %define uwac_version 0 %define uwac_package %{uwac_version}-%{uwac_version} Name: freerdp -Version: 3.0.0 +Version: 2.11.2 Release: 0 Summary: Remote Desktop Viewer Client License: Apache-2.0 @@ -45,49 +44,36 @@ Group: Productivity/Networking/Other URL: https://www.freerdp.com/ Source0: https://github.com/FreeRDP/FreeRDP/archive/%{version}.tar.gz#/FreeRDP-%{version}.tar.gz Source1: freerdp-rpmlintrc +# PATCH-FIX-UPSTREAM https://github.com/FreeRDP/FreeRDP/pull/7476 +Patch0: 0001-Make-H.264-codec-optional-during-runtime.patch BuildRequires: chrpath BuildRequires: cmake >= 2.8 BuildRequires: cups-devel BuildRequires: ed BuildRequires: fdupes -# doesn't compile correctly with older gcc's -%if 0%{?suse_version} <= 1600 -BuildRequires: gcc12-c++ -%else BuildRequires: gcc-c++ -%endif BuildRequires: hicolor-icon-theme BuildRequires: libgsm-devel +BuildRequires: libjpeg-devel BuildRequires: pkgconfig +BuildRequires: xmlto +BuildRequires: zlib-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(cairo) -BuildRequires: pkgconfig(fuse3) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(icu-i18n) %{?_with_gss:BuildRequires: pkgconfig(krb5) >= 1.13} -%{?_with_ffmpeg: -BuildRequires: pkgconfig(libavcodec) >= 57.48.101 -BuildRequires: pkgconfig(libavutil) -} -BuildRequires: pkgconfig(libcjson) -BuildRequires: pkgconfig(libjpeg) -%{?_with_lame:BuildRequires: pkgconfig(libmp3lame)} +%{?_with_lame:BuildRequires: libmp3lame-devel} BuildRequires: pkgconfig(libpcsclite) -BuildRequires: pkgconfig(libpkcs11-helper-1) BuildRequires: pkgconfig(libpulse) -BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libusb-1.0) -%{?_with_openh264:BuildRequires: pkgconfig(openh264)} +%{?_with_openh264:BuildRequires: libopenh264-devel} BuildRequires: pkgconfig(openssl) %{?_with_soxr:BuildRequires: pkgconfig(soxr)} -BuildRequires: xmlto -BuildRequires: pkgconfig(SDL2_ttf) -BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(webkit2gtk-4.0) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xdamage) @@ -100,7 +86,10 @@ BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(xv) -BuildRequires: pkgconfig(zlib) +%{?_with_ffmpeg: +BuildRequires: pkgconfig(libavcodec) >= 57.48.101 +BuildRequires: pkgconfig(libavutil) +} # force installation of latest library version Requires: lib%{name}%{libfreerdp_package} = %{version}-%{release} @@ -109,15 +98,6 @@ FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) following the Microsoft Open Specifications. This package provides the client application. -%package sdl -Summary: Remote Desktop Viewer Client -Group: Productivity/Networking/Other - -%description sdl -FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) -following the Microsoft Open Specifications. This package provides the -sdl-based client application. - %package wayland Summary: Remote Desktop Viewer Client Group: Productivity/Networking/Other @@ -145,21 +125,13 @@ This package contains a proxy that allows to select specific features and channels allowed for all connections passing through. It allows monitoring of the running sessions. -%package -n %{name}-proxy-plugins -Summary: Plugins for the Security and Monitorig Proxy Server -Group: Productivity/Networking/Other -Requires: %{name}-proxy = %{version}-%{release} - -%description -n %{name}-proxy-plugins -This package contains the following plugins for the proxy server: -* bitmap-filter -* capture -* demo -* dyn-channel-dump - %package -n lib%{name}%{libfreerdp_package} Summary: Remote Desktop Viewer client library Group: System/Libraries +Obsoletes: lib%{name} < %{version}-%{release} +Provides: lib%{name} = %{version}-%{release} +Obsoletes: lib%{name}2 < %{version}-%{release} +Provides: lib%{name}2 = %{version}-%{release} %description -n lib%{name}%{libfreerdp_package} FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) @@ -170,10 +142,7 @@ libraries used by the client. Summary: Development Files for freerdp Group: Development/Libraries/C and C++ Requires: lib%{name}%{libfreerdp_package} = %{version}-%{release} -Requires: lib%{name}-server-proxy%{libfreerdp_package} Requires: winpr-devel = %{version}-%{release} -Obsoletes: %{name}-server-proxy%{libfreerdp_package}-devel < %{version}-%{release} -Provides: %{name}-server-proxy%{libfreerdp_package}-devel = %{version}-%{release} %description devel This package contains development files necessary for developing applications @@ -182,6 +151,8 @@ based on libfreerdp. %package -n libwinpr%{libfreerdp_package} Summary: Windows Portable Runtime Group: Productivity/Networking/Other +Obsoletes: libwinpr2 < %{version}-%{release} +Provides: libwinpr2 = %{version}-%{release} %description -n libwinpr%{libfreerdp_package} WinPR provides API compatibility for applications targeting non-Windows @@ -222,28 +193,6 @@ Provides: libuwac0-devel = %{version}-%{release} This package contains header files for developing applications that use the uwac library. -%package -n librdtk%{rdtk_package} -Summary: FreeRDP Toolkit -Group: Development/Languages/C and C++ - -%description -n librdtk%{rdtk_package} -This package contains the library for the Remote Desktop Toolkit. - -%package -n rdtk%{rdtk_package}-devel -Summary: FreeRDP Toolkit development files -Group: Development/Languages/C and C++ -Requires: librdtk%{rdtk_package} = %{version}-%{release} - -%description -n rdtk%{rdtk_package}-devel -This package contains the development files for RDTK. - -%package -n lib%{name}-server-proxy%{libfreerdp_package} -Summary: FreeRDP Server Proxy library -Group: Development/Languages/C and C++ - -%description -n lib%{name}-server-proxy%{libfreerdp_package} -This package contains the FreeRDP Server Proxy library files. - %prep %autosetup -p1 -n FreeRDP-%{version} @@ -252,17 +201,11 @@ if [ -z "$SOURCE_DATE_EPOCH" ]; then find . -type f -name "*.c" -exec perl -i -pe 's{__(DATE|TIME)__}{""}g' "{}" "+" fi -%if 0%{?suse_version} <= 1600 -export CXX=g++-12 -%endif - %cmake \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_EXE_LINKER_FLAGS="-pie" \ - -DCMAKE_SKIP_RPATH=TRUE \ - -DCMAKE_SKIP_INSTALL_RPATH=TRUE \ -DWITH_ALSA=ON \ -DWITH_CAIRO=ON \ -DWITH_CUPS=ON \ @@ -271,7 +214,6 @@ export CXX=g++-12 -DWITH_CLIENT=ON \ -DWITH_DIRECTFB=OFF \ -DWITH_FFMPEG=%{?_with_ffmpeg:ON}%{?!_with_ffmpeg:OFF} \ - -DWITH_DSP_FFMPEG=%{?_with_ffmpeg:ON}%{?!_with_ffmpeg:OFF} \ -DWITH_GSM=ON \ -DWITH_GSSAPI=%{?_with_gss:ON}%{?!_with_gss:OFF} \ -DWITH_GSTREAMER_1_0=ON -DWITH_GSTREAMER_0_10=OFF \ @@ -288,7 +230,6 @@ export CXX=g++-12 -DWITH_SERVER_INTERFACE=ON \ -DWITH_SHADOW_X11=ON \ -DWITH_SHADOW_MAC=ON \ - -DWITH_SAMPLE=OFF \ -DWITH_SOXR=%{?_with_soxr:ON}%{?!_with_soxr:OFF} \ -DWITH_WAYLAND=ON \ -DWITH_X11=ON \ @@ -335,19 +276,12 @@ cd build %postun -n libwinpr%{libfreerdp_package} -p /sbin/ldconfig %post -n libuwac%{uwac_package} -p /sbin/ldconfig %postun -n libuwac%{uwac_package} -p /sbin/ldconfig -%post -n librdtk%{rdtk_package} -p /sbin/ldconfig -%postun -n librdtk%{rdtk_package} -p /sbin/ldconfig -%post -n lib%{name}-server-proxy%{libfreerdp_package} -p /sbin/ldconfig -%postun -n lib%{name}-server-proxy%{libfreerdp_package} -p /sbin/ldconfig %files %{_bindir}/x%{name} %{_mandir}/man1/x%{name}.1%{?ext_man} %{_mandir}/man7/wlog.7%{?ext_man} -%files sdl -%{_bindir}/sdl-%{name} - %files wayland %{_bindir}/wl%{name} %{_mandir}/man1/wl%{name}.1%{?ext_man} @@ -363,14 +297,6 @@ cd build %files proxy %{_bindir}/%{name}-proxy -%files -n %{name}-proxy-plugins -%dir %{_libdir}/%{name}%{major_version} -%dir %{_libdir}/%{name}%{major_version}/proxy -%{_libdir}/%{name}%{major_version}/proxy/proxy-bitmap-filter-plugin.so -%{_libdir}/%{name}%{major_version}/proxy/proxy-capture-plugin.so -%{_libdir}/%{name}%{major_version}/proxy/proxy-demo-plugin.so -%{_libdir}/%{name}%{major_version}/proxy/proxy-dyn-channel-dump-plugin.so - %files -n lib%{name}%{libfreerdp_package} %license LICENSE %{_libdir}/lib%{name}%{major_version}.so.* @@ -378,29 +304,20 @@ cd build %{_libdir}/lib%{name}-shadow%{major_version}.so.* %{_libdir}/lib%{name}-server%{major_version}.so.* %{_libdir}/lib%{name}-shadow-subsystem%{major_version}.so.* +%dir %{_libdir}/freerdp2 +%{_libdir}/freerdp2/*.so %files devel -%dir %{_libdir}/cmake/FreeRDP-Proxy3 -%dir %{_libdir}/cmake/WinPR-tools3 %{_libdir}/cmake/FreeRDP%{major_version} %{_libdir}/cmake/FreeRDP-Client%{major_version} %{_libdir}/cmake/FreeRDP-Server%{major_version} %{_libdir}/cmake/FreeRDP-Shadow%{major_version} -%{_libdir}/cmake/FreeRDP-Proxy%{major_version}/FreeRDP-ProxyConfig.cmake -%{_libdir}/cmake/FreeRDP-Proxy%{major_version}/FreeRDP-ProxyConfigVersion.cmake -%{_libdir}/cmake/FreeRDP-Proxy%{major_version}/FreeRDP-ProxyTargets-relwithdebinfo.cmake -%{_libdir}/cmake/FreeRDP-Proxy%{major_version}/FreeRDP-ProxyTargets.cmake -%{_libdir}/cmake/WinPR-tools%{major_version}/WinPR-toolsConfig.cmake -%{_libdir}/cmake/WinPR-tools%{major_version}/WinPR-toolsConfigVersion.cmake -%{_libdir}/cmake/WinPR-tools%{major_version}/WinPR-toolsTargets-relwithdebinfo.cmake -%{_libdir}/cmake/WinPR-tools%{major_version}/WinPR-toolsTargets.cmake %{_includedir}/%{name}%{major_version} %{_libdir}/lib%{name}*.so %{_libdir}/pkgconfig/%{name}%{major_version}.pc %{_libdir}/pkgconfig/%{name}-client%{major_version}.pc %{_libdir}/pkgconfig/%{name}-server%{major_version}.pc %{_libdir}/pkgconfig/%{name}-shadow%{major_version}.pc -%{_libdir}/pkgconfig/%{name}-server-proxy%{major_version}.pc %files -n libwinpr%{libfreerdp_package} %license LICENSE @@ -425,16 +342,4 @@ cd build %{_libdir}/libuwac%{uwac_version}.so %{_libdir}/pkgconfig/uwac%{uwac_version}.pc -%files -n librdtk%{rdtk_package} -%{_libdir}/librdtk%{rdtk_version}.so.* - -%files -n rdtk%{rdtk_package}-devel -%{_libdir}/cmake/rdtk%{rdtk_version} -%{_includedir}/rdtk%{rdtk_version} -%{_libdir}/librdtk%{rdtk_version}.so -%{_libdir}/pkgconfig/rdtk%{rdtk_version}.pc - -%files -n lib%{name}-server-proxy%{libfreerdp_package} -%{_libdir}/libfreerdp-server-proxy%{major_version}.so.* - %changelog