Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 609474 - net-misc/vinagre-3.22.0-r1[rdp] won't build with net-misc/freerdp-2.0.0_pre20161219
Summary: net-misc/vinagre-3.22.0-r1[rdp] won't build with net-misc/freerdp-2.0.0_pre20...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://bugzilla.gnome.org/show_bug.c...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-15 22:12 UTC by Alessandro Di Federico
Modified: 2017-08-30 07:34 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Failed build with net-misc/freerdp-2.0.0_pre20161219 (vinagre-3.22.0-r1:20170215-220843.log.gz,25.01 KB, application/gzip)
2017-02-15 22:12 UTC, Alessandro Di Federico
Details
vinagre-3.22.0-freerdp.patch (vinagre-3.22.0-freerdp.patch,3.43 KB, patch)
2017-05-14 15:14 UTC, pva
Details | Diff
vinagre-3.22.0-r1.ebuild.patch (vinagre-3.22.0-r1.ebuild.patch,674 bytes, patch)
2017-05-14 17:24 UTC, pva
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alessandro Di Federico 2017-02-15 22:12:16 UTC
Created attachment 463894 [details]
Failed build with net-misc/freerdp-2.0.0_pre20161219

Issues similar to #604258. net-misc/vinagre builds fine against net-misc/freerdp-2.0.0_pre20160722 but fails with net-misc/freerdp-2.0.0_pre20161219.

This can be fixed by setting `rdp? ( <=net-misc/freerdp-2.0.0_pre20160722 )` in RDEPEND.
Comment 1 Thomas Raschbacher gentoo-dev 2017-03-08 07:41:26 UTC
can confirm this too. compiling with net-misc/freerdp-1.2.1_pre20150326-r1 works fine
Comment 2 Carlos Jimenez 2017-03-13 00:23:17 UTC
please add this patch to get it compiled with new freerdp :::::::






============================================================



diff --git c/configure.ac i/configure.ac
index 0dfc0dbf3069a17b..35e5f7b59fe7f9a3 100644
--- c/configure.ac
+++ i/configure.ac
@@ -58,7 +58,7 @@ AS_IF([test "x$have_ssh" = "xyes"],
 AM_CONDITIONAL([VINAGRE_ENABLE_SSH], [test "x$have_ssh" = "xyes"])
 
 # Whether to enable support for RDP.
-RDP_DEPS="freerdp x11"
+RDP_DEPS="freerdp2 x11"
 AC_ARG_ENABLE([rdp],
   [AS_HELP_STRING([--disable-rdp],
     [Disable Remote Desktop Protocol (RDP) support])])
@@ -66,7 +66,7 @@ AC_ARG_ENABLE([rdp],
 AS_IF([test "x$enable_rdp" != "xno"],
   [PKG_CHECK_EXISTS([$RDP_DEPS],
     [have_rdp=yes
-     PKG_CHECK_EXISTS(freerdp >= 1.1,
+     PKG_CHECK_EXISTS(freerdp2 >= 1.1,
        [AC_DEFINE([HAVE_FREERDP_1_1], [1], [FreeRDP is of version 1.1 or newer])], [])],
     [have_rdp=no])],
   [have_rdp=no])
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
Comment 3 Charlie Gehlin 2017-03-23 08:32:16 UTC
Confirming hitting bug. Patch works (replaces earlier vinagre-3.20.2-freerdp2.patch), thank you Mr. Jimenez. Vote +1
Comment 4 pva 2017-05-14 15:14:00 UTC
Created attachment 472588 [details, diff]
vinagre-3.22.0-freerdp.patch

I confirm that suggested makes build succeed. The only thing that needs to be modified - there is no need in patching configure.ac, since another patch, from https://bugzilla.gnome.org/show_bug.cgi?id=765444 was applied already.
Comment 5 pva 2017-05-14 17:24:30 UTC
Created attachment 472600 [details, diff]
vinagre-3.22.0-r1.ebuild.patch

Patch for ebuild.
Comment 6 Gilles Dartiguelongue (RETIRED) gentoo-dev 2017-08-30 07:34:50 UTC
commit 96645c4e78bb42991eb98af63db8e54ac1007c20
Date:   Wed Aug 30 09:30:26 2017 +0200

    net-misc/vinagre: fix build with newer freerdp snapshots, bug #609474
    
    Package-Manager: Portage-2.3.8, Repoman-2.3.3

Thanks for reporting and the patch.