-# 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
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]
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
%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}
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
%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