From c90ff24b6d68e72956a52b7d2c25f21f922b04aa Mon Sep 17 00:00:00 2001
From: Christoph Wickert <cwickert@fedoraproject.org>
Date: Mon, 16 Apr 2012 00:00:50 +0200
Subject: [PATCH] Update to 1.0.0

- Plugins are now part of this package (again)
- Fix two linker errors
- Add VCS key
---
 .gitignore   |   2 +
 remmina.spec | 251 +++++++++++++++++++++++++++++++++++++++++++++++----
 sources      |   2 +-
 3 files changed, 234 insertions(+), 21 deletions(-)

diff --git a/.gitignore b/.gitignore
index f955bda..7332920 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 remmina-0.7.5.tar.gz
 /remmina-0.9.3.tar.gz
+/remmina-20120330gitffba771d.tar.bz2
+/Remmina-1.0.0.tar.gz
diff --git a/remmina.spec b/remmina.spec
index 25ede13..64d6365 100644
--- a/remmina.spec
+++ b/remmina.spec
@@ -1,23 +1,38 @@
+# Review at https://bugzilla.redhat.com/show_bug.cgi?id=553402
+
 Name:           remmina
-Version:        0.9.3
-Release:        5%{?dist}
+Version:        1.0.0
+Release:        1%{?dist}
 Summary:        Remote Desktop Client
 
 Group:          Applications/Internet
 License:        GPLv2+ and MIT
 URL:            http://remmina.sourceforge.net
-Source0:        http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+Source0:        https://github.com/downloads/FreeRDP/Remmina/Remmina-%{version}.tar.gz
+#VCS: git:https://github.com/FreeRDP/Remmina.git
+
+# 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
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-BuildRequires:  gtk2-devel
-BuildRequires:  libssh-devel
+BuildRequires:  gtk3-devel
+BuildRequires:  libssh-devel >= 0.4.
 BuildRequires:  libgcrypt-devel
 BuildRequires:  avahi-ui-devel
-BuildRequires:  vte-devel
-BuildRequires:  unique-devel
+BuildRequires:  vte3-devel
+BuildRequires:  cmake
 BuildRequires:  gettext
 BuildRequires:  intltool
-BuildRequires:  desktop-file-utils      
+BuildRequires:  desktop-file-utils
+BuildRequires:  libxkbfile-devel
+
+BuildRequires:  gnutls-devel
+BuildRequires:  libjpeg-devel
+BuildRequires:  libvncserver-devel
 
 # Remmina used to be called grdc
 Provides:       grdc = %{version}
@@ -45,36 +60,183 @@ Please don't forget to install the plugins for the protocols you want to use.
 Summary:        Development files for %{name}
 Group:          Development/Libraries
 Requires:       %{name} = %{version}-%{release}
+Requires:       pkgconfig
 
 %description    devel
 The %{name}-devel package contains header files for developing plugins for 
 %{name}.
 
 
+%package        plugins-common
+Summary:        Common files for Remmina Remote Desktop Client plugins
+Group:          Applications/System
+Requires:       remmina >= 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
+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
+Group:          Applications/System
+Requires:       %{name}-common = %{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
+Group:          Applications/System
+BuildRequires:  freerdp-devel
+Requires:       %{name}-common = %{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
+Group:          Applications/System
+BuildRequires:  telepathy-glib-devel
+Requires:       %{name}-common = %{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
+Group:          Applications/System
+BuildRequires:  gnutls-devel
+BuildRequires:  libjpeg-devel
+BuildRequires:  libvncserver-devel
+Requires:       %{name}-common = %{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
+Group:          Applications/System
+Requires:       %{name}-common = %{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 -q
+%setup -qn FreeRDP-Remmina-356c033
+
+%patch0 -p1 -b .fix-library-name
+%patch1 -p1 -b .linker-error
 
+# Don't hardcode libdir
+sed -i "s,/lib/remmina/plugins,/%{_lib}/remmina/plugins,g" CMakeLists.txt
+
+# Don't build against bundled libvncserver
+#grep -v libvncserver remmina-plugins/CMakeLists.txt > remmina-plugins/CMakeLists.txt.new
+#mv remmina-plugins/CMakeLists.txt.new remmina-plugins/CMakeLists.txt
+#
+#rm -rf remmina-plugins/vnc/libvncserver/
 
 %build
-%configure
-make %{?_smp_mflags}
+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} \
+  ..
 
+make %{?_smp_mflags}
+popd
 
 %install
-rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT
+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-category="X-GNOME-NetworkSettings" \
-  --dir $RPM_BUILD_ROOT%{_datadir}/applications \
-  $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop
+  --remove-key="Actions" \
+  --dir %{buildroot}%{_datadir}/applications \
+  remmina/desktop/remmina.desktop
 
 %find_lang %{name}
-
+%find_lang %{name}-plugins
 
 %clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
 
 
 %post
@@ -92,18 +254,67 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 %files -f %{name}.lang
 %defattr(-,root,root,-)
-%doc AUTHORS ChangeLog COPYING README 
+# FIXME: Add NEWS if not empty
+%doc remmina/AUTHORS remmina/ChangeLog remmina/COPYING README 
 %{_bindir}/%{name}
 %{_datadir}/applications/*.desktop
-%{_datadir}/icons/hicolor/*/apps/%{name}.*
+%{_datadir}/icons/hicolor/*/*/*.*
 %{_datadir}/%{name}/
 
 %files devel
 %defattr(-,root,root,-)
 %doc
 %{_includedir}/%{name}/
+%{_libdir}/pkgconfig/remmina.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
+* Sun Apr 15 2012 Christoph Wickert <cwickert@fedoraproject.org> - 1.0.0-1
+- Update to 1.0.0
+- Plugins are now part of this package (again)
+- Fix two linker errors
+- Add VCS key
+
 * Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.3-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 
diff --git a/sources b/sources
index ba957cc..c37d06c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c87004a70ec62acbae732e8d47f71ba7  remmina-0.9.3.tar.gz
+701c540acaab961bc3adf130a2ddb8b1  Remmina-1.0.0.tar.gz