[packages/freerdp] - updated to 1.0.2 - added ffmpeg patch (fixes build with ffmpeg 2+) - PLDified and completed packag
qboosh
qboosh at pld-linux.org
Thu Sep 26 19:53:18 CEST 2013
commit acdabdb6573aec8c08dc1c421f325dbcc95b7ec7
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Thu Sep 26 19:53:53 2013 +0200
- updated to 1.0.2
- added ffmpeg patch (fixes build with ffmpeg 2+)
- PLDified and completed packaging
- some subpackages for plugins with external dependencies
freerdp-ffmpeg.patch | 72 ++++++++++++++
freerdp.spec | 272 +++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 301 insertions(+), 43 deletions(-)
---
diff --git a/freerdp.spec b/freerdp.spec
index cfffc59..0711299 100644
--- a/freerdp.spec
+++ b/freerdp.spec
@@ -1,46 +1,94 @@
-# Conditional build:
#
-%bcond_with pcsc # SmartCard support via PCSC-lite library
+# Conditional build:
+%bcond_without alsa # ALSA sound support
+%bcond_without cups # CUPS printing support
+%bcond_without directfb # DirectFB client
+%bcond_without ffmpeg # FFmpeg audio/video decoding support
+%bcond_without pcsc # SmartCard support via PCSC-lite library
+%bcond_without pulseaudio # Pulseaudio sound support
+%bcond_without x11 # X11 client
+%bcond_with sse2 # SSE2 instructions
+%ifarch %{x8664} pentium4
+%define with_sse2 1
+%endif
Summary: Remote Desktop Protocol client
+Summary(pl.UTF-8): Klient protokołu RDP
Name: freerdp
-Version: 1.0.1
-Release: 0.1
-License: ASL 2.0
+Version: 1.0.2
+Release: 1
+License: Apache v2.0
Group: Applications/Communications
+Source0: http://pub.freerdp.com/releases/%{name}-%{version}.tar.gz
+# Source0-md5: 08f0e07d8d77e142f7dc39e4033a458d
+Patch0: %{name}-ffmpeg.patch
URL: http://www.freerdp.com/
-Source0: https://github.com/downloads/FreeRDP/FreeRDP/%{name}-%{version}.tar.gz
-BuildRequires: cmake
-BuildRequires: cups-devel
+%{?with_directfb:BuildRequires: DirectFB-devel}
+%{?with_alsa:BuildRequires: alsa-lib-devel}
+BuildRequires: cmake >= 2.6
+%{?with_cups:BuildRequires: cups-devel}
BuildRequires: desktop-file-utils
+%{?with_ffmpeg:BuildRequires: ffmpeg-devel}
BuildRequires: openssl-devel
%{?with_pcsc:BuildRequires: pcsc-lite-devel}
-BuildRequires: pulseaudio-devel
+BuildRequires: pkgconfig
+%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
BuildRequires: xmlto
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXcursor-devel
BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXfixes-devel
BuildRequires: xorg-lib-libXinerama-devel
+BuildRequires: xorg-lib-libXtst-devel
BuildRequires: xorg-lib-libXv-devel
BuildRequires: xorg-lib-libxkbfile
+BuildRequires: zlib-devel
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-plugins = %{version}-%{release}
+Requires: hicolor-icon-theme
Provides: xfreerdp = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-The xfreerdp Remote Desktop Protocol (RDP) client from the FreeRDP
+xfreerdp is Remote Desktop Protocol (RDP) client from the FreeRDP
project.
xfreerdp can connect to RDP servers such as Microsoft Windows
machines, xrdp and VirtualBox.
+%description -l pl.UTF-8
+xfreerdp to klient protokołu RDP (Remote Desktop Protocol) z projektu
+FreeRDP.
+
+xfreerdp może łączyć się z serwerami RDP, takimi jak maszyny z
+Microsoft Windows, xrdp oraz VirtualBox.
+
+%package dfb
+Summary: DirectFB based Remote Desktop Protocol klient
+Summary(pl.UTF-8): Klient protokołu RDP oparty na DirectFB
+Group: Applications/Communications
+Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description dfb
+DirectFB based Remote Desktop Protocol klient.
+
+dfreerdp can connect to RDP servers such as Microsoft Windows
+machines, xrdp and VirtualBox.
+
+%description -l pl.UTF-8
+Klient protokołu RDP oparty na DirectFB.
+
+dfreerdp może łączyć się z serwerami RDP, takimi jak maszyny z
+Microsoft Windows, xrdp oraz VirtualBox.
+
%package libs
Summary: Core libraries implementing the RDP protocol
-Group: Applications/Communications
+Summary(pl.UTF-8): Główne biblioteki implementujące protokół RDP
+Group: Libraries
-%description libs
+%description libs
libfreerdp-core can be embedded in applications.
libfreerdp-channels and libfreerdp-kbd might be convenient to use in X
@@ -48,27 +96,97 @@ applications together with libfreerdp-core.
libfreerdp-core can be extended with plugins handling RDP channels.
+%description libs -l pl.UTF-8
+libfreerdp-core może być osadzane w aplikacjach.
+
+libfreerdp-channels oraz libfreerdp-kbd mogą być wygodne przy użyciu
+wraz z libfreerdp-core w aplikacjach X.
+
+libfreerdp-core można rozszerzać przy użyciu wtyczek obsługujących
+kanały RDP.
+
+%package devel
+Summary: Development files for FreeRDP libraries
+Summary(pl.UTF-8): Pliki programistyczne bibliotek FreeRDP
+Group: Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description devel
+This package contains the header files for developing applications
+that use FreeRDP libraries.
+
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
+wykorzystujących biblioteki FreeRDP.
+
%package plugins
Summary: Plugins for handling the standard RDP channels
+Summary(pl.UTF-8): Wtyczki do obsługi standardowych kanałów RDP
Group: Applications/Communications
Requires: %{name}-libs = %{version}-%{release}
-%description plugins
+%description plugins
A set of plugins to the channel manager implementing the standard
virtual channels extending RDP core functionality. For instance,
sounds, clipboard sync, disk/printer redirection, etc.
-%package devel
-Summary: Development files for %{name}
-Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
+%description plugins -l pl.UTF-8
+Zestaw wtyczek zarządcy kanałów, implementujących standardowe
+kanały wirtualne rozszerzające podstawową funkcjonalność RDP -
+na przykład dźwięk, synchronizację schowka, przekierowanie
+dysku/drukarki.
+
+%package plugins-alsa
+Summary: ALSA plugins for handling RDP audio
+Summary(pl.UTF-8): Wtyczki ALSA do obsługi dźwięku RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-alsa
+ALSA plugins for handling RDP audio.
-%description devel
-The %{name}-devel package contains libraries and header files for
-developing applications that use %{name}-libs.
+%description plugins-alsa -l pl.UTF-8
+Wtyczki ALSA do obsługi dźwięku RDP.
+
+%package plugins-ffmpeg
+Summary: FFmpeg plugin for decoding RDP audio/video
+Summary(pl.UTF-8): Wtyczka FFmpeg do dekodowania dźwięku/obrazu RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-ffmpeg
+FFmpeg plugin for decoding RDP audio/video.
+
+%description plugins-ffmpeg -l pl.UTF-8
+Wtyczka FFmpeg do dekodowania dźwięku/obrazu RDP.
+
+%package plugins-pcsc
+Summary: PC/SC plugin for RDP smartcard support
+Summary(pl.UTF-8): Wtyczka PC/SC do obsługi kart procesorowych w RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-pcsc
+PC/SC plugin for RDP smartcard support.
+
+%description plugins-pcsc -l pl.UTF-8
+Wtyczka PC/SC do obsługi kart procesorowych w RDP.
+
+%package plugins-pulse
+Summary: PulseAudio plugins for handling RDP audio
+Summary(pl.UTF-8): Wtyczki PulseAudio do obsługi dźwięku RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-pulse
+PulseAudio plugins for handling RDP audio.
+
+%description plugins-pulse -l pl.UTF-8
+Wtyczki PulseAudio do obsługi dźwięku RDP.
%prep
%setup -q
+%patch0 -p1
cat << EOF > xfreerdp.desktop
[Desktop Entry]
@@ -76,6 +194,7 @@ Type=Application
Name=X FreeRDP
NoDisplay=true
Comment=Connect to RDP server and display remote desktop
+Comment[pl]=Połączenie z serwerem RDP i wyświetlanie zdalnego pulpitu
Icon=%{name}
Exec=%{_bindir}/xfreerdp
Terminal=false
@@ -85,23 +204,23 @@ EOF
%build
install -d build
cd build
-%cmake \
- -DWITH_CUPS=ON \
+%cmake .. \
+ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
+ %{!?with_alsa:-DWITH_ALSA=OFF} \
+ -DWITH_CUNIT=OFF \
+ %{!?with_cups:-DWITH_CUPS=OFF} \
+ %{?with_directfb:-DWITH_DIRECTFB=ON} \
+ %{!?with_ffmpeg:-DWITH_FFMPEG=OFF} \
%{?with_pcsc:-DWITH_PCSC=ON} \
- -DWITH_PULSEAUDIO=ON \
+ %{?with_pulseaudio:-DWITH_PULSEAUDIO=ON} \
+ -DWITH_SERVER=ON \
+ %{!?with_sse2:-DWITH_SSE2=OFF} \
-DWITH_X11=ON \
-DWITH_XCURSOR=ON \
-DWITH_XEXT=ON \
-DWITH_XINERAMA=ON \
-DWITH_XKBFILE=ON \
- -DWITH_XV=ON \
- -DWITH_ALSA=OFF \
- -DWITH_CUNIT=OFF \
- -DWITH_DIRECTFB=OFF \
- -DWITH_FFMPEG=OFF \
- -DWITH_SSE2=OFF \
- -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
- ..
+ -DWITH_XV=ON
%{__make}
@@ -121,8 +240,10 @@ install -p -D resources/FreeRDP_Icon_256px.png $RPM_BUILD_ROOT%{_datadir}/icons/
rm -rf $RPM_BUILD_ROOT
%post
-# This is no gtk application, but try to integrate nicely with GNOME if it is available
-gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%update_icon_cache hicolor
+
+%postun
+%update_icon_cache hicolor
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
@@ -130,22 +251,87 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/xfreerdp
-%{_mandir}/man1/xfreerdp.*
+%{_mandir}/man1/xfreerdp.1*
%{_desktopdir}/xfreerdp.desktop
-%{_iconsdir}/hicolor/256x256/apps/%{name}.png
+%{_iconsdir}/hicolor/256x256/apps/freerdp.png
+
+%files dfb
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/dfreerdp
%files libs
%defattr(644,root,root,755)
-%doc LICENSE README ChangeLog
-%{_libdir}/lib%{name}-*.so.*
-%dir %{_libdir}/%{name}/
+%doc ChangeLog README
+%attr(755,root,root) %{_libdir}/libfreerdp-cache.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-cache.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-channels.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-channels.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-codec.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-codec.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-core.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-core.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-gdi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-gdi.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-kbd.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-kbd.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-rail.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-rail.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-utils.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-utils.so.1.0
+%dir %{_libdir}/%{name}
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libfreerdp-cache.so
+%attr(755,root,root) %{_libdir}/libfreerdp-channels.so
+%attr(755,root,root) %{_libdir}/libfreerdp-codec.so
+%attr(755,root,root) %{_libdir}/libfreerdp-core.so
+%attr(755,root,root) %{_libdir}/libfreerdp-gdi.so
+%attr(755,root,root) %{_libdir}/libfreerdp-kbd.so
+%attr(755,root,root) %{_libdir}/libfreerdp-rail.so
+%attr(755,root,root) %{_libdir}/libfreerdp-utils.so
+%{_includedir}/freerdp
+%{_pkgconfigdir}/freerdp.pc
%files plugins
%defattr(644,root,root,755)
-%{_libdir}/%{name}/*
+%attr(755,root,root) %{_libdir}/%{name}/audin.so
+%attr(755,root,root) %{_libdir}/%{name}/cliprdr.so
+%attr(755,root,root) %{_libdir}/%{name}/disk.so
+%attr(755,root,root) %{_libdir}/%{name}/drdynvc.so
+%attr(755,root,root) %{_libdir}/%{name}/parallel.so
+%attr(755,root,root) %{_libdir}/%{name}/printer.so
+%attr(755,root,root) %{_libdir}/%{name}/rail.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpdbg.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpdr.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd.so
+%attr(755,root,root) %{_libdir}/%{name}/serial.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf.so
-%files devel
+%if %{with alsa}
+%files plugins-alsa
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audin_alsa.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd_alsa.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_alsa.so
+%endif
+
+%if %{with ffmpeg}
+%files plugins-ffmpeg
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_ffmpeg.so
+%endif
+
+%if %{with pcsc}
+%files plugins-pcsc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/scard.so
+%endif
+
+%if %{with pulseaudio}
+%files plugins-pulse
%defattr(644,root,root,755)
-%{_includedir}/%{name}/
-%{_libdir}/lib%{name}-*.so
-%{_pkgconfigdir}/%{name}.pc
+%attr(755,root,root) %{_libdir}/%{name}/audin_pulse.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd_pulse.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_pulse.so
+%endif
diff --git a/freerdp-ffmpeg.patch b/freerdp-ffmpeg.patch
new file mode 100644
index 0000000..ebf0c2d
--- /dev/null
+++ b/freerdp-ffmpeg.patch
@@ -0,0 +1,72 @@
+--- freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c.orig 2013-01-02 22:46:59.000000000 +0100
++++ freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-09-26 18:29:52.693695785 +0200
+@@ -39,7 +39,7 @@
+ ITSMFDecoder iface;
+
+ int media_type;
+- enum CodecID codec_id;
++ enum AVCodecID codec_id;
+ AVCodecContext* codec_context;
+ AVCodec* codec;
+ AVFrame* frame;
+@@ -54,7 +54,7 @@
+ {
+ TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
+
+- mdecoder->codec_context = avcodec_alloc_context();
++ mdecoder->codec_context = avcodec_alloc_context3(NULL);
+ if (!mdecoder->codec_context)
+ {
+ DEBUG_WARN("avcodec_alloc_context failed.");
+@@ -88,16 +88,6 @@
+ mdecoder->codec_context->channels = media_type->Channels;
+ mdecoder->codec_context->block_align = media_type->BlockAlign;
+
+-#ifdef AV_CPU_FLAG_SSE2
+- mdecoder->codec_context->dsp_mask = AV_CPU_FLAG_SSE2 | AV_CPU_FLAG_MMX2;
+-#else
+-#if LIBAVCODEC_VERSION_MAJOR < 53
+- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMXEXT;
+-#else
+- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMX2;
+-#endif
+-#endif
+-
+ return true;
+ }
+
+@@ -174,7 +164,7 @@
+ {
+ TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
+
+- if (avcodec_open(mdecoder->codec_context, mdecoder->codec) < 0)
++ if (avcodec_open2(mdecoder->codec_context, mdecoder->codec, NULL) < 0)
+ {
+ DEBUG_WARN("avcodec_open failed.");
+ return false;
+@@ -337,7 +327,7 @@
+ #endif
+
+ if (mdecoder->decoded_size_max == 0)
+- mdecoder->decoded_size_max = AVCODEC_MAX_AUDIO_FRAME_SIZE + 16;
++ mdecoder->decoded_size_max = 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ + 16;
+ mdecoder->decoded_data = xzalloc(mdecoder->decoded_size_max);
+ /* align the memory for SSE2 needs */
+ dst = (uint8*) (((uintptr_t)mdecoder->decoded_data + 15) & ~ 0x0F);
+@@ -348,7 +338,7 @@
+ while (src_size > 0)
+ {
+ /* Ensure enough space for decoding */
+- if (mdecoder->decoded_size_max - mdecoder->decoded_size < AVCODEC_MAX_AUDIO_FRAME_SIZE)
++ if (mdecoder->decoded_size_max - mdecoder->decoded_size < 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */)
+ {
+ mdecoder->decoded_size_max = mdecoder->decoded_size_max * 2 + 16;
+ mdecoder->decoded_data = xrealloc(mdecoder->decoded_data, mdecoder->decoded_size_max);
+@@ -499,7 +489,6 @@
+
+ if (!initialized)
+ {
+- avcodec_init();
+ avcodec_register_all();
+ initialized = true;
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/freerdp.git/commitdiff/acdabdb6573aec8c08dc1c421f325dbcc95b7ec7
More information about the pld-cvs-commit
mailing list