diff options
author | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2015-10-12 16:09:01 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2015-10-26 21:37:38 +0100 |
commit | bf7d1ab47f2923852aec48ca88529e249556fb50 (patch) | |
tree | af87e84581889f013413a2e2c41253004940a023 /meta-oe/recipes-support | |
parent | aaf7140847f33b85dbe6382d4084e44e3247e34c (diff) | |
download | meta-openembedded-contrib-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')
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 34dac4b7e7..2937bc59bb 100644 --- a/meta-oe/recipes-support/freerdp/freerdp.inc +++ b/meta-oe/recipes-support/freerdp/freerdp.inc @@ -1,23 +1,39 @@ # Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved # Released under the MIT license -DESCRIPTION = "FreeRDP RDP client" +DESCRIPTION = "FreeRDP RDP client & server library" HOMEPAGE = "http://www.freerdp.com" -DEPENDS = "virtual/libx11 openssl libxcursor libxv cups alsa-lib pulseaudio pcsc-lite libxkbfile libxinerama" -SECTION = "x11/network" +DEPENDS = "openssl alsa-lib pcsc-lite" +SECTION = "net" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" inherit pkgconfig cmake -EXTRA_OECMAKE += "-DWITH_PULSEAUDIO=ON \ +EXTRA_OECMAKE += "-DWITH_ALSA=ON \ -DWITH_PCSC=ON \ - -DWITH_CUPS=ON \ -DWITH_FFMPEG=OFF \ -DWITH_CUNIT=OFF \ - -DWITH_X11=ON \ - -DWITH_XKBFILE=ON \ - -DWITH_XINERAMA=ON" + -DWITH_NEON=OFF \ + " + +PACKAGECONFIG ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\ + ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}\ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}\ + ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}\ + gstreamer cups \ + " + +X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile" +PACKAGECONFIG[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}" +PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland" +PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb" +PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam" +PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups" PACKAGES =+ "libfreerdp" @@ -26,6 +42,13 @@ FILES_libfreerdp = "${libdir}/lib*${SOLIBS}" PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" +# we will need winpr-makecert to generate TLS certificates +do_install_append () { + install -m755 winpr/tools/makecert/cli/winpr-makecert ${D}${bindir} + rm -rf ${D}/${libdir}/cmake + rm -rf ${D}/${libdir}/freerdp +} + python populate_packages_prepend () { freerdp_root = d.expand('${libdir}/freerdp') 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 0000000000..d279d6d914 --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch @@ -0,0 +1,31 @@ +From 253eafc8c8da83fc2b1a99a9e43824efc6105c7a Mon Sep 17 00:00:00 2001 +From: Manuel Bachmann <manuel.bachmann@iot.bzh> +Date: Sun, 4 Oct 2015 10:44:49 +0200 +Subject: [PATCH] winpr-makecert: Build with install RPATH + +As we are installing "winpr-makecert" manually, we do want +to refer to the library in DESTDIR, not the one resting in +the build tree. + +Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh> +--- + winpr/tools/makecert/cli/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/winpr/tools/makecert/cli/CMakeLists.txt b/winpr/tools/makecert/cli/CMakeLists.txt +index 17954c4..90c446b 100644 +--- a/winpr/tools/makecert/cli/CMakeLists.txt ++++ b/winpr/tools/makecert/cli/CMakeLists.txt +@@ -45,5 +45,9 @@ set(${MODULE_PREFIX}_LIBS winpr-makecert-tool) + + target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) + ++set_target_properties(${MODULE_NAME} PROPERTIES ++ BUILD_WITH_INSTALL_RPATH 1) ++ + set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools") + ++ +-- +1.8.3.1 + diff --git a/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-oe/recipes-support/freerdp/freerdp_git.bb index fd7f74c86f..f9cb9a6b62 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 inherit gitpkgv -PV = "1.0.2+gitr${SRCPV}" +PV = "1.2.5+gitr${SRCPV}" PKGV = "${GITPKGVTAG}" -EXTRA_OECMAKE += "-DWITH_MANPAGES=OFF" +EXTRA_OECMAKE += "-DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ + -DWITH_MANPAGES=OFF \ + " -SRCREV = "f311acaffb9190567e2b478a98d7cbfaf2709f6b" -SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-1.0" +SRCREV = "62da9d28c674814c81c245c1c7882eb0da7be76b" +SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \ + file://winpr-makecert-Build-with-install-RPATH.patch \ + " S = "${WORKDIR}/git" - -PNBLACKLIST[freerdp] ?= "Installs into double prefix, causing all files installed in /usr/usr and empty packages" -# freerdp-1.0.2+gitrAUTOINC+f311acaffb: freerdp: Files/directories were installed but not shipped -# /usr/usr -# .... |