summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/freerdp
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2015-10-12 16:09:01 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2015-10-26 21:37:38 +0100
commitbf7d1ab47f2923852aec48ca88529e249556fb50 (patch)
treeaf87e84581889f013413a2e2c41253004940a023 /meta-oe/recipes-support/freerdp
parentaaf7140847f33b85dbe6382d4084e44e3247e34c (diff)
downloadmeta-openembedded-bf7d1ab47f2923852aec48ca88529e249556fb50.tar.gz
freerdp: get out of PNBLACKLIST, fix build, improve
We make the "freerdp" recipe active again, fix the build by pulling a more recent version (the "stable" branches are buggy and useless), and fix ARM runtime with -fPIC. We can then : - make X11 non-mandatory ; - add support for Wayland ("wlfreerdp" client) ; - add support for DirectFB ("dfreerdp" client) ; - add support for GStreamer 1.0 ; - make "heavy" features such as pulseaudio, cups... non-mandatory. We really want to install the "winpr-makecert" tool to have TLS, but CMake does not position its RPATH cleanly, so let us have a custom patch for that until it gets sorted out. Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support/freerdp')
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp.inc39
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch31
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp_git.bb18
3 files changed, 71 insertions, 17 deletions
diff --git a/meta-oe/recipes-support/freerdp/freerdp.inc b/meta-oe/recipes-support/freerdp/freerdp.inc
index 34dac4b7e..2937bc59b 100644
--- a/meta-oe/recipes-support/freerdp/freerdp.inc
+++ b/meta-oe/recipes-support/freerdp/freerdp.inc
@@ -1,23 +1,39 @@
1# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved 1# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
2# Released under the MIT license 2# Released under the MIT license
3 3
4DESCRIPTION = "FreeRDP RDP client" 4DESCRIPTION = "FreeRDP RDP client & server library"
5HOMEPAGE = "http://www.freerdp.com" 5HOMEPAGE = "http://www.freerdp.com"
6DEPENDS = "virtual/libx11 openssl libxcursor libxv cups alsa-lib pulseaudio pcsc-lite libxkbfile libxinerama" 6DEPENDS = "openssl alsa-lib pcsc-lite"
7SECTION = "x11/network" 7SECTION = "net"
8LICENSE = "Apache-2.0" 8LICENSE = "Apache-2.0"
9LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 9LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
10 10
11inherit pkgconfig cmake 11inherit pkgconfig cmake
12 12
13EXTRA_OECMAKE += "-DWITH_PULSEAUDIO=ON \ 13EXTRA_OECMAKE += "-DWITH_ALSA=ON \
14 -DWITH_PCSC=ON \ 14 -DWITH_PCSC=ON \
15 -DWITH_CUPS=ON \
16 -DWITH_FFMPEG=OFF \ 15 -DWITH_FFMPEG=OFF \
17 -DWITH_CUNIT=OFF \ 16 -DWITH_CUNIT=OFF \
18 -DWITH_X11=ON \ 17 -DWITH_NEON=OFF \
19 -DWITH_XKBFILE=ON \ 18 "
20 -DWITH_XINERAMA=ON" 19
20PACKAGECONFIG ??= " \
21 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\
22 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\
23 ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}\
24 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}\
25 ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}\
26 gstreamer cups \
27 "
28
29X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
30PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
31PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland"
32PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
33PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
34PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
35PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
36PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
21 37
22PACKAGES =+ "libfreerdp" 38PACKAGES =+ "libfreerdp"
23 39
@@ -26,6 +42,13 @@ FILES_libfreerdp = "${libdir}/lib*${SOLIBS}"
26 42
27PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" 43PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
28 44
45# we will need winpr-makecert to generate TLS certificates
46do_install_append () {
47 install -m755 winpr/tools/makecert/cli/winpr-makecert ${D}${bindir}
48 rm -rf ${D}/${libdir}/cmake
49 rm -rf ${D}/${libdir}/freerdp
50}
51
29python populate_packages_prepend () { 52python populate_packages_prepend () {
30 freerdp_root = d.expand('${libdir}/freerdp') 53 freerdp_root = d.expand('${libdir}/freerdp')
31 54
diff --git a/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
new file mode 100644
index 000000000..d279d6d91
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
@@ -0,0 +1,31 @@
1From 253eafc8c8da83fc2b1a99a9e43824efc6105c7a Mon Sep 17 00:00:00 2001
2From: Manuel Bachmann <manuel.bachmann@iot.bzh>
3Date: Sun, 4 Oct 2015 10:44:49 +0200
4Subject: [PATCH] winpr-makecert: Build with install RPATH
5
6As we are installing "winpr-makecert" manually, we do want
7to refer to the library in DESTDIR, not the one resting in
8the build tree.
9
10Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
11---
12 winpr/tools/makecert/cli/CMakeLists.txt | 4 ++++
13 1 file changed, 4 insertions(+)
14
15diff --git a/winpr/tools/makecert/cli/CMakeLists.txt b/winpr/tools/makecert/cli/CMakeLists.txt
16index 17954c4..90c446b 100644
17--- a/winpr/tools/makecert/cli/CMakeLists.txt
18+++ b/winpr/tools/makecert/cli/CMakeLists.txt
19@@ -45,5 +45,9 @@ set(${MODULE_PREFIX}_LIBS winpr-makecert-tool)
20
21 target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
22
23+set_target_properties(${MODULE_NAME} PROPERTIES
24+ BUILD_WITH_INSTALL_RPATH 1)
25+
26 set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
27
28+
29--
301.8.3.1
31
diff --git a/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-oe/recipes-support/freerdp/freerdp_git.bb
index fd7f74c86..f9cb9a6b6 100644
--- a/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ b/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -5,17 +5,17 @@ include freerdp.inc
5 5
6inherit gitpkgv 6inherit gitpkgv
7 7
8PV = "1.0.2+gitr${SRCPV}" 8PV = "1.2.5+gitr${SRCPV}"
9PKGV = "${GITPKGVTAG}" 9PKGV = "${GITPKGVTAG}"
10 10
11EXTRA_OECMAKE += "-DWITH_MANPAGES=OFF" 11EXTRA_OECMAKE += "-DBUILD_STATIC_LIBS=OFF \
12 -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
13 -DWITH_MANPAGES=OFF \
14 "
12 15
13SRCREV = "f311acaffb9190567e2b478a98d7cbfaf2709f6b" 16SRCREV = "62da9d28c674814c81c245c1c7882eb0da7be76b"
14SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-1.0" 17SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
18 file://winpr-makecert-Build-with-install-RPATH.patch \
19 "
15 20
16S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
17
18PNBLACKLIST[freerdp] ?= "Installs into double prefix, causing all files installed in /usr/usr and empty packages"
19# freerdp-1.0.2+gitrAUTOINC+f311acaffb: freerdp: Files/directories were installed but not shipped
20# /usr/usr
21# ....