weston: new freerdp backend (branch yem/freerdp)
v5 cover weston: new freerdp backend (branch yem/freerdp)
Hello All!
This series adds the RDP backend to Weston. As a side effect, it cleans up and enhances FreeRDP.
Changes v4 -> v5:
- bump version to fix builds against newer cmake (Thomas)
- add more conditional options (parts from Thomas)
- get rid of a developer-related comment (Thomas)
Changes v3 -> v4:
- re-order arch-specific options for ease of review
- rebase; drop applied patch about man pages (Thomas)
Changes v2 -> v3:
- rework completely the depednencies on X11 libraries (Samuel)
- only install keys when the server is enabled (Samuel)
Changes v1 -> v2:
- new package python-lxml, needed for opengl-registry (Tomas P.)
- cleanup opengl-registry and nvidia-driver (Thomas P.)
- drop applied patches (Thomas P.)
Regards,
Yann E. MORIN.
The following changes since commit 7b9285a8748cb4bd6f301603ef688eb6be025a39:
package/nvidia-driver: build the kernel module (2015-02-21 23:28:51 +0100)
are available in the git repository at:
git://git.busybox.net/~ymorin/git/buildroot yem/freerdp
for you to fetch changes up to 3c9c14cd7d1baa7a1fbe865c0df0a8a7e2541b4b:
package/weston: add support for the RDP compositor (2015-02-21 23:31:43 +0100)
----------------------------------------------------------------
Yann E. MORIN (11):
package/freerdp: bump version
package/freerdp: conditionally build gstreamer support package/freerdp: conditionally build support for libXi package/freerdp: conditionally build support for libXrender package/freerdp: avoid development warning package/freerdp: do not forcibly depend on X.Org package/freerdp: move architecture-specific block package/freerdp: add options to enable/disable server and/or client package/freerdp: also install to staging package/freerdp: install server key and certificate package/weston: add support for the RDP compositor
package/Config.in | 2 +- package/freerdp/Config.in | 29 ++++- .../freerdp-0002-fix-building-shared-libs.patch | 23 ++++ package/freerdp/freerdp.mk | 131 ++++++++++++++++++--- package/weston/Config.in | 17 +++ package/weston/weston.mk | 7 ++ 6 files changed, 187 insertions(+), 22 deletions(-) create mode 100644 package/freerdp/freerdp-0002-fix-building-shared-libs.patch
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 1/11 package/freerdp: bump version
Since we bumped to CMake-3.1, the build of FreeRDP is broken:
CMake Error at channels/client/CMakeLists.txt:33 (list):
list sub-command REMOVE_DUPLICATES requires list to be present.
This has been fixed upstream, so just bump the version to get that fix.
--- package/freerdp/freerdp.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/freerdp/freerdp.mk +1 -1
@@ -5,7 +5,7 @@ ################################################################################ # Changeset on the stable-1.1 branch -FREERDP_VERSION = 440916eae2e07463912d5fe507677e67096eb083 +FREERDP_VERSION = b21ff842ef3de5837513042dc30488b12bd9cf9d FREERDP_SITE = $(call github,FreeRDP,FreeRDP,$(FREERDP_VERSION)) FREERDP_DEPENDENCIES = openssl zlib \ xlib_libX11 xlib_libXt xlib_libXext xlib_libXcursor
Signature · 1 line
1.9.1
PATCH v5 1/11 package/freerdp: bump version
Dear Yann E. MORIN,
package/freerdp/freerdp.mk line 8
Quoted 10 lines · Yann E. MORIN
package/freerdp/freerdp.mk +1
-1@@ -5,7 +5,7 @@ ################################################################################ # Changeset on the stable-1.1 branch -FREERDP_VERSION = 440916eae2e07463912d5fe507677e67096eb083 +FREERDP_VERSION = b21ff842ef3de5837513042dc30488b12bd9cf9d
Not sure if it's directly related, but it looks like it is: this new version of freerdp is breaking the build of VLC:
http://autobuild.buildroot.org/?reason=vlc-2.1.6
According to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758382,
bumping VLC to 2.2.0 fixes the problem, as it supports the new FreeRDP version properly.
Can you have a look?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 1/11 package/freerdp: bump version
Thomas, All,
On 2015-03-04 12:02 +0100, Thomas Petazzoni spake thusly:
Quoted 16 lines · Yann E. MORIN
package/freerdp/freerdp.mk line 8
Quoted 11 lines
package/freerdp/freerdp.mk +1
-1@@ -5,7 +5,7 @@ ################################################################################ # Changeset on the stable-1.1 branch -FREERDP_VERSION = 440916eae2e07463912d5fe507677e67096eb083 +FREERDP_VERSION = b21ff842ef3de5837513042dc30488b12bd9cf9dNot sure if it's directly related, but it looks like it is: this new version of freerdp is breaking the build of VLC:
Quoted 7 lines
http://autobuild.buildroot.org/?reason=vlc-2.1.6
According to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758382,
bumping VLC to 2.2.0 fixes the problem, as it supports the new FreeRDP version properly.Can you have a look?
Yup, I'm on it. Thanks for the hint! ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 2/11 package/freerdp: conditionally build gstreamer support
In reply to Yann E. MORINAvoid a warning at configure time when gstreamer is missing.
--- package/freerdp/freerdp.mk | 7 +++++++ 1 file changed, 7 insertions(+)
package/freerdp/freerdp.mk +7 -0
@@ -14,6 +14,13 @@ FREERDP_LICENSE_FILES = LICENSE FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF +ifeq ($(BR2_PACKAGE_GSTREAMER),y) +FREERDP_CONF_OPTS += -DWITH_GSTREAMER=ON +FREERDP_DEPENDENCIES += gstreamer +else +FREERDP_CONF_OPTS += -DWITH_GSTREAMER=OFF +endif + ifeq ($(BR2_PACKAGE_CUPS),y) FREERDP_CONF_OPTS += -DWITH_CUPS=ON FREERDP_DEPENDENCIES += cups
Signature · 1 line
1.9.1
PATCH v5 3/11 package/freerdp: conditionally build support for libXi
In reply to Yann E. MORIN--- package/freerdp/freerdp.mk | 7 +++++++ 1 file changed, 7 insertions(+)
package/freerdp/freerdp.mk +7 -0
@@ -49,6 +49,13 @@ else FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) +FREERDP_CONF_OPTS += -DWITH_XI=ON +FREERDP_DEPENDENCIES += xlib_libXi +else +FREERDP_CONF_OPTS += -DWITH_XI=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON FREERDP_DEPENDENCIES += xlib_libXinerama
Signature · 1 line
1.9.1
PATCH v5 4/11 package/freerdp: conditionally build support for libXrender
In reply to Yann E. MORIN--- package/freerdp/freerdp.mk | 7 +++++++ 1 file changed, 7 insertions(+)
package/freerdp/freerdp.mk +7 -0
@@ -70,6 +70,13 @@ else FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) +FREERDP_CONF_OPTS += -DWITH_XRENDER=ON +FREERDP_DEPENDENCIES += xlib_libXrender +else +FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y) FREERDP_CONF_OPTS += -DWITH_XV=ON FREERDP_DEPENDENCIES += xlib_libXv
Signature · 1 line
1.9.1
PATCH v5 5/11 package/freerdp: avoid development warning
In reply to Yann E. MORINFreeRDP still uses old-style variables (about linking interfaces), and that causes a warning, which explicitly states it is targeted at developers:
Policy CMP0022 is not set: INTERFACE_LINK_LIBRARIES defines the link interface. Run "cmake --help-policy CMP0022" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
Target "freerdp-client" has an INTERFACE_LINK_LIBRARIES property which differs from its LINK_INTERFACE_LIBRARIES properties.
INTERFACE_LINK_LIBRARIES:
[elided list of stuff]
LINK_INTERFACE_LIBRARIES:
This warning is for project developers. Use -Wno-dev to suppress it.
So, just get rid of it as instructed in that warning message itself.
--- package/freerdp/freerdp.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/freerdp/freerdp.mk +1 -1
@@ -12,7 +12,7 @@ FREERDP_DEPENDENCIES = openssl zlib \ FREERDP_LICENSE = Apache-2.0 FREERDP_LICENSE_FILES = LICENSE -FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF +FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev ifeq ($(BR2_PACKAGE_GSTREAMER),y) FREERDP_CONF_OPTS += -DWITH_GSTREAMER=ON
Signature · 1 line
1.9.1
PATCH v5 6/11 package/freerdp: do not forcibly depend on X.Org
In reply to Yann E. MORINIt is possible to build the libfreerdp standalone, without X.Org. Having a libfreerdp will be usefull for the weston RDP compositor.
So, only select the strictly required X.Org library if X.Org is enabled, and only build with Xcursor if it is enabled. Drop dependency on other X.Org libraries, as they are not strictly required (or get pulled as dependencies of the mandatory libXext).
Re-order the menuconfig, as freerdp is no longer an X-only application.
--- package/Config.in | 2 +- package/freerdp/Config.in | 6 +----- package/freerdp/freerdp.mk | 17 +++++++++++++++-- 3 files changed, 17 insertions(+), 8 deletions(-)
package/Config.in +1 -1
@@ -207,6 +207,7 @@ endif source "package/fb-test-app/Config.in" source "package/fbterm/Config.in" source "package/fbv/Config.in" + source "package/freerdp/Config.in" source "package/imagemagick/Config.in" source "package/linux-fusion/Config.in" source "package/lite/Config.in"
@@ -244,7 +245,6 @@ comment "X applications" source "package/dillo/Config.in" source "package/docker/Config.in" source "package/feh/Config.in" - source "package/freerdp/Config.in" source "package/gmpc/Config.in" source "package/gqview/Config.in" source "package/gtkperf/Config.in"
package/freerdp/Config.in +1 -5
@@ -1,12 +1,8 @@ config BR2_PACKAGE_FREERDP bool "freerdp" select BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_XLIB_LIBX11 - select BR2_PACKAGE_XLIB_LIBXT - select BR2_PACKAGE_XLIB_LIBXEXT - select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_ZLIB - depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 help FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license
package/freerdp/freerdp.mk +15 -2
@@ -7,8 +7,7 @@ # Changeset on the stable-1.1 branch FREERDP_VERSION = b21ff842ef3de5837513042dc30488b12bd9cf9d FREERDP_SITE = $(call github,FreeRDP,FreeRDP,$(FREERDP_VERSION)) -FREERDP_DEPENDENCIES = openssl zlib \ - xlib_libX11 xlib_libXt xlib_libXext xlib_libXcursor +FREERDP_DEPENDENCIES = openssl zlib FREERDP_LICENSE = Apache-2.0 FREERDP_LICENSE_FILES = LICENSE
@@ -49,6 +48,20 @@ else FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) +FREERDP_DEPENDENCIES += xlib_libXext +FREERDP_CONF_OPTS += -DWITH_X11=ON +else +FREERDP_CONF_OPTS += -DWITH_X11=OFF +endif + +ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) +FREERDP_CONF_OPTS += -DWITH_XCURSOR=ON +FREERDP_DEPENDENCIES += xlib_libXcursor +else +FREERDP_CONF_OPTS += -DWITH_XCURSOR=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) FREERDP_CONF_OPTS += -DWITH_XI=ON FREERDP_DEPENDENCIES += xlib_libXi
Signature · 1 line
1.9.1
PATCH v5 7/11 package/freerdp: move architecture-specific block
In reply to Yann E. MORINMove the arch-spcific block up, so it does not interfere with followup patches (mostly to ease review).
--- package/freerdp/freerdp.mk | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-)
package/freerdp/freerdp.mk +16 -16
@@ -48,6 +48,22 @@ else FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=OFF endif +ifeq ($(BR2_ARM_CPU_HAS_NEON),y) +FREERDP_CONF_OPTS += -DWITH_NEON=ON +else +FREERDP_CONF_OPTS += -DWITH_NEON=OFF +endif + +ifeq ($(BR2_X86_CPU_HAS_SSE2),y) +FREERDP_CONF_OPTS += -DWITH_SSE2=ON +else +FREERDP_CONF_OPTS += -DWITH_SSE2=OFF +endif + +ifeq ($(BR2_arm)$(BR2_armeb),y) +FREERDP_CONF_OPTS += -DARM_FP_ABI=$(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) FREERDP_DEPENDENCIES += xlib_libXext FREERDP_CONF_OPTS += -DWITH_X11=ON
@@ -97,20 +113,4 @@ else FREERDP_CONF_OPTS += -DWITH_XV=OFF endif -ifeq ($(BR2_ARM_CPU_HAS_NEON),y) -FREERDP_CONF_OPTS += -DWITH_NEON=ON -else -FREERDP_CONF_OPTS += -DWITH_NEON=OFF -endif - -ifeq ($(BR2_X86_CPU_HAS_SSE2),y) -FREERDP_CONF_OPTS += -DWITH_SSE2=ON -else -FREERDP_CONF_OPTS += -DWITH_SSE2=OFF -endif - -ifeq ($(BR2_arm)$(BR2_armeb),y) -FREERDP_CONF_OPTS += -DARM_FP_ABI=$(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) -endif - $(eval $(cmake-package))
Signature · 1 line
1.9.1
PATCH v5 8/11 package/freerdp: add options to enable/disable server and/or client
In reply to Yann E. MORINBuilding the client or the server requires an X.Org stack.
Since freerdp can also be used for weston (wayland-based, hence no X.Org stack), we may want to disable the client and server.
Conversely, even with an X.Org stack, we may want to enable either or none if we're just interested in the library.
Add two options, one to enable the server, the other the client; the client option defaults to 'Y' so that a previous .config can be re-used as-is, and exhibit the same behaviour as before; the server option defaults to 'N' as we were not ever building the server so far.
---
Changes v2 -> v3:
- use -fPIC only for that library that needs it, not the whole package (Samuel)
- fix X.Org dependencies (Samuel)
- don't default server to 'Y'
--- package/freerdp/Config.in | 25 ++++++++- .../freerdp-0002-fix-building-shared-libs.patch | 23 ++++++++ package/freerdp/freerdp.mk | 62 ++++++++++++++++++++-- 3 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 package/freerdp/freerdp-0002-fix-building-shared-libs.patch
package/freerdp/Config.in +24 -1
@@ -2,9 +2,32 @@ config BR2_PACKAGE_FREERDP bool "freerdp" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB - select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 help FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license + This only installs the freerdp library. + http://www.freerdp.com/ + +if BR2_PACKAGE_FREERDP + +config BR2_PACKAGE_FREERDP_SERVER + bool "build server" + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXDAMAGE + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXFIXES + +config BR2_PACKAGE_FREERDP_CLIENT + bool "build client" + default y + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + +comment "freerdp server and client need X.Org" + depends on !BR2_PACKAGE_XORG7 + +endif
package/freerdp/freerdp-0002-fix-building-shared-libs.patch new file +23 -0
@@ -0,0 +1,23 @@ +winpr/tools: fix building shared libs + +libwinpr-makecert-tool.a is used to build libxfreerdp-server.so, so even +if we are building a static libwinpr-makecert-tool.a library, we need to +build it with -fPIC. + +Patch and commit log suggested by Samuel MARTIN. + +Signed-off-by: "Yann E. MORIN" <[email protected]> +Cc: Samuel Martin <[email protected]> + +diff -durN freerdp-440916eae2e07463912d5fe507677e67096eb083.orig/winpr/tools/makecert/CMakeLists.txt freerdp-440916eae2e07463912d5fe507677e67096eb083/winpr/tools/makecert/CMakeLists.txt +--- freerdp-440916eae2e07463912d5fe507677e67096eb083.orig/winpr/tools/makecert/CMakeLists.txt 2014-08-25 06:52:43.000000000 -0700 ++++ freerdp-440916eae2e07463912d5fe507677e67096eb083/winpr/tools/makecert/CMakeLists.txt 2014-10-24 15:39:39.600319523 -0700 +@@ -43,3 +43,8 @@ + + set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools") + ++if(BUILD_SHARED_LIBS) ++ # build libwinpr-makecert-tool.a with PIC because it is used to build ++ # the shared library libxfreerdp-server.so. ++ set_property(TARGET ${MODULE_NAME} PROPERTY POSITION_INDEPENDENT_CODE TRUE) ++endif()
package/freerdp/freerdp.mk +58 -4
93 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v5 8/11 package/freerdp: add options to enable/disable server and/or client
Dear Yann E. MORIN,
One question, see below.
Quoted 92 lines · Yann E. MORIN
package/freerdp/freerdp.mk +52
-4@@ -64,13 +64,33 @@ ifeq ($(BR2_arm)$(BR2_armeb),y) FREERDP_CONF_OPTS += -DARM_FP_ABI=$(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) endif -ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) -FREERDP_DEPENDENCIES += xlib_libXext -FREERDP_CONF_OPTS += -DWITH_X11=ON +#--------------------------------------- +# Enabling server and/or client + +ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y) +FREERDP_CONF_OPTS += -DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON else -FREERDP_CONF_OPTS += -DWITH_X11=OFF +FREERDP_CONF_OPTS += -DWITH_SERVER=OFF -DWITH_SERVER_INTERFACE=OFF endif +ifeq ($(BR2_PACKAGE_FREERDP_CLIENT),y) +FREERDP_CONF_OPTS += -DWITH_CLIENT=ON -DWITH_CLIENT_INTERFACE=ON +else +FREERDP_CONF_OPTS += -DWITH_CLIENT=OFF -DWITH_CLIENT_INTERFACE=OFF +endif + +#--------------------------------------- +# X.Org libs for client and/or server + +ifneq ($(BR2_PACKAGE_FREERDP_SERVER)$(BR2_PACKAGE_FREERDP_CLIENT),) + +# Those two are mandatory for both the server and the client +FREERDP_DEPENDENCIES += xlib_libX11 xlib_libXext +FREERDP_CONF_OPTS += -DWITH_X11=ON + +# The following libs are either optional or mandatory only for either +# the server or the client. A mandatory library for either one is +# selected from Kconfig, so we can make it conditional here ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) FREERDP_CONF_OPTS += -DWITH_XCURSOR=ON FREERDP_DEPENDENCIES += xlib_libXcursor@@ -78,6 +98,20 @@ else FREERDP_CONF_OPTS += -DWITH_XCURSOR=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) +FREERDP_CONF_OPTS += -DWITH_XDAMAGE=ON +FREERDP_DEPENDENCIES += xlib_libXdamage +else +FREERDP_CONF_OPTS += -DWITH_XDAMAGE=OFF +endif + +ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) +FREERDP_CONF_OPTS += -DWITH_XFIXES=ON +FREERDP_DEPENDENCIES += xlib_libXfixes +else +FREERDP_CONF_OPTS += -DWITH_XFIXES=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) FREERDP_CONF_OPTS += -DWITH_XI=ON FREERDP_DEPENDENCIES += xlib_libXi@@ -99,6 +133,13 @@ else FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) +FREERDP_CONF_OPTS += -DWITH_XRANDR=ON +FREERDP_DEPENDENCIES += xlib_libXrandr +else +FREERDP_CONF_OPTS += -DWITH_XRANDR=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) FREERDP_CONF_OPTS += -DWITH_XRENDER=ON FREERDP_DEPENDENCIES += xlib_libXrender@@ -106,6 +147,13 @@ else FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF endif +ifeq ($(BR2_PACKAGE_XLIB_LIBXTST),y) +FREERDP_CONF_OPTS += -DWITH_XTEST=ON +FREERDP_DEPENDENCIES += xlib_libXtst +else +FREERDP_CONF_OPTS += -DWITH_XTEST=OFF +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y) FREERDP_CONF_OPTS += -DWITH_XV=ON FREERDP_DEPENDENCIES += xlib_libXv
package/freerdp/freerdp.mk else · line 168
Quoted 8 lines
package/freerdp/freerdp.mk +5
-0@@ -113,4 +161,10 @@ else FREERDP_CONF_OPTS += -DWITH_XV=OFF endif +else # ! SERVER && ! CLIENT + +FREERDP_CONF_OPTS += -DWITH_X11=OFF + +endif # ! USES_XLIBS
Is this really ! USES_XLIBS ?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 8/11 package/freerdp: add options to enable/disable server and/or client
Thomas, All,
On 2015-02-22 12:48 +0100, Thomas Petazzoni spake thusly:
Quoted 7 lines
One question, see below.
package/freerdp/freerdp.mk
Quoted 4 lines · Yann E. MORIN
package/freerdp/freerdp.mk +0
-0
[--SNIP--]
Quoted 11 lines
package/freerdp/freerdp.mk else · line 168
Quoted 9 lines
package/freerdp/freerdp.mk +5
-0@@ -113,4 +161,10 @@ else FREERDP_CONF_OPTS += -DWITH_XV=OFF endif +else # ! SERVER && ! CLIENT + +FREERDP_CONF_OPTS += -DWITH_X11=OFF + +endif # ! USES_XLIBSIs this really !
USES_XLIBS?
Indeed no, it's a leftover from a previous attempt. It should have been:
# ! SERVER && ! CLIENT
I'll send a fix-up patch. Sorry for the mess...
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 9/11 package/freerdp: also install to staging
In reply to Yann E. MORINfreerdp installs a library that other packages may use, so we must also install it to staging.
--- package/freerdp/freerdp.mk | 2 ++ 1 file changed, 2 insertions(+)
package/freerdp/freerdp.mk +2 -0
@@ -11,6 +11,8 @@ FREERDP_DEPENDENCIES = openssl zlib FREERDP_LICENSE = Apache-2.0 FREERDP_LICENSE_FILES = LICENSE +FREERDP_INSTALL_STAGING = YES + FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev ifeq ($(BR2_PACKAGE_GSTREAMER),y)
Signature · 1 line
1.9.1
PATCH v5 10/11 package/freerdp: install server key and certificate
In reply to Yann E. MORINThis is mandatory for an RDP server to have a key and a certificate, otherwise clients will refuse to connect to that server.
We install the key and certificate bundled in FreeRDP. The user can install its own set using a post-build script if needed.
---
Changes v2 -> v3:
- only install the keys when the server is enabled (Samuel)
--- package/freerdp/freerdp.mk | 9 +++++++++ 1 file changed, 9 insertions(+)
package/freerdp/freerdp.mk +9 -0
@@ -71,6 +71,15 @@ endif ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y) FREERDP_CONF_OPTS += -DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON +# Install the server key and certificate, so that a client can connect. +# A user can override them with its own in a post-build script, if needed. +define FREERDP_INSTALL_KEYS + $(INSTALL) -D $(@D)/server/X11/server.key \ + $(TARGET_DIR)/etc/freerdp/keys/server.key + $(INSTALL) -D $(@D)/server/X11/server.crt \ + $(TARGET_DIR)/etc/freerdp/keys/server.crt +endef +FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS else FREERDP_CONF_OPTS += -DWITH_SERVER=OFF -DWITH_SERVER_INTERFACE=OFF endif
Signature · 1 line
1.9.1
PATCH v5 10/11 package/freerdp: install server key and certificate
Dear Yann E. MORIN,
package/freerdp/freerdp.mk endif · line 80
Quoted 5 lines · Yann E. MORIN
package/freerdp/freerdp.mk +5
-0+define FREERDP_INSTALL_KEYS + $(INSTALL) -D $(@D)/server/X11/server.key \ + $(TARGET_DIR)/etc/freerdp/keys/server.key + $(INSTALL) -D $(@D)/server/X11/server.crt \ + $(TARGET_DIR)/etc/freerdp/keys/server.crt
No explicit '-m' ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 10/11 package/freerdp: install server key and certificate
Thomas, All,
On 2015-02-22 12:47 +0100, Thomas Petazzoni spake thusly:
Quoted 9 lines · Yann E. MORIN
package/freerdp/freerdp.mk endif · line 80
Quoted 6 lines
package/freerdp/freerdp.mk +5
-0+define FREERDP_INSTALL_KEYS + $(INSTALL) -D $(@D)/server/X11/server.key \ + $(TARGET_DIR)/etc/freerdp/keys/server.key + $(INSTALL) -D $(@D)/server/X11/server.crt \ + $(TARGET_DIR)/etc/freerdp/keys/server.crtNo explicit '-m' ?
Yup, I forgot it.
But now I wonder what those should be: 0644 or 0600 ?
I am leaning more toward 0644 so non-root can start a FreeRDP server (e.g. with weston). Thoughts?
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 10/11 package/freerdp: install server key and certificate
Dear Yann E. MORIN,
Quoted 3 lines · Yann E. MORIN
Yup, I forgot it.
But now I wonder what those should be: 0644 or 0600 ?
I was also unsure, and that's why I decided to not add the '-m' myself, and open up the discussion. Is it problematic if a non-root user has access to this key and certificate?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 10/11 package/freerdp: install server key and certificate
Thomas, All,
On 2015-02-22 14:45 +0100, Thomas Petazzoni spake thusly:
Quoted 9 lines · Yann E. MORIN
Quoted 4 lines
Yup, I forgot it.
But now I wonder what those should be: 0644 or 0600 ?
I was also unsure, and that's why I decided to not add the '-m' myself, and open up the discussion. Is it problematic if a non-root user has access to this key and certificate?
Well, I don't think so. am not 100% sure about this either.
However, know that those key and cert are already highly public: they *are* in the FreeRDP repository (i.e. they are not generated at build time).
So, there is no real security concern about that pair, and I would be tempted to leave them at 0644.
However, I believe the user should be responsible about providing their own set of key+cert (and thus set the appropriate permissions on them).
I said in the help text of Weston:
By default, Buildroot installs such files in /etc/freerdp/server/ so you may want to change them in a post-build script or a rootfs overlay.
So, thanks to your comment, I noticed a few issues, now:
- the key+cert are only installed when FreeRDP server is installed, so we're missing them when onlt the lib is installed. Damn smartin who made me change to that situation! :-]
- the comment about the keys should be moved to the FreeRDP option.
I'll provide follow-up patches soon.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 11/11 package/weston: add support for the RDP compositor
In reply to Yann E. MORINUsing the RDP compositor, one can run a headless machine to serve remote clients, using the RDP protocol.
Add an option to enable the rdp-backend.
--- package/weston/Config.in | 17 +++++++++++++++++ package/weston/weston.mk | 7 +++++++ 2 files changed, 24 insertions(+)
package/weston/Config.in +17 -0
@@ -39,6 +39,23 @@ config BR2_PACKAGE_WESTON_HAS_COMPOSITOR config BR2_PACKAGE_WESTON_FBDEV bool "fbdev compositor" +config BR2_PACKAGE_WESTON_RDP + bool "RDP compositor" + select BR2_PACKAGE_FREERDP + select BR2_PACKAGE_WESTON_HAS_COMPOSITOR + help + This enables the RDP backend, which allows accessing weston + through the network with any RDP-compliant client. + + Please note that one must pass those options to weston for RDP + to be functional: + --rdp-tls-cert=/path/to/server.crt + --rdp-tls-key=/path/to/server.key + + By default, Buildroot installs such files in /etc/freerdp/server/ + so you may want to change them in a post-build script or a rootfs + overlay. + # rpi-userland is an EGL/GLES provider, so we can't select it config BR2_PACKAGE_WESTON_RPI bool "RPi compositor"
package/weston/weston.mk +7 -0
@@ -31,6 +31,13 @@ else WESTON_CONF_OPTS += --disable-libunwind endif +ifeq ($(BR2_PACKAGE_WESTON_RDP),y) +WESTON_DEPENDENCIES += freerdp +WESTON_CONF_OPTS += --enable-rdp-compositor +else +WESTON_CONF_OPTS += --disable-rdp-compositor +endif + ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y) WESTON_CONF_OPTS += --enable-fbdev-compositor else
Signature · 1 line
1.9.1
v5 cover weston: new freerdp backend (branch yem/freerdp)
In reply to Yann E. MORINDear Yann E. MORIN,
Quoted 11 lines · Yann E. MORIN
Yann E. MORIN (11):
package/freerdp: bump version
package/freerdp: conditionally build gstreamer support package/freerdp: conditionally build support for libXi package/freerdp: conditionally build support for libXrender package/freerdp: avoid development warning package/freerdp: do not forcibly depend on X.Org package/freerdp: move architecture-specific block package/freerdp: add options to enable/disable server and/or client package/freerdp: also install to staging package/freerdp: install server key and certificate
All applied to next. I have a few questions on some of them, I'll reply to the individual e-mails.
Quoted 1 line
package/weston: add support for the RDP compositor
This one I believe has a real issue, I'll reply to it specifically.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
v5 cover weston: new freerdp backend (branch yem/freerdp)
Hello,
Quoted 3 lines · Thomas Petazzoni
Quoted 1 line
package/weston: add support for the RDP compositor
This one I believe has a real issue, I'll reply to it specifically.
In fact no, I misread the patch, it is all fine, so I applied it.
However, I encountered one build issue caused by CLOCK_BOOTTIME not being defined by uClibc. There's a patch in uClibc master of course, but it's not in 0.9.33.2. So I added a patch to Weston to make it build by defining CLOCK_BOOTTIME to the right value when not already defined by the C library headers.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com