All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  2015-02-21 15:46   ` Thomas Petazzoni
  2015-01-25 22:37 ` [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block Yann E. MORIN
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

It 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.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
---
 package/Config.in          |  2 +-
 package/freerdp/Config.in  |  6 +-----
 package/freerdp/freerdp.mk | 17 +++++++++++++++--
 3 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/package/Config.in b/package/Config.in
index 043a350..6356e8d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -211,6 +211,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"
@@ -247,7 +248,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/gob2/Config.in"
 	source "package/gqview/Config.in"
diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index c5ff769..09efbc0 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -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
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 57cd7a8..a373447 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -7,8 +7,7 @@
 # Changeset on the stable-1.1 branch
 FREERDP_VERSION = 440916eae2e07463912d5fe507677e67096eb083
 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
 
@@ -42,6 +41,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_LIBXINERAMA),y)
 FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON
 FREERDP_DEPENDENCIES += xlib_libXinerama
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp)
@ 2015-01-25 22:37 Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org Yann E. MORIN
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

Hello All!

This series adds the RDP backend to Weston. As a side effect, it cleans
up and enhances FreeRDP.


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 88f3034651364d2cd6066f2df339a32e8eef8fc6:

  dmalloc: Force arm mode instead of Thumb1 mode (2015-01-25 20:30:18 +0100)

are available in the git repository at:

  git://git.busybox.net/~ymorin/git/buildroot yem/freerdp

for you to fetch changes up to afeaa5c1b90c41b25a3ace3c6d9a29f33d161aa3:

  package/weston: add support for the RDP compositor (2015-01-25 23:31:57 +0100)

----------------------------------------------------------------
Yann E. MORIN (6):
      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                         | 108 ++++++++++++++++++---
 package/weston/Config.in                           |  17 ++++
 package/weston/weston.mk                           |   7 ++
 6 files changed, 165 insertions(+), 21 deletions(-)
 create mode 100644 package/freerdp/freerdp-0002-fix-building-shared-libs.patch

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  2015-01-26  7:09   ` Samuel Martin
  2015-01-25 22:37 ` [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client Yann E. MORIN
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

Move the arch-spcific block up, so it does not interfere with followup
patches (mostly to ease review).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/freerdp/freerdp.mk | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index a373447..ff66676 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -41,6 +41,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
@@ -76,20 +92,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))
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  2015-01-26  7:18   ` Samuel Martin
  2015-01-25 22:37 ` [Buildroot] [PATCH 4/6 v4] package/freerdp: also install to staging Yann E. MORIN
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

Building 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.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>

---
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

diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index 09efbc0..47fd8be 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -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
diff --git a/package/freerdp/freerdp-0002-fix-building-shared-libs.patch b/package/freerdp/freerdp-0002-fix-building-shared-libs.patch
new file mode 100644
index 0000000..420f3d3
--- /dev/null
+++ b/package/freerdp/freerdp-0002-fix-building-shared-libs.patch
@@ -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" <yann.morin.1998@free.fr>
+Cc: Samuel Martin <s.martin49@gmail.com>
+
+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()
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index ff66676..742ced7 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -57,13 +57,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
@@ -71,6 +91,27 @@ 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
+else
+FREERDP_CONF_OPTS += -DWITH_XI=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
 FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON
 FREERDP_DEPENDENCIES += xlib_libXinerama
@@ -85,6 +126,13 @@ else
 FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
+FREERDP_DEPENDENCIES += xlib_libXrender
+FREERDP_CONF_OPTS += -DWITH_XRENDER=ON
+else
+FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y)
 FREERDP_CONF_OPTS += -DWITH_XV=ON
 FREERDP_DEPENDENCIES += xlib_libXv
@@ -92,4 +140,10 @@ else
 FREERDP_CONF_OPTS += -DWITH_XV=OFF
 endif
 
+else # ! SERVER && ! CLIENT
+
+FREERDP_CONF_OPTS += -DWITH_X11=OFF
+
+endif # ! USES_XLIBS
+
 $(eval $(cmake-package))
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 4/6 v4] package/freerdp: also install to staging
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2015-01-25 22:37 ` [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 5/6 v4] package/freerdp: install server key and certificate Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 6/6 v4] package/weston: add support for the RDP compositor Yann E. MORIN
  5 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

freerdp installs a library that other packages may use, so
we must also install it to staging.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Samuel Martin <s.martin49@gmail.com>
---
 package/freerdp/freerdp.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 742ced7..f0b6e92 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -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
 
 ifeq ($(BR2_PACKAGE_CUPS),y)
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 5/6 v4] package/freerdp: install server key and certificate
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
                   ` (3 preceding siblings ...)
  2015-01-25 22:37 ` [Buildroot] [PATCH 4/6 v4] package/freerdp: also install to staging Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  2015-01-25 22:37 ` [Buildroot] [PATCH 6/6 v4] package/weston: add support for the RDP compositor Yann E. MORIN
  5 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

This 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.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>

---
Changes v2 -> v3:
  - only install the keys when the server is enabled  (Samuel)
---
 package/freerdp/freerdp.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index f0b6e92..520599e 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -64,6 +64,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
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 6/6 v4] package/weston: add support for the RDP compositor
  2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
                   ` (4 preceding siblings ...)
  2015-01-25 22:37 ` [Buildroot] [PATCH 5/6 v4] package/freerdp: install server key and certificate Yann E. MORIN
@ 2015-01-25 22:37 ` Yann E. MORIN
  5 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-01-25 22:37 UTC (permalink / raw)
  To: buildroot

Using 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.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
---
 package/weston/Config.in | 17 +++++++++++++++++
 package/weston/weston.mk |  7 +++++++
 2 files changed, 24 insertions(+)

diff --git a/package/weston/Config.in b/package/weston/Config.in
index 49130b4..755da94 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -40,6 +40,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"
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 9964b90..2829a10 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -32,6 +32,13 @@ else
 WESTON_CONF_OPTS += --disable-libinput-backend
 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_LIBUNWIND),y)
 WESTON_DEPENDENCIES += libunwind
 else
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block
  2015-01-25 22:37 ` [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block Yann E. MORIN
@ 2015-01-26  7:09   ` Samuel Martin
  0 siblings, 0 replies; 10+ messages in thread
From: Samuel Martin @ 2015-01-26  7:09 UTC (permalink / raw)
  To: buildroot

On Sun, Jan 25, 2015 at 11:37 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Move the arch-spcific block up, so it does not interfere with followup
> patches (mostly to ease review).
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Reviewed-by: Samuel Martin <s.martin49@gmail.com>

Regards,

-- 
Samuel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client
  2015-01-25 22:37 ` [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client Yann E. MORIN
@ 2015-01-26  7:18   ` Samuel Martin
  0 siblings, 0 replies; 10+ messages in thread
From: Samuel Martin @ 2015-01-26  7:18 UTC (permalink / raw)
  To: buildroot

On Sun, Jan 25, 2015 at 11:37 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Building 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.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Samuel Martin <s.martin49@gmail.com>

Reviewed-by: Samuel Martin <s.martin49@gmail.com>

Regards,

-- 
Samuel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org
  2015-01-25 22:37 ` [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org Yann E. MORIN
@ 2015-02-21 15:46   ` Thomas Petazzoni
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2015-02-21 15:46 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Sun, 25 Jan 2015 23:37:05 +0100, Yann E. MORIN wrote:
> It 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.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Reviewed-by: Samuel Martin <s.martin49@gmail.com>
> ---
>  package/Config.in          |  2 +-
>  package/freerdp/Config.in  |  6 +-----
>  package/freerdp/freerdp.mk | 17 +++++++++++++++--
>  3 files changed, 17 insertions(+), 8 deletions(-)

Unfortunately, it doesn't build here :-/

Here is the defconfig I'm using:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2014.11.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17=y
BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y
BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_FREERDP=y
# BR2_TARGET_ROOTFS_TAR is not set

The error I'm getting are:

-- checking for module 'gstreamer-plugins-base-0.10'
--   package 'gstreamer-plugins-base-0.10' not found
-- Could NOT find GSTREAMER (missing:  GSTREAMER_LIBRARIES GSTREAMER_INCLUDE_DIRS) 
CMake Warning at cmake/FindFeature.cmake:46 (message):
      feature Gstreamer was requested but could not be found! ON / FALSE
Call Stack (most recent call first):
  CMakeLists.txt:377 (find_feature)

The GStreamer part of it I've fixed by adding:

+ifeq ($(BR2_PACKAGE_GSTREAMER),y)
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER=ON
+FREERDP_DEPENDENCIES += gstreamer
+else
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER=OFF
+endif

(untested with GStreamer enabled). Once this is added, the remaining
error is:

CMake Error at channels/client/CMakeLists.txt:33 (list):
  list sub-command REMOVE_DUPLICATES requires list to be present.

My understanding is that the CHANNEL_STATIC_CLIENT_ENTRIES list is
empty.

Can you have a look into this?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-02-21 15:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-25 22:37 [Buildroot] [PATCH 0/6 v4] weston: new freerdp backend (branch yem/freerdp) Yann E. MORIN
2015-01-25 22:37 ` [Buildroot] [PATCH 1/6 v4] package/freerdp: do not forcibly depend on X.Org Yann E. MORIN
2015-02-21 15:46   ` Thomas Petazzoni
2015-01-25 22:37 ` [Buildroot] [PATCH 2/6 v4] package/freerdp: move architecture-specific block Yann E. MORIN
2015-01-26  7:09   ` Samuel Martin
2015-01-25 22:37 ` [Buildroot] [PATCH 3/6 v4] package/freerdp: add options to enable/disable server and/or client Yann E. MORIN
2015-01-26  7:18   ` Samuel Martin
2015-01-25 22:37 ` [Buildroot] [PATCH 4/6 v4] package/freerdp: also install to staging Yann E. MORIN
2015-01-25 22:37 ` [Buildroot] [PATCH 5/6 v4] package/freerdp: install server key and certificate Yann E. MORIN
2015-01-25 22:37 ` [Buildroot] [PATCH 6/6 v4] package/weston: add support for the RDP compositor Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.