Summary: 	Remote Desktop Connection utility
Summary(ja): 	リモートデスクトップ接続ユーティリティ
Name: 		remmina
Version: 	1.0.0
Release:        1%{?_dist_release}

Source0:	https://github.com/downloads/FreeRDP/Remmina/Remmina-%{version}.tar.gz
#VCS: git:https://github.com/FreeRDP/Remmina.git

# from lauchpad
Source10:	remmina-ja.po

# The following two patches will fix some linking errors
# https://github.com/FreeRDP/Remmina/commit/503a008e
Patch0:         remmina-1.0.0-fix-library-name.patch
# https://github.com/FreeRDP/Remmina/commit/13f20367
Patch1:         remmina-1.0.0-linker-error.patch

# The following 4 patches are needed to add clipboard support (#818155)
# https://github.com/FreeRDP/Remmina/commit/3ebdd6e7
Patch2:         remmina-1.0.0-add-clipboard-support.patch
# https://github.com/FreeRDP/Remmina/commit/97c2af8c
Patch3:         remmina-1.0.0-clipboard-bugfix.patch
# https://github.com/FreeRDP/Remmina/commit/84327f81
Patch4:         remmina-1.0.0-some-more-clipboard-fixes.patch
# https://github.com/FreeRDP/Remmina/commit/c1ef3a16
Patch5:		remmina-1.0.0-disconnect-signal-handler-after-disconnect.patch

# https://github.com/FreeRDP/Remmina/commit/6ee20289
Patch10:        remmina-1.0.0-fix-crashes-in-some-cases.patch
# https://github.com/FreeRDP/Remmina/commit/b2277827
Patch11:        remmina-1.0.0-fix-memory-leak.patch

# https://bugzilla.redhat.com/show_bug.cgi?id=819976
Patch20:        remmina-1.0.0-dsofix.patch


License: 	GPLv2+ and MIT
Group: 		Applications/Internet
URL: 		http://remmina.sourceforge.net/

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires:  gtk3-devel
BuildRequires:  vte3-devel
BuildRequires:  libgcrypt-devel
BuildRequires:  libssh-devel
BuildRequires:  avahi-ui-devel
BuildRequires:  libxkbfile-devel
BuildRequires:  desktop-file-utils
BuildRequires:  gnutls-devel
BuildRequires:  libjpeg-devel
BuildRequires:  libvncserver-devel

BuildRequires:  cmake
BuildRequires:  gettext
BuildRequires:  intltool

Obsoletes: grdc < 0.7.0
Provides: grdc = %{version}
Obsoletes: remmina-gnome <= 0.7.3

%description
Grdc is a remote desktop connection client that can view and control a
desktop session running on another system. It can connect to a VNC platform
(using libvncserver0) as well windows terminal servers (with rdesktop).


%package devel
Summary:        Development tools for remmina
Summary(ja):    remmina の開発環境
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       pkgconfig

%description devel
Header files and libraries for building a extension library for the
remmina.

%package        plugins-common
Summary:        Common files for Remmina Remote Desktop Client plugins
Summary(ja):    Remmina プラグインの共通ファイル
Group:          Applications/System
Requires:       %{name} >= 0.9

%description    plugins-common
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or 
tiny netbooks.

This package contains files shared among all plugins for the Remmina
remote desktop client.


%package        plugins-gnome
Summary:        GNOME keyring integration for Remmina Remote Desktop Client
Summary(ja):	RemminaのGNOMEキーリング統合
BuildRequires:  libgnome-keyring-devel
Group:          Applications/System
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}
Requires:       libgnome-keyring

%description    plugins-gnome
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or
tiny netbooks.

This package contains the plugin with GNOME keyring support for the
Remmina remote desktop client.


%package        plugins-nx
Summary:        NX plugin for Remmina Remote Desktop Client
Summary(ja):	RemminaのNXプラグイン
Group:          Applications/System
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}
Requires:       nx

%description    plugins-nx
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or
tiny netbooks.

This package contains the NX plugin for the Remmina remote desktop
client.


%package        plugins-rdp
Summary:        RDP plugin for Remmina Remote Desktop Client
Summary(ja):	RemminaのRDPプラグイン
Group:          Applications/System
BuildRequires:  freerdp-devel >= 1.0.1
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}
Requires:       freerdp

%description    plugins-rdp
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or
tiny netbooks.

This package contains the Remote Desktop Protocol (RDP) plugin for the
Remmina remote desktop client.


%package        plugins-telepathy
Summary:        Telepathy plugin for Remmina Remote Desktop Client
Summary(ja):	RemminaのTelepathyプラグイン
Group:          Applications/System
BuildRequires:  telepathy-glib-devel
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}

%description    plugins-telepathy
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or
tiny netbooks.

This package contains the Telepathy plugin for the Remmina remote
desktop  client.


%package        plugins-vnc
Summary:        VNC plugin for Remmina Remote Desktop Client
Summary(ja):	RemminaのVNCプラグイン
Group:          Applications/System
BuildRequires:  gnutls-devel
BuildRequires:  libjpeg-devel
BuildRequires:  libvncserver-devel
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}

%description    plugins-vnc
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or 
tiny netbooks.

This package contains the VNC plugin for the Remmina remote desktop 
client.


%package        plugins-xdmcp
Summary:        XDMCP plugin for Remmina Remote Desktop Client
Summary(ja):	RemminaのXDMCPプラグイン
Group:          Applications/System
Requires:       %{name}-plugins-common%{?_isa} = %{version}-%{release}
Requires:       xorg-x11-server-Xephyr

%description    plugins-xdmcp
Remmina is a remote desktop client written in GTK+, aiming to be
useful for system administrators and travelers, who need to work 
with lots of remote computers in front of either large monitors or 
tiny netbooks.

This package contains the XDMCP plugin for the Remmina remote desktop 
client.


%prep
%setup -qn FreeRDP-Remmina-356c033

#cp %{SOURCE10} remmina/po/ja.po

%patch0 -p1 -b .fix-library-name
%patch1 -p1 -b .linker-error

%patch2 -p1 -b .add-clipboard-support
%patch3 -p1 -b .clipboard-bugfix
%patch4 -p1 -b .some-more-clipboard-fixes
%patch5 -p1 -b .disconnect-signal-handler

%patch10 -p1 -b .fix-crashes-in-some-cases
%patch11 -p1 -b .fix-memory-leak

%patch20 -p0 -b .dsofix

# Don't hardcode libdir
sed -i "s,/lib/remmina/plugins,/%{_lib}/remmina/plugins,g" CMakeLists.txt

%build
mkdir -p build
pushd build

LDFLAGS="-Wl,-z,relro -Wl,--no-as-needed"

%cmake \
  -DWITH_PTHREAD=ON \
  -DWITH_GCRYPT=ON \
  -DWITH_LIBSSH=ON \
  -DWITH_VTE=ON \
  -DWITH_GETTEXT=ON \
  -DWITH_LIBSSH=ON \
  -DWITH_FREERDP=ON \
  -DWITH_TELEPATHY=ON \
  -DWITH_ZLIB=ON \
  -DWITH_GETTEXT=ON \
  -DWITH_AVAHI=ON \
  -DWITH_APPINDICATOR=OFF \
  -LIBVNCSERVER_INCLUDE_DIRS=%{_includedir} \
  -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
  ..

make %{?_smp_mflags}
popd

%install
rm -rf %{buildroot}
# make install DESTDIR=%{buildroot}
make install/fast DESTDIR=%{buildroot} -C build


# dirty hack as desktop file does not get built.
sed 's,^_,,g' remmina/desktop/remmina.desktop.in > remmina/desktop/remmina.desktop

# another dirty hack
mv %{buildroot}/usr/share/remmina/icons %{buildroot}/usr/share/icons

desktop-file-install --vendor="" --delete-original \
  --add-category="RemoteAccess" \
  --remove-key="Actions" \
  --dir %{buildroot}%{_datadir}/applications \
  remmina/desktop/remmina.desktop

%find_lang %{name}
%find_lang %{name}-plugins

%clean
rm -rf $RPM_BUILD_ROOT

%post
update-desktop-database -q
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null ||:
fi

%postun
update-desktop-database -q
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null ||:
fi

%posttrans
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null ||:
fi

%files -f %{name}.lang
%defattr(-,root,root,-)
# FIXME: Add NEWS if not empty
%doc remmina/AUTHORS remmina/ChangeLog remmina/COPYING README 
%{_bindir}/%{name}
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/*/*.*
%{_datadir}/%{name}/

%files devel
%defattr(-,root,root,-)
%doc
%{_includedir}/%{name}/
%{_libdir}/pkgconfig/%{name}.pc

%files plugins-common -f %{name}-plugins.lang
%defattr(-,root,root,-)
# FIXME: Add docs once there are some *proper* ones
#%doc remmina-plugins/AUTHORS remmina-plugins/COPYING
%dir %{_libdir}/remmina/
%dir %{_libdir}/remmina/plugins/

%files plugins-gnome
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugins-gnome.so

%files plugins-nx
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugin-nx.so
%{_datadir}/icons/hicolor/*/emblems/remmina-nx.png

%files plugins-rdp
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugin-rdp.so
%{_datadir}/icons/hicolor/*/emblems/remmina-rdp-ssh.png
%{_datadir}/icons/hicolor/*/emblems/remmina-rdp.png

%files plugins-telepathy
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugin-telepathy.so
#%{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.Remmina.service
#%{_datadir}/telepathy/clients/Remmina.client

%files plugins-vnc
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugin-vnc.so
%{_datadir}/icons/hicolor/*/emblems/remmina-vnc-ssh.png
%{_datadir}/icons/hicolor/*/emblems/remmina-vnc.png

%files plugins-xdmcp
%defattr(-,root,root,-)
%{_libdir}/remmina/plugins/remmina-plugin-xdmcp.so
%{_datadir}/icons/hicolor/*/emblems/remmina-xdmcp-ssh.png
%{_datadir}/icons/hicolor/*/emblems/remmina-xdmcp.png

%changelog
* Fri Oct 19 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-1
- Update to 1.0.0
- add BuildRequires
- add patches from fedora package (upstream patches)
- add subpackage for plugins

* Thu Aug 18 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.9.3-1
- new upstream release
- add BuildRequires: avahi-ui-devel, vte-devel, unique-devel, desktop-file-utils
- create devel sub package

* Wed Mar 17 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 0.7.4-1
- new upstream release with new name 'remmina'
- add Obsoletes/Provides: grdc

* Tue Sep 15 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 0.6.0-1
- initial build for Vine Linux

* Tue Jul 07 2009 slick50 <lxgator@gmail.com> 0.6.0-1pclos2009 
- new version 0.6.0

* Sun May 17 2009 don_crissti <don_crissti@gmx.com> 0.5.1-1pclos2009
- build for PCLOS

