From da325291360e523849b3df0c618d982cb07abacb Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 24 2020 03:10:59 +0000 Subject: import freerdp-2.0.0-47.rc4.el8 --- diff --git a/.freerdp.metadata b/.freerdp.metadata new file mode 100644 index 0000000..e0aa7bd --- /dev/null +++ b/.freerdp.metadata @@ -0,0 +1 @@ +bd50ce9d8807499e14884a3019e9f42b40f3480b SOURCES/FreeRDP-2.0.0-rc4.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7aad2fe --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/FreeRDP-2.0.0-rc4.tar.gz diff --git a/SOURCES/Do-not-advertise-usb-in-help-output-if-the-channel-i.patch b/SOURCES/Do-not-advertise-usb-in-help-output-if-the-channel-i.patch new file mode 100644 index 0000000..39406b0 --- /dev/null +++ b/SOURCES/Do-not-advertise-usb-in-help-output-if-the-channel-i.patch @@ -0,0 +1,46 @@ +From 7c2fac69e66456617b94d26026fcab6b379814c5 Mon Sep 17 00:00:00 2001 +From: Ondrej Holy +Date: Wed, 26 Feb 2020 11:12:46 +0100 +Subject: [PATCH] Do not advertise /usb in help output if the channel is not + built + +The help output advertise an option and an example for usb redirection +regardless of the fact whether the urbdrc channel was built or not. +This is confusing for people. Let's do not show /usb in help if it is +not built. +--- + client/common/cmdline.c | 2 ++ + client/common/cmdline.h | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/client/common/cmdline.c b/client/common/cmdline.c +index 103b4d245..44510a58c 100644 +--- a/client/common/cmdline.c ++++ b/client/common/cmdline.c +@@ -166,7 +166,9 @@ BOOL freerdp_client_print_command_line_help_ex(int argc, char** argv, + printf("\n"); + printf("Multimedia Redirection: /multimedia:sys:oss,dev:/dev/dsp1,decoder:ffmpeg\n"); + printf("Multimedia Redirection: /multimedia:sys:alsa\n"); ++#ifdef CHANNEL_URBDRC_CLIENT + printf("USB Device Redirection: /usb:id,dev:054c:0268\n"); ++#endif + printf("\n"); + printf("For Gateways, the https_proxy environment variable is respected:\n"); + #ifdef _WIN32 +diff --git a/client/common/cmdline.h b/client/common/cmdline.h +index 7f1d9e03f..b87871e64 100644 +--- a/client/common/cmdline.h ++++ b/client/common/cmdline.h +@@ -173,7 +173,9 @@ static COMMAND_LINE_ARGUMENT_A args[] = + { "toggle-fullscreen", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Alt+Ctrl+Enter toggles fullscreen" }, + { "u", COMMAND_LINE_VALUE_REQUIRED, "[\\] or [@]", NULL, NULL, -1, NULL, "Username" }, + { "unmap-buttons", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Let server see real physical pointer button"}, ++#ifdef CHANNEL_URBDRC_CLIENT + { "usb", COMMAND_LINE_VALUE_REQUIRED, "[dbg,][dev:,][id|addr,][auto]", NULL, NULL, -1, NULL, "Redirect USB device" }, ++#endif + { "v", COMMAND_LINE_VALUE_REQUIRED, "[:port]", NULL, NULL, -1, NULL, "Server hostname" }, + { "vc", COMMAND_LINE_VALUE_REQUIRED, "[,]", NULL, NULL, -1, NULL, "Static virtual channel" }, + { "version", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_VERSION, NULL, NULL, NULL, -1, NULL, "Print version" }, +-- +2.26.0 + diff --git a/SOURCES/fix-channels-smartcard-fix-StatusW_Call.patch b/SOURCES/fix-channels-smartcard-fix-StatusW_Call.patch new file mode 100644 index 0000000..3c67a61 --- /dev/null +++ b/SOURCES/fix-channels-smartcard-fix-StatusW_Call.patch @@ -0,0 +1,51 @@ +From a311075202865d22b87ec2ea8d1e32fa11868012 Mon Sep 17 00:00:00 2001 +From: Bernhard Miklautz +Date: Wed, 10 Jul 2019 18:36:34 +0200 +Subject: [PATCH] fix [channels/smartcard]: fix StatusW_Call + +According to 2.2.2.18 Status_Call cbAtrLen is unused an must be ignored +upon receipt. +--- + channels/smartcard/client/smartcard_operations.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/channels/smartcard/client/smartcard_operations.c b/channels/smartcard/client/smartcard_operations.c +index c4bf65d38..e3d848171 100644 +--- a/channels/smartcard/client/smartcard_operations.c ++++ b/channels/smartcard/client/smartcard_operations.c +@@ -1209,15 +1209,19 @@ static LONG smartcard_StatusW_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT + Status_Call* call = operation->call; + DWORD cbAtrLen; + +- if (call->cbAtrLen > 32) +- call->cbAtrLen = 32; ++ /** ++ * [MS-RDPESC] ++ * According to 2.2.2.18 Status_Call cbAtrLen is unused an must be ignored upon receipt. ++ */ ++ cbAtrLen = call->cbAtrLen = 32; ++ ++ call->cchReaderLen; + + if (call->fmszReaderNamesIsNULL) + cchReaderLen = 0; + else + cchReaderLen = SCARD_AUTOALLOCATE; + +- cbAtrLen = call->cbAtrLen; + ZeroMemory(ret.pbAtr, 32); + status = ret.ReturnCode = SCardStatusW(operation->hCard, + call->fmszReaderNamesIsNULL ? NULL : (LPWSTR) &mszReaderNames, +@@ -1236,8 +1240,7 @@ static LONG smartcard_StatusW_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT + ret.cBytes = cchReaderLen; + #endif + +- if (call->cbAtrLen) +- ret.cbAtrLen = cbAtrLen; ++ ret.cbAtrLen = cbAtrLen; + } + + smartcard_trace_status_return(smartcard, &ret, TRUE); +-- +2.26.0 + diff --git a/SPECS/freerdp.spec b/SPECS/freerdp.spec new file mode 100644 index 0000000..590e297 --- /dev/null +++ b/SPECS/freerdp.spec @@ -0,0 +1,398 @@ +%global gittag 2.0.0-rc4 + +# Can be rebuilt with FFmpeg/H264 support enabled by passing "--with=ffmpeg", +# "--with=x264" or "--with=openh264" to mock/rpmbuild; or by globally setting +# these variables: + +#global _with_ffmpeg 1 +#global _with_x264 1 +#global _with_openh264 1 + +# Momentarily disable GSS support +# https://github.com/FreeRDP/FreeRDP/issues/4348 +#global _with_gss 1 + +# Disable server support in RHEL +# https://bugzilla.redhat.com/show_bug.cgi?id=1639165 +%{!?rhel:%global _with_server 1} + +Name: freerdp +Version: 2.0.0 +Release: 47.rc4%{?dist} +Epoch: 2 +Summary: Free implementation of the Remote Desktop Protocol (RDP) +License: ASL 2.0 +URL: http://www.freerdp.com/ + +Source0: https://github.com/FreeRDP/FreeRDP/archive/%{gittag}/FreeRDP-%{gittag}.tar.gz + +# https://bugzilla.redhat.com/show_bug.cgi?id=1803054 +Patch1: fix-channels-smartcard-fix-StatusW_Call.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1761144 +Patch2: Do-not-advertise-usb-in-help-output-if-the-channel-i.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: alsa-lib-devel +BuildRequires: cmake >= 2.8 +BuildRequires: cups-devel +BuildRequires: gsm-devel +BuildRequires: libjpeg-turbo-devel +BuildRequires: libX11-devel +BuildRequires: libXcursor-devel +BuildRequires: libXdamage-devel +BuildRequires: libXext-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libxkbfile-devel +BuildRequires: libXrandr-devel +%{?_with_server:BuildRequires: libXtst-devel} +BuildRequires: libXv-devel +%{?_with_openh264:BuildRequires: openh264-devel} +%{?_with_x264:BuildRequires: x264-devel} +%{?_with_server:BuildRequires: pam-devel} +BuildRequires: xmlto +BuildRequires: zlib-devel +BuildRequires: multilib-rpm-config + +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(gstreamer-base-1.0) +BuildRequires: pkgconfig(gstreamer-app-1.0) +BuildRequires: pkgconfig(gstreamer-audio-1.0) +BuildRequires: pkgconfig(gstreamer-fft-1.0) +BuildRequires: pkgconfig(gstreamer-pbutils-1.0) +BuildRequires: pkgconfig(gstreamer-video-1.0) +%{?_with_gss:BuildRequires: pkgconfig(krb5) >= 1.13} +BuildRequires: pkgconfig(libpcsclite) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(xkbcommon) + +%{?_with_ffmpeg: +BuildRequires: pkgconfig(libavcodec) >= 57.48.101 +BuildRequires: pkgconfig(libavutil) +} + +Provides: xfreerdp = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: libwinpr%{?_isa} = %{?epoch}:%{version}-%{release} + +%description +The xfreerdp & wlfreerdp Remote Desktop Protocol (RDP) clients from the FreeRDP +project. + +xfreerdp & wlfreerdp can connect to RDP servers such as Microsoft Windows +machines, xrdp and VirtualBox. + +%package libs +Summary: Core libraries implementing the RDP protocol +Requires: libwinpr%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-plugins < 1:1.1.0 +Provides: %{name}-plugins = %{?epoch}:%{version}-%{release} +%description libs +libfreerdp-core can be embedded in applications. + +libfreerdp-channels and libfreerdp-kbd might be convenient to use in X +applications together with libfreerdp-core. + +libfreerdp-core can be extended with plugins handling RDP channels. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: pkgconfig +Requires: cmake >= 2.8 + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}-libs. + +%{?_with_server: +%package server +Summary: Server support for %{name} +Requires: libwinpr%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release} + +%description server +The %{name}-server package contains servers which can export a desktop via +the RDP protocol. +} + +%package -n libwinpr +Summary: Windows Portable Runtime +Provides: %{name}-libwinpr = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-libwinpr < %{?epoch}:%{version}-%{release} + +%description -n libwinpr +WinPR provides API compatibility for applications targeting non-Windows +environments. When on Windows, the original native API is being used instead of +the equivalent WinPR implementation, without having to modify the code using it. + +%package -n libwinpr-devel +Summary: Windows Portable Runtime development files +Requires: libwinpr%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: pkgconfig +Requires: cmake >= 2.8 + +%description -n libwinpr-devel +The %{name}-libwinpr-devel package contains libraries and header files for +developing applications that use %{name}-libwinpr. + +%prep +%autosetup -p1 -n FreeRDP-%{gittag} + +# Rpmlint fixes +find . -name "*.h" -exec chmod 664 {} \; +find . -name "*.c" -exec chmod 664 {} \; + +%build +%cmake %{?_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=%{?_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 \ + -DGSTREAMER_1_0_INCLUDE_DIRS=%{_includedir}/gstreamer-1.0 \ + -DWITH_IPP=OFF \ + -DWITH_JPEG=ON \ + -DWITH_MANPAGES=ON \ + -DWITH_OPENH264=%{?_with_openh264:ON}%{?!_with_openh264:OFF} \ + -DWITH_OPENSSL=ON \ + -DWITH_PCSC=ON \ + -DWITH_PULSE=ON \ + -DWITH_SERVER=%{?_with_server:ON}%{?!_with_server:OFF} \ + -DWITH_SERVER_INTERFACE=%{?_with_server:ON}%{?!_with_server:OFF} \ + -DWITH_SHADOW_X11=%{?_with_server:ON}%{?!_with_server:OFF} \ + -DWITH_SHADOW_MAC=%{?_with_server:ON}%{?!_with_server:OFF} \ + -DWITH_WAYLAND=ON \ + -DWITH_X11=ON \ + -DWITH_X264=%{?_with_x264:ON}%{?!_with_x264:OFF} \ + -DWITH_XCURSOR=ON \ + -DWITH_XEXT=ON \ + -DWITH_XKBFILE=ON \ + -DWITH_XI=ON \ + -DWITH_XINERAMA=ON \ + -DWITH_XRENDER=ON \ + -DWITH_XTEST=%{?_with_server:ON}%{?!_with_server:OFF} \ + -DWITH_XV=ON \ + -DWITH_ZLIB=ON \ +%ifarch x86_64 + -DWITH_SSE2=ON \ +%else + -DWITH_SSE2=OFF \ +%endif +%ifarch armv7hl + -DARM_FP_ABI=hard \ + -DWITH_NEON=OFF \ +%endif +%ifarch armv7hnl + -DARM_FP_ABI=hard \ + -DWITH_NEON=ON \ +%endif +%ifarch armv5tel armv6l armv7l + -DARM_FP_ABI=soft \ + -DWITH_NEON=OFF \ +%endif + . + +make %{?_smp_mflags} + +pushd winpr/tools/makecert-cli +make %{?_smp_mflags} +popd + +%install +%make_install +%make_install COMPONENT=tools + +find %{buildroot} -name "*.a" -delete + +%multilib_fix_c_header --file %{_includedir}/freerdp2/freerdp/build-config.h + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%post -n libwinpr -p /sbin/ldconfig + +%postun -n libwinpr -p /sbin/ldconfig + +%files +%{_bindir}/winpr-hash +%{_bindir}/winpr-makecert +%{_bindir}/wlfreerdp +%{_bindir}/xfreerdp +%{_mandir}/man1/winpr-hash.1.* +%{_mandir}/man1/winpr-makecert.1.* +%{_mandir}/man1/wlfreerdp.1.* +%{_mandir}/man1/xfreerdp.1.* + +%files libs +%license LICENSE +%doc README ChangeLog +%{_libdir}/freerdp2/ +%{_libdir}/libfreerdp-client2.so.* +%{?_with_server: +%{_libdir}/libfreerdp-server2.so.* +%{_libdir}/libfreerdp-shadow2.so.* +%{_libdir}/libfreerdp-shadow-subsystem2.so.* +} +%{_libdir}/libfreerdp2.so.* +%{_libdir}/libuwac0.so.* +%{_mandir}/man7/wlog.* + +%files devel +%{_includedir}/freerdp2 +%{_includedir}/uwac0 +%{_libdir}/cmake/FreeRDP2 +%{_libdir}/cmake/FreeRDP-Client2 +%{?_with_server: +%{_libdir}/cmake/FreeRDP-Server2 +%{_libdir}/cmake/FreeRDP-Shadow2 +} +%{_libdir}/cmake/uwac0 +%{_libdir}/libfreerdp-client2.so +%{?_with_server: +%{_libdir}/libfreerdp-server2.so +%{_libdir}/libfreerdp-shadow2.so +%{_libdir}/libfreerdp-shadow-subsystem2.so +} +%{_libdir}/libfreerdp2.so +%{_libdir}/libuwac0.so +%{_libdir}/pkgconfig/freerdp2.pc +%{_libdir}/pkgconfig/freerdp-client2.pc +%{?_with_server: +%{_libdir}/pkgconfig/freerdp-server2.pc +%{_libdir}/pkgconfig/freerdp-shadow2.pc +} +%{_libdir}/pkgconfig/uwac0.pc + +%{?_with_server: +%files server +%{_bindir}/freerdp-shadow-cli +%{_mandir}/man1/freerdp-shadow-cli.1.* +} + +%files -n libwinpr +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc README ChangeLog +%{_libdir}/libwinpr2.so.* +%{_libdir}/libwinpr-tools2.so.* + +%files -n libwinpr-devel +%{_libdir}/cmake/WinPR2 +%{_includedir}/winpr2 +%{_libdir}/libwinpr2.so +%{_libdir}/libwinpr-tools2.so +%{_libdir}/pkgconfig/winpr2.pc +%{_libdir}/pkgconfig/winpr-tools2.pc + +%changelog +* Fri Apr 17 2020 Ondrej Holy - 2:2.0.0-47.rc4 +- Fix SCARD_INSUFFICIENT_BUFFER error (rhbz#1803054) +- Do not advertise /usb in help output (rhbz#1761144) + +* Wed Nov 28 2018 Ondrej Holy - 2:2.0.0-46.rc4 +- Update to 2.0.0-rc4 (#1624340) + +* Mon Oct 15 2018 Ondrej Holy - 2:2.0.0-45.rc3 +- Disable server support in RHEL (#1639165) + +* Wed Oct 10 2018 Ondrej Holy - 2:2.0.0-44.rc3 +- Fix packaging issues found by rpmdiff (#1637487) + +* Tue Sep 25 2018 Ondrej Holy - 2:2.0.0-43.rc3 +- Fix important defects found by covscan (#1602500) + +* Thu Sep 06 2018 Ondrej Holy - 2:2.0.0-42.rc3 +- Update to 2.0.0-rc3 (#1624340) + +* Mon Apr 09 2018 Simone Caronni - 2:2.0.0-41.20180405gita9ecd6a +- Update to latest snapshot. + +* Wed Mar 21 2018 Simone Caronni - 2:2.0.0-40.20180320gitde83f4d +- Add PAM support (fixes freerdp-shadow-cli). Thanks Paolo Zeppegno. +- Update to latest snapshot. + +* Thu Mar 15 2018 Simone Caronni - 2:2.0.0-39.20180314gitf8baeb7 +- Update to latest snapshot. +- Fixes connection to RDP servers with the latest Microsoft patches: + https://github.com/FreeRDP/FreeRDP/issues/4449 + +* Wed Feb 07 2018 Fedora Release Engineering - 2:2.0.0-38.20180115git8f52c7e +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Karsten Hopp - 2.0.0-37git} +- use versioned build requirement on pkgconfig(openssl) to prevent using + compat-openssl10-devel instead of openssl-devel + +* Tue Jan 16 2018 Simone Caronni - 2:2.0.0-36.20180115git8f52c7e +- Update to latest snapshot. +- Make GSS support optional and disable it for now (#1534094 and FreeRDP #4348, + #1435, #4363). + +* Wed Dec 20 2017 Simone Caronni - 2:2.0.0-35.20171220gitbfe8359 +- Update to latest snapshot post 2.0.0rc1. + +* Mon Sep 11 2017 Simone Caronni - 2:2.0.0-34.20170831git3b83526 +- Update to latest snapshot. +- Trim changelog. + +* Mon Aug 07 2017 Björn Esser - 2:2.0.0-33.20170724gitf8c9f43 +- Rebuilt for AutoReq cmake-filesystem + +* Wed Aug 02 2017 Fedora Release Engineering - 2:2.0.0-32.20170724gitf8c9f43 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Simone Caronni - 2:2.0.0-31.20170724gitf8c9f43 +- Update to latest snapshot, Talos security fixes. + +* Wed Jul 26 2017 Fedora Release Engineering - 2:2.0.0-30.20170710gitf580bea +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 12 2017 Simone Caronni - 2:2.0.0-29.20170710gitf580bea +- Update to latest snapshot. + +* Mon Jun 26 2017 Simone Caronni - 2:2.0.0-28.20170623git9904c32 +- Update to latest snapshot. + +* Mon May 15 2017 Simone Caronni - 2:2.0.0-27.20170512gitb1df835 +- Update to latest snapshot. + +* Thu Apr 20 2017 Simone Caronni - 2:2.0.0-26.20170419gitbfcf8e7 +- Update to latest 2.0 snapshot. + +* Thu Apr 13 2017 Orion Poplawski - 2:2.0.0-25.20170317git8c68761 +- Install tools via make install + +* Wed Mar 22 2017 Simone Caronni - 2:2.0.0-24.20170317git8c68761 +- Update to latest snapshot. + +* Mon Mar 06 2017 Simone Caronni - 2:2.0.0-23.20170302git210de68 +- Remove shared libxfreerdp-client shared library. + +* Thu Mar 02 2017 Simone Caronni - 2:2.0.0-22.20170302git210de68 +- Move libxfreerdp-client shared object into devel subpackage. + +* Thu Mar 02 2017 Simone Caronni - 2:2.0.0-21.20170302git210de68 +- Update to latest snapshot. +- Update build requirements, tune build options. + +* Fri Feb 10 2017 Fedora Release Engineering - 2:2.0.0-20.20161228git90877f5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 09 2017 Simone Caronni - 2:2.0.0-19.20161228git90877f5 +- Update to latest snapshot.