aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorfluffy <fluffy@FreeBSD.org>2013-03-17 17:04:56 +0800
committerfluffy <fluffy@FreeBSD.org>2013-03-17 17:04:56 +0800
commit655a5c3678e2749ee18ecd026db6619551e178cc (patch)
tree53dcd78e03cac8819f293f85e0f222cee2e03651 /net
parent1837af85d84dd71aea616dd43247ba5b89f027b0 (diff)
downloadfreebsd-ports-gnome-655a5c3678e2749ee18ecd026db6619551e178cc.tar.gz
freebsd-ports-gnome-655a5c3678e2749ee18ecd026db6619551e178cc.tar.zst
freebsd-ports-gnome-655a5c3678e2749ee18ecd026db6619551e178cc.zip
- Update FreeRDP to 1.0.2 release
- Big thanks for Andriy Gapon and Koichiro IWAO for submitting patches PR: 164843 Submitted by: Andriy Gapon, Koichiro IWAO
Diffstat (limited to 'net')
-rw-r--r--net/freerdp/Makefile121
-rw-r--r--net/freerdp/distinfo4
-rw-r--r--net/freerdp/files/patch-cmake_FindFFmpeg.cmake26
-rw-r--r--net/freerdp/files/patch-libfreerdp-codec_CMakeLists.txt11
-rw-r--r--net/freerdp/files/patch-libfreerdp-codec_color.c40
-rw-r--r--net/freerdp/files/patch-libfreerdp-core_fastpath.c22
-rw-r--r--net/freerdp/files/patch-libfreerdp-core_orders.c121
-rw-r--r--net/freerdp/files/patch-libfreerdp-gdi_16bpp.c117
-rw-r--r--net/freerdp/files/patch-libfreerdp-gdi_32bpp.c117
-rw-r--r--net/freerdp/files/patch-libfreerdp-gdi_8bpp.c117
-rw-r--r--net/freerdp/pkg-descr15
-rw-r--r--net/freerdp/pkg-plist188
12 files changed, 783 insertions, 116 deletions
diff --git a/net/freerdp/Makefile b/net/freerdp/Makefile
index 4a4621e9b73c..d30c17b3e0b5 100644
--- a/net/freerdp/Makefile
+++ b/net/freerdp/Makefile
@@ -1,88 +1,107 @@
-# New ports collection makefile for: freerdp
-# Date created: 04 July 2010
-# Whom: Alexander Logvinov <avl@FreeBSD.org>
-#
+# Created by: Alexander Logvinov <avl@FreeBSD.org>
# $FreeBSD$
-#
PORTNAME= freerdp
-PORTVERSION= 0.8.2
-PORTREVISION= 1
+PORTVERSION= 1.0.2
CATEGORIES= net comms ipv6
-MASTER_SITES= SF/${PORTNAME}/0.8
MAINTAINER= fluffy@FreeBSD.org
-COMMENT= A free remote desktop protocol client
+COMMENT= A free implementation of Remote Desktop Protocol
-OPTIONS= CUPS "Enable printer support via CUPS" on \
- SOUND "Enable sound support via ALSA" on \
- SAMPLERATE "Enable libsamplerate support for sound" off
+LICENSE= AL2
+LICENSE_FILE= ${WRKSRC}/LICENSE
-GNU_CONFIGURE= yes
+USE_PKGCONFIG= build
USE_OPENSSL= yes
-USE_GNOME= gnomehack pkgconfig
USE_LDCONFIG= yes
+USE_CMAKE= yes
+USE_GITHUB= yes
+GH_ACCOUNT= FreeRDP
+GH_PROJECT= FreeRDP
+GH_COMMIT= 616aed4
+GH_TAGNAME= ${GH_COMMIT}
+GNU_CONFIGURE= yes
LDFLAGS+= -L${LOCALBASE}/lib
+CFLAGS+= -I${LOCALBASE}/include
CPPFLAGS+= -I${LOCALBASE}/include
-LICENSE= GPLv2
-LICENSE_FILE= ${WRKSRC}/COPYING
+OPTIONS_DEFINE= ALSA DIRECTFB FFMPEG PULSEAUDIO SSE X11
+OPTIONS_DEFAULT= CUPS PULSEAUDIO X11
+X11_DESC= Build FreeRDP X11 client
+DIRECTFB_DESC= Build FreeRDP DirectFB client
.include <bsd.port.options.mk>
-.if !defined(WITHOUT_IPV6)
-CONFIGURE_ARGS+=--enable-ipv6
+.if ${PORT_OPTIONS:MX11}
+USE_XORG= x11 xkbfile xcursor xextproto xv xinerama xext xcursor
+CMAKE_ARGS+= -DWITH_X11=ON
+BUILD_DEPENDS+= xmlto:${PORTSDIR}/textproc/xmlto
+MAN1= xfreerdp.1
+PLIST_SUB+= X11=""
.else
-CONFIGURE_ARGS+=--disable-ipv6
+CMAKE_ARGS+= -DWITH_X11=OFF
+PLIST_SUB+= X11="@comment "
.endif
-.if !defined(WITHOUT_ICONV)
-USE_ICONV= yes
-CONFIGURE_ARGS+=--with-libiconv-prefix=${LOCALBASE}
+.if ${PORT_OPTIONS:MDIRECTFB}
+LIB_DEPENDS+= directfb:${PORTSDIR}/devel/directfb
+CMAKE_ARGS+= -DWITH_DIRECTFB=ON
+PLIST_SUB+= DIRECTFB=""
+# currently DirectFB option fails with clang
+USE_GCC= yes
.else
-CONFIGURE_ARGS+=--disable-iconv
+PLIST_SUB+= DIRECTFB="@comment "
.endif
-.if defined(WITHOUT_X11)
-CONFIGURE_ARGS+=--with-x=no
-PLIST_SUB+= X11="@comment "
+.if ${PORT_OPTIONS:MALSA}
+PLIST_SUB+= ALSA=""
.else
-USE_XORG= x11 xcursor xextproto
-CONFIGURE_ARGS+=--with-x
-MAN1= xfreerdp.1
-PLIST_SUB+= X11=""
+PLIST_SUB+= ALSA="@comment "
+CMAKE_ARGS+= -DWITH_ALSA=OFF
.endif
-.if !defined(WITHOUT_CUPS)
-CONFIGURE_ARGS+=--with-printer=cups
-LIB_DEPENDS+= cups.2:${PORTSDIR}/print/cups-base
+.if ${PORT_OPTIONS:MFFMPEG}
+# the newer ffmpeg is prefered
+LIB_DEPENDS+= avcodec-devel:${PORTSDIR}/multimedia/ffmpeg-devel \
+ avutil-devel:${PORTSDIR}/multimedia/ffmpeg-devel
+AVCODEC_INCLUDE_DIR= ${LOCALBASE}/include/ffmpeg-devel
+AVCODEC_LIBRARY= ${LOCALBASE}/lib/ffmpeg-devel
+AVUTIL_INCLUDE_DIR= ${AVCODEC_INCLUDE_DIR}
+AVUTIL_LIBRARY= ${AVCODEC_LIBRARY}
+CFLAGS+= -I${AVCODEC_INCLUDE_DIR}
+LDFLAGS+= -I${AVCODEC_LIBRARY}
+PLIST_SUB+= FFMPEG=""
.else
-CONFIGURE_ARGS+=--with-printer=no
+CMAKE_ARGS+= -DWITH_FFMPEG=OFF
+PLIST_SUB+= FFMPEG="@comment "
.endif
-.if !defined(WITHOUT_SOUND)
-CONFIGURE_ARGS+=--with-sound=alsa
-LIB_DEPENDS+= asound.2:${PORTSDIR}/audio/alsa-lib
-PLIST_SUB+= SOUND=""
-.if !defined(WITHOUT_SAMPLERATE)
-LIB_DEPENDS+= samplerate.1:${PORTSDIR}/audio/libsamplerate
+.if ${PORT_OPTIONS:MCUPS}
+CMAKE_ARGS+= -DWITH_CUPS=ON
+LIB_DEPENDS+= cups:${PORTSDIR}/print/cups-base
.else
-CONFIGURE_ARGS+=--without-libsamplerate
+CMAKE_ARGS+= -DWITH_CUPS=OFF
.endif
+
+.if ${PORT_OPTIONS:MPULSEAUDIO}
+CMAKE_ARGS+= -DWITH_PULSEAUDIO=ON
+LIB_DEPENDS+= pulse:${PORTSDIR}/audio/pulseaudio
+PLIST_SUB+= PULSE=""
.else
-CONFIGURE_ARGS+=--with-sound=no
-PLIST_SUB+= SOUND="@comment "
+PLIST_SUB+= PULSE="@comment "
+CMAKE_ARGS+= -DWITH_PULSEAUDIO=OFF
.endif
-post-patch:
-.if defined(WITHOUT_X11)
- @${REINPLACE_CMD} -e 's|man_MANS = |man_MANS1 = |g' ${WRKSRC}/doc/Makefile.in
+.if ${PORT_OPTIONS:MSSE}
+CMAKE_ARGS+= -DWITH_SSE2=ON
+.else
+CMAKE_ARGS+= -DWITH_SSE2=OFF
.endif
- @${REINPLACE_CMD} -e 's|-ldl -lpthread|${PTHREAD_LIBS}|' \
- ${WRKSRC}/libfreerdpchanman/Makefile.in
- @${REINPLACE_CMD} -e 's|-I$$(top_builddir)|-I$$(top_builddir)/include|' \
- ${WRKSRC}/libfreerdp/Makefile.in ${WRKSRC}/libfreerdpgdi/Makefile.in \
- ${WRKSRC}/libfreerdpkbd/Makefile.in ${WRKSRC}/X11/Makefile.in
+post-extract:
+ ${REINPLACE_CMD} -e 's|$${CMAKE_INSTALL_LIBDIR}/pkgconfig|libdata/pkgconfig|' \
+ ${WRKSRC}/CMakeLists.txt
+ ${REINPLACE_CMD} -e 's|share/man/man1|man/man1|' \
+ ${WRKSRC}/client/X11/CMakeLists.txt
.include <bsd.port.mk>
diff --git a/net/freerdp/distinfo b/net/freerdp/distinfo
index 3d5996469b4b..601a1f7cca33 100644
--- a/net/freerdp/distinfo
+++ b/net/freerdp/distinfo
@@ -1,2 +1,2 @@
-SHA256 (freerdp-0.8.2.tar.gz) = 389a707b491bd1905c8395ede3df61ac73a55d866f8a56354c6442c23c8730e1
-SIZE (freerdp-0.8.2.tar.gz) = 936410
+SHA256 (freerdp-1.0.2.tar.gz) = 0b12eca36a97327a3202866a08a3afef645e4e4534dfca2138449246fac4ff6a
+SIZE (freerdp-1.0.2.tar.gz) = 3506618
diff --git a/net/freerdp/files/patch-cmake_FindFFmpeg.cmake b/net/freerdp/files/patch-cmake_FindFFmpeg.cmake
new file mode 100644
index 000000000000..ee2c89c26693
--- /dev/null
+++ b/net/freerdp/files/patch-cmake_FindFFmpeg.cmake
@@ -0,0 +1,26 @@
+--- cmake/FindFFmpeg.cmake.orig 2013-03-07 10:38:36.747254870 +0000
++++ cmake/FindFFmpeg.cmake 2013-03-07 10:42:07.891253483 +0000
+@@ -8,19 +8,19 @@
+ include(FindPkgConfig)
+
+ if (PKG_CONFIG_FOUND)
+- pkg_check_modules(AVCODEC libavcodec)
+- pkg_check_modules(AVUTIL libavutil)
++ pkg_check_modules(AVCODEC libavcodec-devel)
++ pkg_check_modules(AVUTIL libavutil-devel)
+ endif ( PKG_CONFIG_FOUND )
+
+ # avcodec
+ find_path(AVCODEC_INCLUDE_DIR avcodec.h PATHS ${AVCODEC_INCLUDE_DIRS}
+ PATH_SUFFIXES libavcodec )
+-find_library(AVCODEC_LIBRARY avcodec PATHS ${AVCODEC_LIBRARY_DIRS})
++find_library(AVCODEC_LIBRARY avcodec-devel PATHS ${AVCODEC_LIBRARY_DIRS})
+
+ # avutil
+ find_path(AVUTIL_INCLUDE_DIR avutil.h PATHS ${AVUTIL_INCLUDE_DIRS}
+ PATH_SUFFIXES libavutil )
+-find_library(AVUTIL_LIBRARY avutil PATHS ${AVUTIL_LIBRARY_DIRS})
++find_library(AVUTIL_LIBRARY avutil-devel PATHS ${AVUTIL_LIBRARY_DIRS})
+
+ if(AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY)
+ set(AVCODEC_FOUND TRUE)
diff --git a/net/freerdp/files/patch-libfreerdp-codec_CMakeLists.txt b/net/freerdp/files/patch-libfreerdp-codec_CMakeLists.txt
new file mode 100644
index 000000000000..0cc797abfd83
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-codec_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- libfreerdp-codec/CMakeLists.txt.orig 2013-01-02 21:46:59.000000000 +0000
++++ libfreerdp-codec/CMakeLists.txt 2013-02-27 09:09:10.180252424 +0000
+@@ -46,7 +46,7 @@
+ rfx_sse2.c
+ rfx_sse2.h
+ )
+- set_property(SOURCE rfx_sse2.c PROPERTY COMPILE_FLAGS "-msse2")
++ set_property(SOURCE rfx_sse2.c nsc_sse2.c PROPERTY COMPILE_FLAGS "-msse2")
+ endif()
+
+ if(WITH_NEON)
diff --git a/net/freerdp/files/patch-libfreerdp-codec_color.c b/net/freerdp/files/patch-libfreerdp-codec_color.c
new file mode 100644
index 000000000000..7dd14a9184b1
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-codec_color.c
@@ -0,0 +1,40 @@
+diff --git a/libfreerdp-codec/color.c b/libfreerdp-codec/color.c
+index dc77707..ee3c1fa 100644
+--- libfreerdp-codec/color.c
++++ libfreerdp-codec/color.c
+@@ -86,7 +86,7 @@ void freerdp_set_pixel(uint8* data, int x, int y, int width, int height, int bpp
+ }
+ }
+
+-INLINE void freerdp_color_split_rgb(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
++static INLINE void freerdp_color_split_rgb(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
+ {
+ *red = *green = *blue = 0;
+ *alpha = (clrconv->alpha) ? 0xFF : 0x00;
+@@ -137,7 +137,7 @@ INLINE void freerdp_color_split_rgb(uint32* color, int bpp, uint8* red, uint8* g
+ }
+ }
+
+-INLINE void freerdp_color_split_bgr(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
++static INLINE void freerdp_color_split_bgr(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
+ {
+ *red = *green = *blue = 0;
+ *alpha = (clrconv->alpha) ? 0xFF : 0x00;
+@@ -188,7 +188,7 @@ INLINE void freerdp_color_split_bgr(uint32* color, int bpp, uint8* red, uint8* g
+ }
+ }
+
+-INLINE void freerdp_color_make_rgb(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
++static INLINE void freerdp_color_make_rgb(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
+ {
+ switch (bpp)
+ {
+@@ -229,7 +229,7 @@ INLINE void freerdp_color_make_rgb(uint32* color, int bpp, uint8* red, uint8* gr
+ }
+ }
+
+-INLINE void freerdp_color_make_bgr(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
++static INLINE void freerdp_color_make_bgr(uint32* color, int bpp, uint8* red, uint8* green, uint8* blue, uint8* alpha, HCLRCONV clrconv)
+ {
+ switch (bpp)
+ {
diff --git a/net/freerdp/files/patch-libfreerdp-core_fastpath.c b/net/freerdp/files/patch-libfreerdp-core_fastpath.c
new file mode 100644
index 000000000000..09feb4a58ffa
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-core_fastpath.c
@@ -0,0 +1,22 @@
+diff --git a/libfreerdp-core/fastpath.c b/libfreerdp-core/fastpath.c
+index dc9caac..587c316 100644
+--- libfreerdp-core/fastpath.c
++++ libfreerdp-core/fastpath.c
+@@ -82,7 +82,7 @@ uint16 fastpath_read_header(rdpFastPath* fastpath, STREAM* s)
+ return length;
+ }
+
+-INLINE void fastpath_read_update_header(STREAM* s, uint8* updateCode, uint8* fragmentation, uint8* compression)
++static INLINE void fastpath_read_update_header(STREAM* s, uint8* updateCode, uint8* fragmentation, uint8* compression)
+ {
+ uint8 updateHeader;
+
+@@ -92,7 +92,7 @@ INLINE void fastpath_read_update_header(STREAM* s, uint8* updateCode, uint8* fra
+ *compression = (updateHeader >> 6) & 0x03;
+ }
+
+-INLINE void fastpath_write_update_header(STREAM* s, uint8 updateCode, uint8 fragmentation, uint8 compression)
++static INLINE void fastpath_write_update_header(STREAM* s, uint8 updateCode, uint8 fragmentation, uint8 compression)
+ {
+ uint8 updateHeader = 0;
+
diff --git a/net/freerdp/files/patch-libfreerdp-core_orders.c b/net/freerdp/files/patch-libfreerdp-core_orders.c
new file mode 100644
index 000000000000..ca4f8a27e83f
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-core_orders.c
@@ -0,0 +1,121 @@
+diff --git a/libfreerdp-core/orders.c b/libfreerdp-core/orders.c
+index 1ee0b89..6c33805 100644
+--- libfreerdp-core/orders.c
++++ libfreerdp-core/orders.c
+@@ -138,7 +138,7 @@ static const uint8 BMF_BPP[] =
+ 0, 1, 0, 8, 16, 24, 32
+ };
+
+-INLINE void update_read_coord(STREAM* s, sint32* coord, boolean delta)
++static INLINE void update_read_coord(STREAM* s, sint32* coord, boolean delta)
+ {
+ sint8 lsi8;
+ sint16 lsi16;
+@@ -155,7 +155,7 @@ INLINE void update_read_coord(STREAM* s, sint32* coord, boolean delta)
+ }
+ }
+
+-INLINE void update_read_color(STREAM* s, uint32* color)
++static INLINE void update_read_color(STREAM* s, uint32* color)
+ {
+ uint8 byte;
+
+@@ -167,7 +167,7 @@ INLINE void update_read_color(STREAM* s, uint32* color)
+ *color |= (byte << 16);
+ }
+
+-INLINE void update_read_colorref(STREAM* s, uint32* color)
++static INLINE void update_read_colorref(STREAM* s, uint32* color)
+ {
+ uint8 byte;
+
+@@ -180,7 +180,7 @@ INLINE void update_read_colorref(STREAM* s, uint32* color)
+ stream_seek_uint8(s);
+ }
+
+-INLINE void update_read_color_quad(STREAM* s, uint32* color)
++static INLINE void update_read_color_quad(STREAM* s, uint32* color)
+ {
+ uint8 byte;
+
+@@ -193,7 +193,7 @@ INLINE void update_read_color_quad(STREAM* s, uint32* color)
+ stream_seek_uint8(s);
+ }
+
+-INLINE void update_read_2byte_unsigned(STREAM* s, uint32* value)
++static INLINE void update_read_2byte_unsigned(STREAM* s, uint32* value)
+ {
+ uint8 byte;
+
+@@ -211,7 +211,7 @@ INLINE void update_read_2byte_unsigned(STREAM* s, uint32* value)
+ }
+ }
+
+-INLINE void update_read_2byte_signed(STREAM* s, sint32* value)
++static INLINE void update_read_2byte_signed(STREAM* s, sint32* value)
+ {
+ uint8 byte;
+ boolean negative;
+@@ -232,7 +232,7 @@ INLINE void update_read_2byte_signed(STREAM* s, sint32* value)
+ *value *= -1;
+ }
+
+-INLINE void update_read_4byte_unsigned(STREAM* s, uint32* value)
++static INLINE void update_read_4byte_unsigned(STREAM* s, uint32* value)
+ {
+ uint8 byte;
+ uint8 count;
+@@ -276,7 +276,7 @@ INLINE void update_read_4byte_unsigned(STREAM* s, uint32* value)
+ }
+ }
+
+-INLINE void update_read_delta(STREAM* s, sint32* value)
++static INLINE void update_read_delta(STREAM* s, sint32* value)
+ {
+ uint8 byte;
+
+@@ -294,7 +294,7 @@ INLINE void update_read_delta(STREAM* s, sint32* value)
+ }
+ }
+
+-INLINE void update_read_glyph_delta(STREAM* s, uint16* value)
++static INLINE void update_read_glyph_delta(STREAM* s, uint16* value)
+ {
+ uint8 byte;
+
+@@ -306,7 +306,7 @@ INLINE void update_read_glyph_delta(STREAM* s, uint16* value)
+ *value = (byte & 0x3F);
+ }
+
+-INLINE void update_seek_glyph_delta(STREAM* s)
++static INLINE void update_seek_glyph_delta(STREAM* s)
+ {
+ uint8 byte;
+
+@@ -316,7 +316,7 @@ INLINE void update_seek_glyph_delta(STREAM* s)
+ stream_seek_uint8(s);
+ }
+
+-INLINE void update_read_brush(STREAM* s, rdpBrush* brush, uint8 fieldFlags)
++static INLINE void update_read_brush(STREAM* s, rdpBrush* brush, uint8 fieldFlags)
+ {
+ if (fieldFlags & ORDER_FIELD_01)
+ stream_read_uint8(s, brush->x);
+@@ -354,7 +354,7 @@ INLINE void update_read_brush(STREAM* s, rdpBrush* brush, uint8 fieldFlags)
+ }
+ }
+
+-INLINE void update_read_delta_rects(STREAM* s, DELTA_RECT* rectangles, int number)
++static INLINE void update_read_delta_rects(STREAM* s, DELTA_RECT* rectangles, int number)
+ {
+ int i;
+ uint8 flags = 0;
+@@ -399,7 +399,7 @@ INLINE void update_read_delta_rects(STREAM* s, DELTA_RECT* rectangles, int numbe
+ }
+ }
+
+-INLINE void update_read_delta_points(STREAM* s, DELTA_POINT* points, int number, sint16 x, sint16 y)
++static INLINE void update_read_delta_points(STREAM* s, DELTA_POINT* points, int number, sint16 x, sint16 y)
+ {
+ int i;
+ uint8 flags = 0;
diff --git a/net/freerdp/files/patch-libfreerdp-gdi_16bpp.c b/net/freerdp/files/patch-libfreerdp-gdi_16bpp.c
new file mode 100644
index 000000000000..c69ea3dbd195
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-gdi_16bpp.c
@@ -0,0 +1,117 @@
+diff --git a/libfreerdp-gdi/16bpp.c b/libfreerdp-gdi/16bpp.c
+index 22b0009..46ca0df 100644
+--- libfreerdp-gdi/16bpp.c
++++ libfreerdp-gdi/16bpp.c
+@@ -878,96 +878,96 @@ int PatBlt_16bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, i
+ return 1;
+ }
+
+-INLINE void SetPixel_BLACK_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_BLACK_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = 0 */
+ *pixel = 0;
+ }
+
+-INLINE void SetPixel_NOTMERGEPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOTMERGEPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = ~(D | P) */
+ *pixel = ~(*pixel | *pen);
+ }
+
+-INLINE void SetPixel_MASKNOTPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MASKNOTPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = D & ~P */
+ *pixel &= ~(*pen);
+ }
+
+-INLINE void SetPixel_NOTCOPYPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOTCOPYPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = ~P */
+ *pixel = ~(*pen);
+ }
+
+-INLINE void SetPixel_MASKPENNOT_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MASKPENNOT_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = P & ~D */
+ *pixel = *pen & ~*pixel;
+ }
+
+-INLINE void SetPixel_NOT_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOT_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = ~D */
+ *pixel = ~(*pixel);
+ }
+
+-INLINE void SetPixel_XORPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_XORPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = D ^ P */
+ *pixel = *pixel ^ *pen;
+ }
+
+-INLINE void SetPixel_NOTMASKPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOTMASKPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = ~(D & P) */
+ *pixel = ~(*pixel & *pen);
+ }
+
+-INLINE void SetPixel_MASKPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MASKPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = D & P */
+ *pixel &= *pen;
+ }
+
+-INLINE void SetPixel_NOTXORPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOTXORPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = ~(D ^ P) */
+ *pixel = ~(*pixel ^ *pen);
+ }
+
+-INLINE void SetPixel_NOP_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_NOP_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = D */
+ }
+
+-INLINE void SetPixel_MERGENOTPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MERGENOTPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = D | ~P */
+ *pixel |= ~(*pen);
+ }
+
+-INLINE void SetPixel_COPYPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_COPYPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = P */
+ *pixel = *pen;
+ }
+
+-INLINE void SetPixel_MERGEPENNOT_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MERGEPENNOT_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = P | ~D */
+ *pixel = *pen | ~(*pixel);
+ }
+
+-INLINE void SetPixel_MERGEPEN_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_MERGEPEN_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = P | D */
+ *pixel |= *pen;
+ }
+
+-INLINE void SetPixel_WHITE_16bpp(uint16 *pixel, uint16 *pen)
++static INLINE void SetPixel_WHITE_16bpp(uint16 *pixel, uint16 *pen)
+ {
+ /* D = 1 */
+ *pixel = 0xFFFF;
diff --git a/net/freerdp/files/patch-libfreerdp-gdi_32bpp.c b/net/freerdp/files/patch-libfreerdp-gdi_32bpp.c
new file mode 100644
index 000000000000..1a7877820c67
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-gdi_32bpp.c
@@ -0,0 +1,117 @@
+diff --git a/libfreerdp-gdi/32bpp.c b/libfreerdp-gdi/32bpp.c
+index 8ed8553..0d5fbd2 100644
+--- libfreerdp-gdi/32bpp.c
++++ libfreerdp-gdi/32bpp.c
+@@ -920,96 +920,96 @@ int PatBlt_32bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, i
+ return 1;
+ }
+
+-INLINE void SetPixel_BLACK_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_BLACK_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = 0 */
+ *pixel = 0;
+ }
+
+-INLINE void SetPixel_NOTMERGEPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOTMERGEPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = ~(D | P) */
+ *pixel = ~(*pixel | *pen);
+ }
+
+-INLINE void SetPixel_MASKNOTPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MASKNOTPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = D & ~P */
+ *pixel &= ~(*pen);
+ }
+
+-INLINE void SetPixel_NOTCOPYPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOTCOPYPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = ~P */
+ *pixel = ~(*pen);
+ }
+
+-INLINE void SetPixel_MASKPENNOT_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MASKPENNOT_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = P & ~D */
+ *pixel = *pen & ~*pixel;
+ }
+
+-INLINE void SetPixel_NOT_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOT_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = ~D */
+ *pixel = ~(*pixel);
+ }
+
+-INLINE void SetPixel_XORPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_XORPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = D ^ P */
+ *pixel = *pixel ^ *pen;
+ }
+
+-INLINE void SetPixel_NOTMASKPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOTMASKPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = ~(D & P) */
+ *pixel = ~(*pixel & *pen);
+ }
+
+-INLINE void SetPixel_MASKPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MASKPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = D & P */
+ *pixel &= *pen;
+ }
+
+-INLINE void SetPixel_NOTXORPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOTXORPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = ~(D ^ P) */
+ *pixel = ~(*pixel ^ *pen);
+ }
+
+-INLINE void SetPixel_NOP_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_NOP_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = D */
+ }
+
+-INLINE void SetPixel_MERGENOTPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MERGENOTPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = D | ~P */
+ *pixel |= ~(*pen);
+ }
+
+-INLINE void SetPixel_COPYPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_COPYPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = P */
+ *pixel = *pen;
+ }
+
+-INLINE void SetPixel_MERGEPENNOT_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MERGEPENNOT_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = P | ~D */
+ *pixel = *pen | ~(*pixel);
+ }
+
+-INLINE void SetPixel_MERGEPEN_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_MERGEPEN_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = P | D */
+ *pixel |= *pen;
+ }
+
+-INLINE void SetPixel_WHITE_32bpp(uint32* pixel, uint32* pen)
++static INLINE void SetPixel_WHITE_32bpp(uint32* pixel, uint32* pen)
+ {
+ /* D = 1 */
+ *pixel = 0xFFFFFF;
diff --git a/net/freerdp/files/patch-libfreerdp-gdi_8bpp.c b/net/freerdp/files/patch-libfreerdp-gdi_8bpp.c
new file mode 100644
index 000000000000..df60570b59f2
--- /dev/null
+++ b/net/freerdp/files/patch-libfreerdp-gdi_8bpp.c
@@ -0,0 +1,117 @@
+diff --git a/libfreerdp-gdi/8bpp.c b/libfreerdp-gdi/8bpp.c
+index e10dde4..bddf327 100644
+--- libfreerdp-gdi/8bpp.c
++++ libfreerdp-gdi/8bpp.c
+@@ -793,96 +793,96 @@ int PatBlt_8bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, in
+ return 1;
+ }
+
+-INLINE void SetPixel_BLACK_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_BLACK_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = 0 */
+ *pixel = 0;
+ }
+
+-INLINE void SetPixel_NOTMERGEPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOTMERGEPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = ~(D | P) */
+ *pixel = ~(*pixel | *pen);
+ }
+
+-INLINE void SetPixel_MASKNOTPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MASKNOTPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = D & ~P */
+ *pixel &= ~(*pen);
+ }
+
+-INLINE void SetPixel_NOTCOPYPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOTCOPYPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = ~P */
+ *pixel = ~(*pen);
+ }
+
+-INLINE void SetPixel_MASKPENNOT_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MASKPENNOT_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = P & ~D */
+ *pixel = *pen & ~*pixel;
+ }
+
+-INLINE void SetPixel_NOT_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOT_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = ~D */
+ *pixel = ~(*pixel);
+ }
+
+-INLINE void SetPixel_XORPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_XORPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = D ^ P */
+ *pixel = *pixel ^ *pen;
+ }
+
+-INLINE void SetPixel_NOTMASKPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOTMASKPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = ~(D & P) */
+ *pixel = ~(*pixel & *pen);
+ }
+
+-INLINE void SetPixel_MASKPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MASKPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = D & P */
+ *pixel &= *pen;
+ }
+
+-INLINE void SetPixel_NOTXORPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOTXORPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = ~(D ^ P) */
+ *pixel = ~(*pixel ^ *pen);
+ }
+
+-INLINE void SetPixel_NOP_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_NOP_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = D */
+ }
+
+-INLINE void SetPixel_MERGENOTPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MERGENOTPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = D | ~P */
+ *pixel |= ~(*pen);
+ }
+
+-INLINE void SetPixel_COPYPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_COPYPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = P */
+ *pixel = *pen;
+ }
+
+-INLINE void SetPixel_MERGEPENNOT_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MERGEPENNOT_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = P | ~D */
+ *pixel = *pen | ~(*pixel);
+ }
+
+-INLINE void SetPixel_MERGEPEN_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_MERGEPEN_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = P | D */
+ *pixel |= *pen;
+ }
+
+-INLINE void SetPixel_WHITE_8bpp(uint8* pixel, uint8* pen)
++static INLINE void SetPixel_WHITE_8bpp(uint8* pixel, uint8* pen)
+ {
+ /* D = 1 */
+ *pixel = 0xFF;
diff --git a/net/freerdp/pkg-descr b/net/freerdp/pkg-descr
index 73d0eca5458e..c40b0cc19a5c 100644
--- a/net/freerdp/pkg-descr
+++ b/net/freerdp/pkg-descr
@@ -1,13 +1,6 @@
-FreeRDP is a fork of the rdesktop project that intends to rapidly start moving
-forward and implement features that rdesktop lacks the most.
-
-Improvements:
-
- * Support for cursors on Windows Server 2008 R2
- * Support for bitmap caching, which provides a good performance boost
- * Support for Windows Server 2008 Terminal Services Session Broker Load
- Balancing
- * New keyboard input system based on the XKB database, providing better support
- for international keyboards
+FreeRDP is a free implementation of the Remote Desktop Protocol (RDP),
+released under the Apache license. Enjoy the freedom of using your
+software wherever you want, the way you want it, in a world where
+interoperability can finally liberate your computing experience.
WWW: http://www.freerdp.com/
diff --git a/net/freerdp/pkg-plist b/net/freerdp/pkg-plist
index 7b74cc1ff267..919595087f37 100644
--- a/net/freerdp/pkg-plist
+++ b/net/freerdp/pkg-plist
@@ -1,59 +1,133 @@
-%%X11%%bin/xfreerdp
-include/freerdp/chanman.h
-include/freerdp/constants_ui.h
-include/freerdp/constants_vchan.h
+%%DIRECTFB%%bin/dfreerdp
+bin/xfreerdp
+include/freerdp/altsec.h
+include/freerdp/api.h
+include/freerdp/cache/bitmap.h
+include/freerdp/cache/brush.h
+include/freerdp/cache/cache.h
+include/freerdp/cache/glyph.h
+include/freerdp/cache/offscreen.h
+include/freerdp/cache/palette.h
+include/freerdp/cache/pointer.h
+include/freerdp/channels/channels.h
+include/freerdp/channels/wtsvc.h
+include/freerdp/codec/bitmap.h
+include/freerdp/codec/color.h
+include/freerdp/codec/nsc.h
+include/freerdp/codec/rfx.h
+include/freerdp/constants.h
include/freerdp/dvc.h
+include/freerdp/extension.h
include/freerdp/freerdp.h
-include/freerdp/kbd.h
-include/freerdp/rdpset.h
-include/freerdp/types_ui.h
-include/freerdp/vchan.h
-lib/freerdp/audin.a
-lib/freerdp/audin.la
+include/freerdp/gdi/16bpp.h
+include/freerdp/gdi/32bpp.h
+include/freerdp/gdi/8bpp.h
+include/freerdp/gdi/bitmap.h
+include/freerdp/gdi/brush.h
+include/freerdp/gdi/clipping.h
+include/freerdp/gdi/dc.h
+include/freerdp/gdi/drawing.h
+include/freerdp/gdi/gdi.h
+include/freerdp/gdi/line.h
+include/freerdp/gdi/palette.h
+include/freerdp/gdi/pen.h
+include/freerdp/gdi/region.h
+include/freerdp/gdi/shape.h
+include/freerdp/graphics.h
+include/freerdp/input.h
+include/freerdp/kbd/kbd.h
+include/freerdp/kbd/layouts.h
+include/freerdp/kbd/locales.h
+include/freerdp/kbd/vkcodes.h
+include/freerdp/listener.h
+include/freerdp/peer.h
+include/freerdp/plugins/cliprdr.h
+include/freerdp/plugins/tsmf.h
+include/freerdp/pointer.h
+include/freerdp/primary.h
+include/freerdp/rail.h
+include/freerdp/rail/icon.h
+include/freerdp/rail/rail.h
+include/freerdp/rail/window.h
+include/freerdp/rail/window_list.h
+include/freerdp/secondary.h
+include/freerdp/settings.h
+include/freerdp/svc.h
+include/freerdp/types.h
+include/freerdp/update.h
+include/freerdp/utils/args.h
+include/freerdp/utils/bitmap.h
+include/freerdp/utils/blob.h
+include/freerdp/utils/debug.h
+include/freerdp/utils/dsp.h
+include/freerdp/utils/event.h
+include/freerdp/utils/file.h
+include/freerdp/utils/hexdump.h
+include/freerdp/utils/list.h
+include/freerdp/utils/load_plugin.h
+include/freerdp/utils/memory.h
+include/freerdp/utils/mutex.h
+include/freerdp/utils/passphrase.h
+include/freerdp/utils/pcap.h
+include/freerdp/utils/print.h
+include/freerdp/utils/profiler.h
+include/freerdp/utils/rail.h
+include/freerdp/utils/rect.h
+include/freerdp/utils/registry.h
+include/freerdp/utils/semaphore.h
+include/freerdp/utils/signal.h
+include/freerdp/utils/sleep.h
+include/freerdp/utils/stopwatch.h
+include/freerdp/utils/stream.h
+include/freerdp/utils/string.h
+include/freerdp/utils/svc_plugin.h
+include/freerdp/utils/thread.h
+include/freerdp/utils/unicode.h
+include/freerdp/utils/wait_obj.h
+include/freerdp/window.h
+%%ALSA%%lib/freerdp/audin_alsa.so
+%%ALSA%%lib/freerdp/tsmf_alsa.so
+%%ALSA%%lib/freerdp/rdpsnd_alsa.so
+%%PULSE%%lib/freerdp/audin_pulse.so
+%%PULSE%%lib/freerdp/rdpsnd_pulse.so
+%%PULSE%%lib/freerdp/tsmf_pulse.so
+%%FFMPEG%%lib/freerdp/tsmf_ffmpeg.so
lib/freerdp/audin.so
-lib/freerdp/cliprdr.a
-lib/freerdp/cliprdr.la
lib/freerdp/cliprdr.so
-lib/freerdp/disk.a
-lib/freerdp/disk.la
lib/freerdp/disk.so
-lib/freerdp/drdynvc.a
-lib/freerdp/drdynvc.la
lib/freerdp/drdynvc.so
-lib/freerdp/parallel.a
-lib/freerdp/parallel.la
lib/freerdp/parallel.so
-lib/freerdp/pnpdr.a
-lib/freerdp/pnpdr.la
-lib/freerdp/pnpdr.so
-lib/freerdp/printer.a
-lib/freerdp/printer.la
lib/freerdp/printer.so
-lib/freerdp/rdpdr.a
-lib/freerdp/rdpdr.la
+lib/freerdp/rail.so
+lib/freerdp/rdpdbg.so
lib/freerdp/rdpdr.so
-%%SOUND%%lib/freerdp/rdpsnd.a
-%%SOUND%%lib/freerdp/rdpsnd.la
-%%SOUND%%lib/freerdp/rdpsnd.so
-lib/freerdp/serial.a
-lib/freerdp/serial.la
+lib/freerdp/rdpsnd.so
lib/freerdp/serial.so
-lib/libfreerdp.a
-lib/libfreerdp.la
-lib/libfreerdp.so
-lib/libfreerdp.so.0
-lib/libfreerdpchanman.a
-lib/libfreerdpchanman.la
-lib/libfreerdpchanman.so
-lib/libfreerdpchanman.so.0
-lib/libfreerdpgdi.a
-lib/libfreerdpgdi.la
-lib/libfreerdpgdi.so
-lib/libfreerdpgdi.so.0
-lib/libfreerdpkbd.a
-lib/libfreerdpkbd.la
-lib/libfreerdpkbd.so
-lib/libfreerdpkbd.so.0
+lib/freerdp/tsmf.so
+lib/libfreerdp-cache.so
+lib/libfreerdp-cache.so.1.0
+lib/libfreerdp-cache.so.1.0.2
+lib/libfreerdp-channels.so
+lib/libfreerdp-channels.so.1.0
+lib/libfreerdp-channels.so.1.0.2
+lib/libfreerdp-codec.so
+lib/libfreerdp-codec.so.1.0
+lib/libfreerdp-codec.so.1.0.2
+lib/libfreerdp-core.so
+lib/libfreerdp-core.so.1.0
+lib/libfreerdp-core.so.1.0.2
+lib/libfreerdp-gdi.so
+lib/libfreerdp-gdi.so.1.0
+lib/libfreerdp-gdi.so.1.0.2
+lib/libfreerdp-kbd.so
+lib/libfreerdp-kbd.so.1.0
+lib/libfreerdp-kbd.so.1.0.2
+lib/libfreerdp-rail.so
+lib/libfreerdp-rail.so.1.0
+lib/libfreerdp-rail.so.1.0.2
+lib/libfreerdp-utils.so
+lib/libfreerdp-utils.so.1.0
+lib/libfreerdp-utils.so.1.0.2
libdata/pkgconfig/freerdp.pc
%%DATADIR%%/keymaps/aliases
%%DATADIR%%/keymaps/amiga
@@ -66,6 +140,7 @@ libdata/pkgconfig/freerdp.pc
%%DATADIR%%/keymaps/hp
%%DATADIR%%/keymaps/ibm
%%DATADIR%%/keymaps/macintosh
+%%DATADIR%%/keymaps/macosx
%%DATADIR%%/keymaps/sgi_vndr/indigo
%%DATADIR%%/keymaps/sgi_vndr/indy
%%DATADIR%%/keymaps/sgi_vndr/iris
@@ -73,9 +148,18 @@ libdata/pkgconfig/freerdp.pc
%%DATADIR%%/keymaps/sun
%%DATADIR%%/keymaps/xfree86
%%DATADIR%%/keymaps/xfree98
-@dirrm include/freerdp
-@dirrm lib/freerdp
-@dirrm %%DATADIR%%/keymaps/sgi_vndr
-@dirrm %%DATADIR%%/keymaps/digital_vndr
-@dirrm %%DATADIR%%/keymaps
-@dirrm %%DATADIR%%
+%%DATADIR%%/keymaps/xkb.pl
+@dirrmtry include/freerdp/utils
+@dirrmtry include/freerdp/channels
+@dirrmtry include/freerdp/cache
+@dirrmtry include/freerdp/gdi
+@dirrmtry include/freerdp/kbd
+@dirrmtry include/freerdp/rail
+@dirrmtry include/freerdp/codec
+@dirrmtry include/freerdp/plugins
+@dirrmtry include/freerdp
+@dirrmtry lib/freerdp
+@dirrmtry %%DATADIR%%/keymaps/digital_vndr
+@dirrmtry %%DATADIR%%/keymaps/sgi_vndr
+@dirrmtry %%DATADIR%%/keymaps
+@dirrmtry %%DATADIR%%