commit:     96645c4e78bb42991eb98af63db8e54ac1007c20
Author:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 30 07:30:26 2017 +0000
Commit:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Wed Aug 30 07:33:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96645c4e

net-misc/vinagre: fix build with newer freerdp snapshots, bug #609474

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 .../vinagre/files/vinagre-3.22.0-freerdp2-2.patch  | 117 +++++++++++++++++++++
 net-misc/vinagre/vinagre-3.22.0-r2.ebuild          |  70 ++++++++++++
 2 files changed, 187 insertions(+)

diff --git a/net-misc/vinagre/files/vinagre-3.22.0-freerdp2-2.patch 
b/net-misc/vinagre/files/vinagre-3.22.0-freerdp2-2.patch
new file mode 100644
index 00000000000..6c22b46b258
--- /dev/null
+++ b/net-misc/vinagre/files/vinagre-3.22.0-freerdp2-2.patch
@@ -0,0 +1,117 @@
+Fix build issue with freerdp2
+
+Gnome-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=765444
+Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=609474
+
+diff --git c/plugins/rdp/vinagre-rdp-tab.c i/plugins/rdp/vinagre-rdp-tab.c
+index b731f9b20ec910cc..13100de3dc0e07e1 100644
+--- c/plugins/rdp/vinagre-rdp-tab.c
++++ i/plugins/rdp/vinagre-rdp-tab.c
+@@ -476,16 +476,17 @@ frdp_drawing_area_draw (GtkWidget *area,
+   return TRUE;
+ }
+ 
+-static void
++static BOOL
+ frdp_begin_paint (rdpContext *context)
+ {
+   rdpGdi *gdi = context->gdi;
+ 
+   gdi->primary->hdc->hwnd->invalid->null = 1;
+   gdi->primary->hdc->hwnd->ninvalid = 0;
++  return TRUE;
+ }
+ 
+-static void
++static BOOL
+ frdp_end_paint (rdpContext *context)
+ {
+   VinagreRdpTab        *rdp_tab = ((frdpContext *) context)->rdp_tab;
+@@ -495,7 +496,7 @@ frdp_end_paint (rdpContext *context)
+   gint                  x, y, w, h;
+ 
+   if (gdi->primary->hdc->hwnd->invalid->null)
+-    return;
++    return TRUE;
+ 
+   x = gdi->primary->hdc->hwnd->invalid->x;
+   y = gdi->primary->hdc->hwnd->invalid->y;
+@@ -517,6 +518,7 @@ frdp_end_paint (rdpContext *context)
+     {
+       gtk_widget_queue_draw_area (priv->display, x, y, w, h);
+     }
++  return TRUE;
+ }
+ 
+ static BOOL
+@@ -587,15 +589,7 @@ frdp_post_connect (freerdp *instance)
+   rdpGdi               *gdi;
+   int                   stride;
+ 
+-  gdi_init (instance,
+-#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \
+-    !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && \
+-    FREERDP_VERSION_MINOR >= 2))
+-                    CLRBUF_24BPP,
+-#else
+-                    CLRBUF_32BPP,
+-#endif
+-                    NULL);
++  gdi_init (instance, PIXEL_FORMAT_BGRA32);
+   gdi = instance->context->gdi;
+ 
+   instance->update->BeginPaint = frdp_begin_paint;
+@@ -934,11 +928,13 @@ frdp_authenticate (freerdp  *instance,
+   return TRUE;
+ }
+ 
+-static BOOL
++static DWORD
+ frdp_certificate_verify (freerdp *instance,
+-                         char    *subject,
+-                         char    *issuer,
+-                         char    *fingerprint)
++                         const char *common_name,
++                         const char *subject,
++                         const char *issuer,
++                         const char *fingerprint,
++                         BOOL host_mismatch)
+ {
+   VinagreTab *tab = VINAGRE_TAB (((frdpContext *) 
instance->context)->rdp_tab);
+   GtkBuilder *builder;
+@@ -968,17 +964,20 @@ frdp_certificate_verify (freerdp *instance,
+   gtk_widget_hide (dialog);
+ 
+ 
+-  return response == GTK_RESPONSE_YES;
++  return (response == GTK_RESPONSE_YES) ? 1 : 0;
+ }
+ 
+ 
+ #if HAVE_FREERDP_1_1
+-static BOOL
++static DWORD
+ frdp_changed_certificate_verify (freerdp *instance,
+-                                 char    *subject,
+-                                 char    *issuer,
+-                                 char    *new_fingerprint,
+-                                 char    *old_fingerprint)
++                                 const char *common_name,
++                                 const char *subject,
++                                 const char *issuer,
++                                 const char *new_fingerprint,
++                                 const char *old_subject,
++                                 const char *old_issuer,
++                                 const char *old_fingerprint)
+ {
+   VinagreTab *tab = VINAGRE_TAB (((frdpContext *) 
instance->context)->rdp_tab);
+   GtkBuilder *builder;
+@@ -1023,7 +1022,7 @@ frdp_changed_certificate_verify (freerdp *instance,
+   gtk_widget_hide (dialog);
+ 
+ 
+-  return response == GTK_RESPONSE_YES;
++  return (response == GTK_RESPONSE_YES) ? 1 : 0;
+ }
+ #endif
+ 

diff --git a/net-misc/vinagre/vinagre-3.22.0-r2.ebuild 
b/net-misc/vinagre/vinagre-3.22.0-r2.ebuild
new file mode 100644
index 00000000000..93fecd7376a
--- /dev/null
+++ b/net-misc/vinagre/vinagre-3.22.0-r2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools gnome2 linux-info vala
+
+DESCRIPTION="VNC client for the GNOME desktop"
+HOMEPAGE="https://wiki.gnome.org/Apps/Vinagre";
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE="rdp +ssh spice +telepathy zeroconf"
+
+# cairo used in vinagre-tab
+# gdk-pixbuf used all over the place
+RDEPEND="
+       >=dev-libs/glib-2.32.0:2
+       >=x11-libs/gtk+-3.9.6:3
+       app-crypt/libsecret
+       >=dev-libs/libxml2-2.6.31:2
+       >=net-libs/gtk-vnc-0.4.3[gtk3]
+       x11-libs/cairo:=
+       x11-libs/gdk-pixbuf:2
+       x11-themes/hicolor-icon-theme
+
+       rdp? ( >=net-misc/freerdp-1.1:= )
+       ssh? ( >=x11-libs/vte-0.20:2.91 )
+       spice? (
+               app-emulation/spice-protocol
+               >=net-misc/spice-gtk-0.5[gtk3] )
+       telepathy? (
+               dev-libs/dbus-glib
+               >=net-libs/telepathy-glib-0.11.6 )
+       zeroconf? ( >=net-dns/avahi-0.6.26[dbus,gtk3] )
+"
+DEPEND="${RDEPEND}
+       $(vala_depend)
+       app-text/yelp-tools
+       dev-libs/appstream-glib
+       >=dev-util/intltool-0.50
+       >=sys-devel/gettext-0.17
+       virtual/pkgconfig
+
+       gnome-base/gnome-common
+"
+# gnome-base/gnome-common needed for eautoreconf
+pkg_pretend() {
+       # Needed for VNC ssh tunnel, bug #518574
+       CONFIG_CHECK="~IPV6"
+       check_extra_config
+}
+
+src_prepare() {
+       # https://bugzilla.gnome.org/show_bug.cgi?id=765444
+       eapply "${FILESDIR}"/${PN}-3.20.2-freerdp2.patch
+       eapply "${FILESDIR}"/${PN}-3.22.0-freerdp2-2.patch
+       vala_src_prepare
+       eautoreconf
+       gnome2_src_prepare
+}
+
+src_configure() {
+       gnome2_src_configure \
+               $(use_enable rdp) \
+               $(use_enable ssh) \
+               $(use_enable spice) \
+               $(use_with telepathy) \
+               $(use_with zeroconf avahi)
+}

Reply via email to