[PATCH] Fix compilation with FreeRdp 1.1 and master v2

Hardening rdp.effort at gmail.com
Fri Jan 10 02:33:06 PST 2014


The API to use remoteFx encoding has changed between master and stable 1.1
branch. This patch should fix compilation for both.
This new version adds checks for the freerdp/version.h file
---
 configure.ac         |  5 +++++
 src/compositor-rdp.c | 12 ++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/configure.ac b/configure.ac
index 571bf60..d66dbec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -204,6 +204,11 @@ AM_CONDITIONAL([ENABLE_RDP_COMPOSITOR],
 if test x$enable_rdp_compositor = xyes; then
   AC_DEFINE([BUILD_RDP_COMPOSITOR], [1], [Build the RDP compositor])
   PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp >= 1.1.0])
+
+  SAVED_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $RDP_COMPOSITOR_CFLAGS"
+  AC_CHECK_HEADERS([freerdp/version.h])
+  CPPFLAGS="$SAVED_CPPFLAGS"
 fi
 
 AC_ARG_WITH(cairo,
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index b9c36cf..7f6ce28 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -27,6 +27,14 @@
 #include <errno.h>
 #include <linux/input.h>
 
+#if HAVE_FREERDP_VERSION_H
+#include <freerdp/version.h>
+#else
+// assume it's a early 1.1 version
+#define FREERDP_MAJOR 1
+#define FREERDP_MINOR 1
+#endif
+
 #include <freerdp/freerdp.h>
 #include <freerdp/listener.h>
 #include <freerdp/update.h>
@@ -571,7 +579,11 @@ rdp_peer_context_new(freerdp_peer* client, RdpPeerContext* context)
 	context->item.peer = client;
 	context->item.flags = RDP_PEER_OUTPUT_ENABLED;
 
+#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR == 1
 	context->rfx_context = rfx_context_new();
+#else
+	context->rfx_context = rfx_context_new(TRUE);
+#endif
 	context->rfx_context->mode = RLGR3;
 	context->rfx_context->width = client->settings->DesktopWidth;
 	context->rfx_context->height = client->settings->DesktopHeight;
-- 
1.8.1.2



More information about the wayland-devel mailing list