Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp)
@ 2015-09-06 19:54 Yann E. MORIN
  2015-09-06 19:54 ` [Buildroot] [PATCH 1/5] package/freerdp: bump to master Yann E. MORIN
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Hello All!

With this series comes a big bump of FreeRDP.

This was prompted by the weston's RDP backend, that requires a recent
version of FreeRDP.

Basically, FreeRDP's API has changed somewhat in thier master branch,
and some packages (e.g. weston) have started to use it uncoditionally.

So this series:

  - bumps FreeRDP to the currently latest (and greates?) FreeRDP
  - restores the weston RDP ackend
  - upgrades and enhances the gstreamer support in FreeRDP
  - introduces the wayland client in FreeRDP

Regards,
Yann E. MORIN.


The following changes since commit dd7bac42c201a14b844d1ef99e55c0ef2c33ddcb:

  dos2unix: update homepage link (2015-09-06 11:41:36 +0200)

are available in the git repository at:

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

for you to fetch changes up to cfef88063641104f06cac70e48390a1ea06305b9:

  package/freerdp: introduce the wayland client (2015-09-06 20:52:17 +0200)

----------------------------------------------------------------
Yann E. MORIN (5):
      package/freerdp: bump to master
      package/weston: restore the freerdp backend
      package/freerdp: re-add support for gstreamer
      package/freerdp: prepare for adding another client
      package/freerdp: introduce the wayland client

 Config.in.legacy                                   |  10 ++
 package/freerdp/0001-add-support-for-uclibc.patch  | 127 ---------------------
 ...s.patch => 0001-fix-building-shared-libs.patch} |   7 +-
 ...patch => 0002-add-support-for-tz-package.patch} |   0
 .../0003-dont-use-unavailable-c99-math.patch       |  95 ---------------
 package/freerdp/Config.in                          |  47 ++++++--
 package/freerdp/freerdp.mk                         | 114 ++++++++++++++----
 package/weston/Config.in                           |   6 +-
 8 files changed, 149 insertions(+), 257 deletions(-)
 delete mode 100644 package/freerdp/0001-add-support-for-uclibc.patch
 rename package/freerdp/{0002-fix-building-shared-libs.patch => 0001-fix-building-shared-libs.patch} (92%)
 rename package/freerdp/{0004-add-support-for-tz-package.patch => 0002-add-support-for-tz-package.patch} (100%)
 delete mode 100644 package/freerdp/0003-dont-use-unavailable-c99-math.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] 11+ messages in thread

* [Buildroot] [PATCH 1/5] package/freerdp: bump to master
  2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
@ 2015-09-06 19:54 ` Yann E. MORIN
  2015-10-02 20:29   ` Peter Korsgaard
  2015-09-06 19:54 ` [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend Yann E. MORIN
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Currently, we're packaging FreeRDP from the stable-1.1 branch, which has
not evolved since march 2015 and hasn't seen any release (not even a
tag) since July 2013. It is by all purpose and means, dead.

Other packages that may use FreeRDP (like weston) are now migrating to,
or have already migrated to using the API from master, which has changed
a bit from what was available on the stable-1.1 branch. So, those
packages now FTBFS.

However, FreeRDP still has not done a release from their master branch;
the last tag dates back to September 2014 and there are 1850+ changes on
top of that tag.

So, switch to using the currently-latest commit from master.

This version can also use gstreamer-1.x (in addition to gst-0.x), which
needs quite some rework on how we handle the dependency on gstreamer.
Drop gstreamer support entirely, support for gst-0.x and gst-1.x will be
re-added in a followup patch.

Similarly, a wayland client can now be built, support for which will
be added in a subsequent path; it is currently forcibly disabled.

The way the libraries are built has changed: the previous single library
has been split in multiple libraries, each implementing parts of the RDP
protocol.

Slight rewording of the prompts:
  - drop the 'install' for client and server.
  - drop 'freerdp' from the client and server comment

The location of the server keys has changed, so copy them from the new
location.

Finally, drop patches 1 and 3, applied upstrem; rename remaining
patches.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/freerdp/0001-add-support-for-uclibc.patch  | 127 ---------------------
 ...s.patch => 0001-fix-building-shared-libs.patch} |   7 +-
 ...patch => 0002-add-support-for-tz-package.patch} |   0
 .../0003-dont-use-unavailable-c99-math.patch       |  95 ---------------
 package/freerdp/Config.in                          |  12 +-
 package/freerdp/freerdp.mk                         |  45 +++++---
 6 files changed, 38 insertions(+), 248 deletions(-)
 delete mode 100644 package/freerdp/0001-add-support-for-uclibc.patch
 rename package/freerdp/{0002-fix-building-shared-libs.patch => 0001-fix-building-shared-libs.patch} (92%)
 rename package/freerdp/{0004-add-support-for-tz-package.patch => 0002-add-support-for-tz-package.patch} (100%)
 delete mode 100644 package/freerdp/0003-dont-use-unavailable-c99-math.patch

diff --git a/package/freerdp/0001-add-support-for-uclibc.patch b/package/freerdp/0001-add-support-for-uclibc.patch
deleted file mode 100644
index feefc45..0000000
--- a/package/freerdp/0001-add-support-for-uclibc.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 39ac68abaff0d7b59cbe80036aac37f41ad976ec Mon Sep 17 00:00:00 2001
-From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Date: Wed, 24 Sep 2014 13:54:15 +0100
-Subject: [PATCH] Add support for uClibc
-
-The stable-1.1 branch of freerdp fails to build when using a uClibc
-toolchain because it's using functions which are not implemented in
-uClibc, like eventfd_read, eventfd_write and futimes. That is causing
-build failures like these ones:
-
-../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
-`eventfd_read'
-../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
-`eventfd_write'
-
-../../common/libfreerdp-client.so.1.1.0: undefined reference to
-`futimes'
-
-This patch is based on this upstream patch:
-
-  https://github.com/FreeRDP/FreeRDP/commit/5f9c36da5d5cd3c5dce49f7b32fe011cb293f9ec/
-
-To support newer versions of uClibc and uclibc-ng this patch also includes a
-backported version of upstream commit 3b7d3190a16c (Fix build with newer
-uclibc versions, 2015-04-28)
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-[baruch: merge in upstream commit 3b7d3190a16c]
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- CMakeLists.txt                     |  3 +++
- channels/drive/client/drive_file.c | 12 +++++++++---
- config.h.in                        |  1 +
- winpr/libwinpr/synch/event.c       | 14 ++++++++++++++
- 4 files changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 375e2d1b6845..5b7887601aa0 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -276,6 +276,9 @@ endif()
- 
- if(UNIX OR CYGWIN)
- 	check_include_files(sys/eventfd.h HAVE_EVENTFD_H)
-+	if (HAVE_EVENTFD_H)
-+		check_symbol_exists(eventfd_read sys/eventfd.h WITH_EVENTFD_READ_WRITE)
-+	endif()
- 	set(X11_FEATURE_TYPE "RECOMMENDED")
- else()
- 	set(X11_FEATURE_TYPE "DISABLED")
-diff --git a/channels/drive/client/drive_file.c b/channels/drive/client/drive_file.c
-index 376b4fe74be7..b20f408aa356 100644
---- a/channels/drive/client/drive_file.c
-+++ b/channels/drive/client/drive_file.c
-@@ -480,7 +480,11 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
- 	int status;
- 	char* fullpath;
- 	struct STAT st;
-+#if defined(ANDROID)
- 	struct timeval tv[2];
-+#else
-+	struct timespec tv[2];
-+#endif
- 	UINT64 LastWriteTime;
- 	UINT32 FileAttributes;
- 	UINT32 FileNameLength;
-@@ -501,15 +505,17 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
- 				return FALSE;
- 
- 			tv[0].tv_sec = st.st_atime;
--			tv[0].tv_usec = 0;
- 			tv[1].tv_sec = (LastWriteTime > 0 ? FILE_TIME_RDP_TO_SYSTEM(LastWriteTime) : st.st_mtime);
--			tv[1].tv_usec = 0;
- #ifndef WIN32
- /* TODO on win32 */                        
- #ifdef ANDROID
-+			tv[0].tv_usec = 0;
-+			tv[1].tv_usec = 0;
- 			utimes(file->fullpath, tv);
- #else
--			futimes(file->fd, tv);
-+			tv[0].tv_nsec = 0;
-+			tv[1].tv_nsec = 0;
-+			futimens(file->fd, tv);
- #endif
- 
- 			if (FileAttributes > 0)
-diff --git a/config.h.in b/config.h.in
-index 2b8ec09c2afb..55c595d0e162 100755
---- a/config.h.in
-+++ b/config.h.in
-@@ -33,6 +33,7 @@
- #cmakedefine WITH_JPEG
- #cmakedefine WITH_WIN8
- #cmakedefine WITH_RDPSND_DSOUND
-+#cmakedefine WITH_EVENTFD_READ_WRITE
- 
- /* Plugins */
- #cmakedefine STATIC_CHANNELS
-diff --git a/winpr/libwinpr/synch/event.c b/winpr/libwinpr/synch/event.c
-index 173afafb7cc9..cb3f338178d9 100644
---- a/winpr/libwinpr/synch/event.c
-+++ b/winpr/libwinpr/synch/event.c
-@@ -115,6 +115,20 @@ HANDLE OpenEventA(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName)
- 	return NULL;
- }
- 
-+#ifdef HAVE_EVENTFD_H
-+#if !defined(WITH_EVENTFD_READ_WRITE)
-+static int eventfd_read(int fd, eventfd_t* value)
-+{
-+	return (read(fd, value, sizeof(*value)) == sizeof(*value)) ? 0 : -1;
-+}
-+
-+static int eventfd_write(int fd, eventfd_t value)
-+{
-+	return (write(fd, &value, sizeof(value)) == sizeof(value)) ? 0 : -1;
-+}
-+#endif
-+#endif
-+
- BOOL SetEvent(HANDLE hEvent)
- {
- 	ULONG Type;
--- 
-1.7.1
-
diff --git a/package/freerdp/0002-fix-building-shared-libs.patch b/package/freerdp/0001-fix-building-shared-libs.patch
similarity index 92%
rename from package/freerdp/0002-fix-building-shared-libs.patch
rename to package/freerdp/0001-fix-building-shared-libs.patch
index 420f3d3..8922cb1 100644
--- a/package/freerdp/0002-fix-building-shared-libs.patch
+++ b/package/freerdp/0001-fix-building-shared-libs.patch
@@ -12,12 +12,15 @@ 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 @@
+@@ -37,4 +37,11 @@
+ add_subdirectory(cli)
  
  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()
++
+ export_complex_library(LIBNAME ${MODULE_NAME})
diff --git a/package/freerdp/0004-add-support-for-tz-package.patch b/package/freerdp/0002-add-support-for-tz-package.patch
similarity index 100%
rename from package/freerdp/0004-add-support-for-tz-package.patch
rename to package/freerdp/0002-add-support-for-tz-package.patch
diff --git a/package/freerdp/0003-dont-use-unavailable-c99-math.patch b/package/freerdp/0003-dont-use-unavailable-c99-math.patch
deleted file mode 100644
index 1e23c0d..0000000
--- a/package/freerdp/0003-dont-use-unavailable-c99-math.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From c0d27019745184052bd428ba74a50de96053cea1 Mon Sep 17 00:00:00 2001
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Sun, 3 May 2015 20:46:22 +0300
-Subject: [PATCH] Don't use unavailable C99 long double math functions
-
-uClibc variants do not provide the C99 long double math functions like ceill,
-powl, etc.. For future compatibility use check_symbol_exists() to check
-whether these functions are available, and keep the result in
-HAVE_MATH_C99_LONG_DOUBLE. Use that instead of the fragile Cygwin version
-check in triodef.h.
-
-Fixes build failures under uClibc(-ng) like:
-
-../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `powl'
-../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `fmodl'
-../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `ceill'
-../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `log10l'
-../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `floorl'
-collect2: error: ld returned 1 exit status
-
-Backported from upstream commit
-https://github.com/FreeRDP/FreeRDP/commit/414663cc363108cb71a290de1c86a1b04384fb39
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- CMakeLists.txt                      |  3 +++
- config.h.in                         |  1 +
- winpr/libwinpr/utils/trio/triodef.h | 25 ++++++-------------------
- 3 files changed, 10 insertions(+), 19 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5b7887601aa0..177e44cfff10 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -279,6 +279,9 @@ if(UNIX OR CYGWIN)
- 	if (HAVE_EVENTFD_H)
- 		check_symbol_exists(eventfd_read sys/eventfd.h WITH_EVENTFD_READ_WRITE)
- 	endif()
-+	list(APPEND CMAKE_REQUIRED_LIBRARIES m)
-+	check_symbol_exists(ceill math.h HAVE_MATH_C99_LONG_DOUBLE)
-+	list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES m)
- 	set(X11_FEATURE_TYPE "RECOMMENDED")
- else()
- 	set(X11_FEATURE_TYPE "DISABLED")
-diff --git a/config.h.in b/config.h.in
-index 55c595d0e162..983310d5b9e6 100755
---- a/config.h.in
-+++ b/config.h.in
-@@ -34,6 +34,7 @@
- #cmakedefine WITH_WIN8
- #cmakedefine WITH_RDPSND_DSOUND
- #cmakedefine WITH_EVENTFD_READ_WRITE
-+#cmakedefine HAVE_MATH_C99_LONG_DOUBLE
- 
- /* Plugins */
- #cmakedefine STATIC_CHANNELS
-diff --git a/winpr/libwinpr/utils/trio/triodef.h b/winpr/libwinpr/utils/trio/triodef.h
-index 11c14b9c42c7..2a0479526f33 100644
---- a/winpr/libwinpr/utils/trio/triodef.h
-+++ b/winpr/libwinpr/utils/trio/triodef.h
-@@ -313,25 +313,12 @@ typedef void * trio_pointer_t;
- # define TRIO_COMPILER_SUPPORTS_LL
- #endif
- 
--#if defined(__CYGWIN__)
--/*
-- * Cygwin defines the macros for hosted C99, but does not support certain
-- * long double math functions.
-- */
--# include <cygwin/version.h>
--# define TRIO_CYGWIN_VERSION_API CYGWIN_VERSION_API_MAJOR * 1000 + \
--   CYGWIN_VERSION_API_MINOR
--/*
-- * Please change the version number below when the Cygwin API supports
-- * long double math functions (powl, fmodl, etc.)
-- */
--# if TRIO_CYGWIN_VERSION_API < 99999999
--#  define TRIO_NO_FLOORL 1
--#  define TRIO_NO_CEILL 1
--#  define TRIO_NO_POWL 1
--#  define TRIO_NO_FMODL 1
--#  define TRIO_NO_LOG10L 1
--# endif
-+#if !defined(HAVE_MATH_C99_LONG_DOUBLE)
-+# define TRIO_NO_FLOORL 1
-+# define TRIO_NO_CEILL 1
-+# define TRIO_NO_POWL 1
-+# define TRIO_NO_FMODL 1
-+# define TRIO_NO_LOG10L 1
- #endif
- 
- #endif /* TRIO_TRIODEF_H */
--- 
-2.1.4
-
diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index f7d6550..ab8c3f5 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -3,15 +3,15 @@ config BR2_PACKAGE_FREERDP
 	depends on BR2_USE_WCHAR
 	depends on !BR2_STATIC_LIBS # uses dlfcn.h
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU # libglib2
 	select BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_ZLIB
-	select BR2_PACKAGE_GST_PLUGINS_BASE if BR2_PACKAGE_GSTREAMER
-	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP if BR2_PACKAGE_GSTREAMER
+	select BR2_PACKAGE_LIBGLIB2
 	help
 	  FreeRDP is a free implementation of the Remote Desktop
 	  Protocol (RDP), released under the Apache license
 
-	  This only installs the freerdp library.
+	  This only installs the freerdp libraries.
 
 	  http://www.freerdp.com/
 
@@ -24,7 +24,7 @@ config BR2_PACKAGE_FREERDP
 if BR2_PACKAGE_FREERDP
 
 config BR2_PACKAGE_FREERDP_SERVER
-	bool "build server"
+	bool "server"
 	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBX11
 	select BR2_PACKAGE_XLIB_LIBXDAMAGE
@@ -32,13 +32,13 @@ config BR2_PACKAGE_FREERDP_SERVER
 	select BR2_PACKAGE_XLIB_LIBXFIXES
 
 config BR2_PACKAGE_FREERDP_CLIENT
-	bool "build client"
+	bool "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"
+comment "server and client need X.Org"
 	depends on !BR2_PACKAGE_XORG7
 
 endif
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 0d10ef8..9205169 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -4,10 +4,10 @@
 #
 ################################################################################
 
-# Changeset on the stable-1.1 branch
-FREERDP_VERSION = 770c67d340d5f0a7b48d53a1ae0fc23aff748fc4
+# Changeset on the master branch
+FREERDP_VERSION = 17834af7bb378f85a3b3cc4dcadaa5125a337e16
 FREERDP_SITE = $(call github,FreeRDP,FreeRDP,$(FREERDP_VERSION))
-FREERDP_DEPENDENCIES = openssl zlib
+FREERDP_DEPENDENCIES = libglib2 openssl zlib
 FREERDP_LICENSE = Apache-2.0
 FREERDP_LICENSE_FILES = LICENSE
 
@@ -15,13 +15,7 @@ FREERDP_INSTALL_STAGING = YES
 
 FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev
 
-ifeq ($(BR2_PACKAGE_GSTREAMER),y)
-FREERDP_CONF_OPTS += -DWITH_GSTREAMER=ON
-# freerdp needs gstinterface and gstapp from gst-plugins-base
-FREERDP_DEPENDENCIES += gstreamer gst-plugins-base
-else
-FREERDP_CONF_OPTS += -DWITH_GSTREAMER=OFF
-endif
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF -DWITH_GSTREAMER_1_0=OFF
 
 ifeq ($(BR2_PACKAGE_CUPS),y)
 FREERDP_CONF_OPTS += -DWITH_CUPS=ON
@@ -70,16 +64,17 @@ endif
 #---------------------------------------
 # Enabling server and/or client
 
+# Clients and server interface must always be enabled to build the
+# corresponding libraries.
+FREERDP_CONF_OPTS += -DWITH_SERVER_INTERFACE=ON
+FREERDP_CONF_OPTS += -DWITH_CLIENT_INTERFACE=ON
+
 ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y)
-FREERDP_CONF_OPTS += -DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON
-else
-FREERDP_CONF_OPTS += -DWITH_SERVER=OFF -DWITH_SERVER_INTERFACE=OFF
+FREERDP_CONF_OPTS += -DWITH_SERVER=ON
 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
+FREERDP_CONF_OPTS += -DWITH_CLIENT=ON
 endif
 
 #---------------------------------------
@@ -170,6 +165,20 @@ FREERDP_CONF_OPTS += -DWITH_X11=OFF
 
 endif # ! SERVER && ! CLIENT
 
+#---------------------------------------
+# Post-install hooks to cleanup and install missing stuff
+
+# Shadow server is always installed, no matter what, so we manually
+# remove it if the user does not want the server.
+ifeq ($(BR2_PACKAGE_FREERDP_SERVER),)
+define FREERDP_RM_SHADOW_SERVER
+	rm -f $(TARGET_DIR)/usr/bin/freerdp-shadow
+endef
+FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_SHADOW_SERVER
+endif # ! server
+
+FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF
+
 # 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.
 # We install them even if the server is not enabled, since another server
@@ -177,9 +186,9 @@ endif # ! SERVER && ! CLIENT
 # backend). Key and cert are installed world-readable, so non-root users
 # can start a server.
 define FREERDP_INSTALL_KEYS
-	$(INSTALL) -m 0644 -D $(@D)/server/X11/server.key \
+	$(INSTALL) -m 0644 -D $(@D)/server/Sample/server.key \
 		      $(TARGET_DIR)/etc/freerdp/keys/server.key
-	$(INSTALL) -m 0644 -D $(@D)/server/X11/server.crt \
+	$(INSTALL) -m 0644 -D $(@D)/server/Sample/server.crt \
 		      $(TARGET_DIR)/etc/freerdp/keys/server.crt
 endef
 FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS
-- 
1.9.1

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

* [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend
  2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
  2015-09-06 19:54 ` [Buildroot] [PATCH 1/5] package/freerdp: bump to master Yann E. MORIN
@ 2015-09-06 19:54 ` Yann E. MORIN
  2015-10-02 20:29   ` Peter Korsgaard
  2015-09-06 19:54 ` [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer Yann E. MORIN
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Now that we've switched to using FreeRDP from master, we can build the
weston's FreeRDP backend again.

Propagate the new dependencies of FreeRDP.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/weston/Config.in | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/package/weston/Config.in b/package/weston/Config.in
index f530e22..3fd7981 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -41,13 +41,11 @@ config BR2_PACKAGE_WESTON_HAS_COMPOSITOR
 config BR2_PACKAGE_WESTON_FBDEV
 	bool "fbdev compositor"
 
-# RDP backend needs FreeRDP master, while we only have stable-1.1
-comment "RDP backend is broken"
-
+# FreeRDP needs threads and !static, already the case for weston
 config BR2_PACKAGE_WESTON_RDP
 	bool "RDP compositor"
-	depends on BROKEN # needs FreeRDP master
 	depends on BR2_USE_WCHAR # freerdp
+	depends on BR2_USE_MMU # freerdp, libglib2
 	select BR2_PACKAGE_FREERDP
 	select BR2_PACKAGE_WESTON_HAS_COMPOSITOR
 	help
-- 
1.9.1

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

* [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer
  2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
  2015-09-06 19:54 ` [Buildroot] [PATCH 1/5] package/freerdp: bump to master Yann E. MORIN
  2015-09-06 19:54 ` [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend Yann E. MORIN
@ 2015-09-06 19:54 ` Yann E. MORIN
  2015-10-03  7:08   ` Peter Korsgaard
  2015-09-06 19:54 ` [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client Yann E. MORIN
  2015-09-06 19:54 ` [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client Yann E. MORIN
  4 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Previously, we expected the user to select gstreamer-0.x on his own,
to enable gstreamer support in FreeRDP. This could have been a bit
confusing to the user, as he may have enabled gst-1.x but FreeRDP did
only support gst-0.x.

Also, gstreamer support needs xlib-libxrandr, which was missing in
FreeRDP's dependencies, so it was never enabled (AFAICS).

(Re-)introduce support for gstreamer-0.x and gstreamer-1.x, since both
are supported.

We're doing it in a choice, and forcibly select whichever version the
user chooses, rather than automatically detect it as previosuly done.
We can select gstreamer, as their dependencies are anyway already
covered by the ones of FreeRDP.

This also now requires xlib-libxrandr, so hide the choice if X.org is
not enabled, still offer the option of not using gstreamer if it is.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/freerdp/Config.in  | 28 ++++++++++++++++++++++++++++
 package/freerdp/freerdp.mk | 14 +++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index ab8c3f5..ca57cef 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -23,6 +23,34 @@ config BR2_PACKAGE_FREERDP
 
 if BR2_PACKAGE_FREERDP
 
+choice
+	bool "gstreamer support"
+	depends on BR2_PACKAGE_XORG7 # xlib-libxrandr
+
+config BR2_PACKAGE_FREERDP_GSTREAMER_NO
+	bool "none"
+
+config BR2_PACKAGE_FREERDP_GSTREAMER1
+	bool "gstreamer-1.x"
+	# gstreamer-1.x dependencies already dependencies of FreeRDP
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
+	select BR2_PACKAGE_XLIB_LIBXRANDR
+
+config BR2_PACKAGE_FREERDP_GSTREAMER
+	bool "gstreamer-0.x"
+	# gstreamer-0.x dependencies already dependencies of FreeRDP
+	select BR2_PACKAGE_GSTREAMER
+	select BR2_PACKAGE_GST_PLUGINS_BASE
+	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
+	select BR2_PACKAGE_XLIB_LIBXRANDR
+
+endchoice
+
+comment "gstreamer support needs X.Org"
+	depends on !BR2_PACKAGE_XORG7
+
 config BR2_PACKAGE_FREERDP_SERVER
 	bool "server"
 	depends on BR2_PACKAGE_XORG7
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 9205169..3517933 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -15,7 +15,19 @@ FREERDP_INSTALL_STAGING = YES
 
 FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev
 
-FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF -DWITH_GSTREAMER_1_0=OFF
+ifeq ($(BR2_PACKAGE_FREERDP_GSTREAMER),y)
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON
+FREERDP_DEPENDENCIES += gstreamer gst-plugins-base
+else
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_FREERDP_GSTREAMER1),y)
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=ON
+FREERDP_DEPENDENCIES += gstreamer1 gst1-plugins-base
+else
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=OFF
+endif
 
 ifeq ($(BR2_PACKAGE_CUPS),y)
 FREERDP_CONF_OPTS += -DWITH_CUPS=ON
-- 
1.9.1

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

* [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client
  2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2015-09-06 19:54 ` [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer Yann E. MORIN
@ 2015-09-06 19:54 ` Yann E. MORIN
  2015-10-03 12:04   ` Peter Korsgaard
  2015-09-06 19:54 ` [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client Yann E. MORIN
  4 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Currently, the only client we can build is the X11 client.

FreeRDP now has support for building a wayland client.

However, that means we need to rethink the way we build FreeRDP, because
of some "inconsistencies" in its build system. This is because FreeRDP's
buildsystem does not have orthogonal options; some of the options can be
used for different components.

For example, the set of X11 libraries needed to build the server is a
superset of the X11 libraries needed to build the X11 client. So,
whenever the server is enabled, it means the X11 libraries required to
build the X11 client are available.

Now, if the user also wants to build the waland client (but not the X11
client), there is no way to tell FreeRDP not to build the X11 client,
because there is a single option, WITH_CLIENT, to drive whether any of
the clients is built. The decision is made on the availability of the
required libraries. And since the server is enabled, the X11 libs
required to build the X11 client are available. So, we end up with the
X11 client, even though it is not wanted.

And conversely with wayland...

So, we redesign the way we build FreeRDP. WE do not care what is
actually built; we just build whatever is buildable with the current
set of enabled libraries. But at install time (both in staging/ and
target/) we remove whatever the user does not want.

We also take the opportunity to rename the X11 client option, so it is
coherent with the soon-to-be-introduced wayland client.

Note: since FreeRDP has gained new dependencies, we can not just
introduce the legacy option as-is, otherwise we run the risk that it
selects the new option even though the new FreeRDP dependencies are not
enabled, spitting out the infamous 'unmet direct dependencies" kconfig
error.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 Config.in.legacy           | 10 +++++++++
 package/freerdp/Config.in  |  6 +++---
 package/freerdp/freerdp.mk | 53 ++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 57 insertions(+), 12 deletions(-)

diff --git a/Config.in.legacy b/Config.in.legacy
index 3330566..5a4ef2e 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -105,6 +105,16 @@ comment "----------------------------------------------------"
 endif
 
 ###############################################################################
+comment "Legacy options removed in 2015.11"
+
+# Since FreeRDP has new depednencies, protect this legacy to avoid the
+# infamous "unmet direct dependencies" kconfig error.
+config BR2_PACKAGE_FREERDP_CLIENT
+	bool "freerdp client option renamed"
+	depends on BR2_PACKAGE_FREERDP
+	select BR2_PACKAGE_FREERDP_CLIENT_X11
+
+###############################################################################
 comment "Legacy options removed in 2015.08"
 
 config BR2_PACKAGE_KODI_PVR_ADDONS
diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index ca57cef..7758025 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -59,14 +59,14 @@ config BR2_PACKAGE_FREERDP_SERVER
 	select BR2_PACKAGE_XLIB_LIBXEXT
 	select BR2_PACKAGE_XLIB_LIBXFIXES
 
-config BR2_PACKAGE_FREERDP_CLIENT
-	bool "client"
+config BR2_PACKAGE_FREERDP_CLIENT_X11
+	bool "X11 client"
 	default y
 	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBX11
 	select BR2_PACKAGE_XLIB_LIBXEXT
 
-comment "server and client need X.Org"
+comment "server and X11 client need X.Org"
 	depends on !BR2_PACKAGE_XORG7
 
 endif
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 3517933..be95ef1 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -85,18 +85,38 @@ ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y)
 FREERDP_CONF_OPTS += -DWITH_SERVER=ON
 endif
 
-ifeq ($(BR2_PACKAGE_FREERDP_CLIENT),y)
+ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_X11),y)
 FREERDP_CONF_OPTS += -DWITH_CLIENT=ON
 endif
 
 #---------------------------------------
 # X.Org libs for client and/or server
 
-ifneq ($(BR2_PACKAGE_FREERDP_SERVER)$(BR2_PACKAGE_FREERDP_CLIENT),)
+# The FreeRDP buildsystem uses non-orthogonal options. For example it
+# is not possible to build the server and the wayland client without
+# also building the X client. That's because the dependencies of the
+# server (the X libraries) are a superset of those of the X client.
+# So, as soon as FreeRDP is configured for the server and the wayland
+# client, it will believe it also has to build the X client, because
+# the libraries it needs are enabled.
+#
+# Furthermore, the shadow server is always built, even if there's nothing
+# it can serve (i.e. the X libs are disabled).
+#
+# So, we do not care whether we build too much; we remove, as
+# post-install hooks, whatever we do not want.
 
-# Those two are mandatory for both the server and the client
+# If Xorg is enabled, and the server or the X client are, then libX11
+# and libXext are forcibly enabled at the Kconfig level. However, if
+# Xorg is enabled but neither the server nor the X client are, then
+# there's nothing that guarantees those two libs are enabled. So we
+# really must check for them.
+ifeq ($(BR2_PACKAGE_XLIB_LIBX11)$(BR2_PACKAGE_XLIB_LIBX11),yy)
 FREERDP_DEPENDENCIES += xlib_libX11 xlib_libXext
 FREERDP_CONF_OPTS += -DWITH_X11=ON
+else
+FREERDP_CONF_OPTS += -DWITH_X11=OFF
+endif
 
 # The following libs are either optional or mandatory only for either
 # the server or the client. A mandatory library for either one is
@@ -171,12 +191,6 @@ else
 FREERDP_CONF_OPTS += -DWITH_XV=OFF
 endif
 
-else # ! SERVER && ! CLIENT
-
-FREERDP_CONF_OPTS += -DWITH_X11=OFF
-
-endif # ! SERVER && ! CLIENT
-
 #---------------------------------------
 # Post-install hooks to cleanup and install missing stuff
 
@@ -189,6 +203,27 @@ endef
 FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_SHADOW_SERVER
 endif # ! server
 
+# X client is always built as soon as a client is enabled and the
+# necessary libs are enabeld (e.g. because of the server), so manually
+# remove it if the user does not want it.
+ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_X11),)
+define FREERDP_RM_CLIENT_X11
+	rm -f $(TARGET_DIR)/usr/bin/xfreerdp
+	rm -f $(TARGET_DIR)/usr/lib/libxfreerdp-client*
+endef
+FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_X11
+define FREERDP_RM_CLIENT_X11_LIB
+	rm -f $(STAGING_DIR)/usr/lib/libxfreerdp-client*
+endef
+FREERDP_POST_INSTALL_STAGING_HOOKS += FREERDP_RM_CLIENT_X11_LIB
+endif # ! X client
+
+# Remove static libraries in unusual dir
+define FREERDP_CLEANUP
+	rm -rf $(TARGET_DIR)/usr/lib/freerdp
+endef
+FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP
+
 FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF
 
 # Install the server key and certificate, so that a client can connect.
-- 
1.9.1

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

* [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client
  2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
                   ` (3 preceding siblings ...)
  2015-09-06 19:54 ` [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client Yann E. MORIN
@ 2015-09-06 19:54 ` Yann E. MORIN
  2015-10-03 12:13   ` Peter Korsgaard
  4 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2015-09-06 19:54 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/freerdp/Config.in  |  5 +++++
 package/freerdp/freerdp.mk | 22 ++++++++++++++++++----
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index 7758025..a007b0b 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -69,6 +69,11 @@ config BR2_PACKAGE_FREERDP_CLIENT_X11
 comment "server and X11 client need X.Org"
 	depends on !BR2_PACKAGE_XORG7
 
+# Dependencies for wayland are already dependencies of FreeRDP
+config BR2_PACKAGE_FREERDP_CLIENT_WL
+	bool "wayland client"
+	select BR2_PACKAGE_WAYLAND
+
 endif
 
 comment "freerdp needs a toolchain w/ wchar, dynamic library, threads"
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index be95ef1..ace092c 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -85,12 +85,12 @@ ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y)
 FREERDP_CONF_OPTS += -DWITH_SERVER=ON
 endif
 
-ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_X11),y)
+ifneq ($(BR2_PACKAGE_FREERDP_CLIENT_X11)$(BR2_PACKAGE_FREERDP_CLIENT_WL),)
 FREERDP_CONF_OPTS += -DWITH_CLIENT=ON
 endif
 
 #---------------------------------------
-# X.Org libs for client and/or server
+# Libraries for client and/or server
 
 # The FreeRDP buildsystem uses non-orthogonal options. For example it
 # is not possible to build the server and the wayland client without
@@ -191,6 +191,13 @@ else
 FREERDP_CONF_OPTS += -DWITH_XV=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+FREERDP_DEPENDENCIES += wayland
+FREERDP_CONF_OPTS += -DWITH_WAYLAND=ON
+else
+FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF
+endif
+
 #---------------------------------------
 # Post-install hooks to cleanup and install missing stuff
 
@@ -218,14 +225,21 @@ endef
 FREERDP_POST_INSTALL_STAGING_HOOKS += FREERDP_RM_CLIENT_X11_LIB
 endif # ! X client
 
+# Wayland client is always built as soon as wayland is enabled, so
+# manually remove it if the user does not want it.
+ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_WL),)
+define FREERDP_RM_CLIENT_WL
+	rm -f $(TARGET_DIR)/usr/bin/wlfreerdp
+endef
+FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_WL
+endif
+
 # Remove static libraries in unusual dir
 define FREERDP_CLEANUP
 	rm -rf $(TARGET_DIR)/usr/lib/freerdp
 endef
 FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP
 
-FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF
-
 # 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.
 # We install them even if the server is not enabled, since another server
-- 
1.9.1

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

* [Buildroot] [PATCH 1/5] package/freerdp: bump to master
  2015-09-06 19:54 ` [Buildroot] [PATCH 1/5] package/freerdp: bump to master Yann E. MORIN
@ 2015-10-02 20:29   ` Peter Korsgaard
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Korsgaard @ 2015-10-02 20:29 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Currently, we're packaging FreeRDP from the stable-1.1 branch, which has
 > not evolved since march 2015 and hasn't seen any release (not even a
 > tag) since July 2013. It is by all purpose and means, dead.

 > Other packages that may use FreeRDP (like weston) are now migrating to,
 > or have already migrated to using the API from master, which has changed
 > a bit from what was available on the stable-1.1 branch. So, those
 > packages now FTBFS.

 > However, FreeRDP still has not done a release from their master branch;
 > the last tag dates back to September 2014 and there are 1850+ changes on
 > top of that tag.

 > So, switch to using the currently-latest commit from master.

 > This version can also use gstreamer-1.x (in addition to gst-0.x), which
 > needs quite some rework on how we handle the dependency on gstreamer.
 > Drop gstreamer support entirely, support for gst-0.x and gst-1.x will be
 > re-added in a followup patch.

 > Similarly, a wayland client can now be built, support for which will
 > be added in a subsequent path; it is currently forcibly disabled.

 > The way the libraries are built has changed: the previous single library
 > has been split in multiple libraries, each implementing parts of the RDP
 > protocol.

 > Slight rewording of the prompts:
 >   - drop the 'install' for client and server.
 >   - drop 'freerdp' from the client and server comment

 > The location of the server keys has changed, so copy them from the new
 > location.

 > Finally, drop patches 1 and 3, applied upstrem; rename remaining
 > patches.

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Committed, thanks.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend
  2015-09-06 19:54 ` [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend Yann E. MORIN
@ 2015-10-02 20:29   ` Peter Korsgaard
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Korsgaard @ 2015-10-02 20:29 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Now that we've switched to using FreeRDP from master, we can build the
 > weston's FreeRDP backend again.

 > Propagate the new dependencies of FreeRDP.

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Committed, thanks.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer
  2015-09-06 19:54 ` [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer Yann E. MORIN
@ 2015-10-03  7:08   ` Peter Korsgaard
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Korsgaard @ 2015-10-03  7:08 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Previously, we expected the user to select gstreamer-0.x on his own,
 > to enable gstreamer support in FreeRDP. This could have been a bit
 > confusing to the user, as he may have enabled gst-1.x but FreeRDP did
 > only support gst-0.x.

 > Also, gstreamer support needs xlib-libxrandr, which was missing in
 > FreeRDP's dependencies, so it was never enabled (AFAICS).

 > (Re-)introduce support for gstreamer-0.x and gstreamer-1.x, since both
 > are supported.

 > We're doing it in a choice, and forcibly select whichever version the
 > user chooses, rather than automatically detect it as previosuly done.
 > We can select gstreamer, as their dependencies are anyway already
 > covered by the ones of FreeRDP.

Is there an advantage to doing so? Now people will not get gstreamer
support by default even though they have gstreamer packages enabled.


 > This also now requires xlib-libxrandr, so hide the choice if X.org is
 > not enabled, still offer the option of not using gstreamer if it is.

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 > ---
 >  package/freerdp/Config.in  | 28 ++++++++++++++++++++++++++++
 >  package/freerdp/freerdp.mk | 14 +++++++++++++-
 >  2 files changed, 41 insertions(+), 1 deletion(-)

 > diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
 > index ab8c3f5..ca57cef 100644
 > --- a/package/freerdp/Config.in
 > +++ b/package/freerdp/Config.in
 > @@ -23,6 +23,34 @@ config BR2_PACKAGE_FREERDP
 
 >  if BR2_PACKAGE_FREERDP
 
 > +choice
 > +	bool "gstreamer support"
 > +	depends on BR2_PACKAGE_XORG7 # xlib-libxrandr

Would people ever want to configure this without explicitly having
enabled gstreamer{,1}?

I think it makes more sense to let this depend on
BR2_PACKAGE_GSTREAMER || BR2_PACKAGE_GSTREAMER1 as well.

> +
 > +config BR2_PACKAGE_FREERDP_GSTREAMER_NO
 > +	bool "none"
 > +

And then move this to the bottom so gstreamer support is enabled by
default.

> +config BR2_PACKAGE_FREERDP_GSTREAMER1
 > +	bool "gstreamer-1.x"
 > +	# gstreamer-1.x dependencies already dependencies of FreeRDP
 > +	select BR2_PACKAGE_GSTREAMER1

This should then be a 'depends on'.

> +	select BR2_PACKAGE_GST1_PLUGINS_BASE
 > +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
 > +	select BR2_PACKAGE_XLIB_LIBXRANDR
 > +
 > +config BR2_PACKAGE_FREERDP_GSTREAMER
 > +	bool "gstreamer-0.x"
 > +	# gstreamer-0.x dependencies already dependencies of FreeRDP
 > +	select BR2_PACKAGE_GSTREAMER

And here as well.

> +	select BR2_PACKAGE_GST_PLUGINS_BASE
 > +	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
 > +	select BR2_PACKAGE_XLIB_LIBXRANDR

Looking at FindGStreamer_0_10.cmake I see it needs libxml2 and uses
pkg-config as well.


> +
 > +endchoice
 > +
 > +comment "gstreamer support needs X.Org"
 > +	depends on !BR2_PACKAGE_XORG7

And then this should also depend on gstreamer|gstreamer1

With that said, I'm not sure we really need such detailed user
configuration. Would there ever be any good reason to NOT enable
gstreamer{,1} support if it is available? And with gstreamer 0.10 being
so old I don't think it is an issue to go for gstreamer1 support if both
are enabled.

But that is something we can improve later. Committed with the above
fixes, thanks!

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client
  2015-09-06 19:54 ` [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client Yann E. MORIN
@ 2015-10-03 12:04   ` Peter Korsgaard
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Korsgaard @ 2015-10-03 12:04 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Currently, the only client we can build is the X11 client.
 > FreeRDP now has support for building a wayland client.

 > However, that means we need to rethink the way we build FreeRDP, because
 > of some "inconsistencies" in its build system. This is because FreeRDP's
 > buildsystem does not have orthogonal options; some of the options can be
 > used for different components.

 > For example, the set of X11 libraries needed to build the server is a
 > superset of the X11 libraries needed to build the X11 client. So,
 > whenever the server is enabled, it means the X11 libraries required to
 > build the X11 client are available.

 > Now, if the user also wants to build the waland client (but not the X11
 > client), there is no way to tell FreeRDP not to build the X11 client,
 > because there is a single option, WITH_CLIENT, to drive whether any of
 > the clients is built. The decision is made on the availability of the
 > required libraries. And since the server is enabled, the X11 libs
 > required to build the X11 client are available. So, we end up with the
 > X11 client, even though it is not wanted.

 > And conversely with wayland...

 > So, we redesign the way we build FreeRDP. WE do not care what is
 > actually built; we just build whatever is buildable with the current
 > set of enabled libraries. But at install time (both in staging/ and
 > target/) we remove whatever the user does not want.

 > We also take the opportunity to rename the X11 client option, so it is
 > coherent with the soon-to-be-introduced wayland client.

 > Note: since FreeRDP has gained new dependencies, we can not just
 > introduce the legacy option as-is, otherwise we run the risk that it
 > selects the new option even though the new FreeRDP dependencies are not
 > enabled, spitting out the infamous 'unmet direct dependencies" kconfig
 > error.

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

 > +# Remove static libraries in unusual dir
 > +define FREERDP_CLEANUP
 > +	rm -rf $(TARGET_DIR)/usr/lib/freerdp
 > +endef
 > +FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP
 > +

This part doesn't really seem directly related to the rest, but OK.

Committed, thanks.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client
  2015-09-06 19:54 ` [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client Yann E. MORIN
@ 2015-10-03 12:13   ` Peter Korsgaard
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Korsgaard @ 2015-10-03 12:13 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 > ---
 >  package/freerdp/Config.in  |  5 +++++
 >  package/freerdp/freerdp.mk | 22 ++++++++++++++++++----
 >  2 files changed, 23 insertions(+), 4 deletions(-)

 > diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
 > index 7758025..a007b0b 100644
 > --- a/package/freerdp/Config.in
 > +++ b/package/freerdp/Config.in
 > @@ -69,6 +69,11 @@ config BR2_PACKAGE_FREERDP_CLIENT_X11
 >  comment "server and X11 client need X.Org"
 >  	depends on !BR2_PACKAGE_XORG7
 
 > +# Dependencies for wayland are already dependencies of FreeRDP
 > +config BR2_PACKAGE_FREERDP_CLIENT_WL
 > +	bool "wayland client"
 > +	select BR2_PACKAGE_WAYLAND

For the X11 client we depend on XORG, so it imho makes sense to use
depends on (and default y) here as well. It is also in line with the
other packages with optional wayland support (gstreamer, libgtk3).

Committed with that fixed, thanks.

-- 
Bye, Peter Korsgaard

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

end of thread, other threads:[~2015-10-03 12:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-06 19:54 [Buildroot] [PATCH 0/5] package/freedp: bump version (branch yem/freerdp) Yann E. MORIN
2015-09-06 19:54 ` [Buildroot] [PATCH 1/5] package/freerdp: bump to master Yann E. MORIN
2015-10-02 20:29   ` Peter Korsgaard
2015-09-06 19:54 ` [Buildroot] [PATCH 2/5] package/weston: restore the freerdp backend Yann E. MORIN
2015-10-02 20:29   ` Peter Korsgaard
2015-09-06 19:54 ` [Buildroot] [PATCH 3/5] package/freerdp: re-add support for gstreamer Yann E. MORIN
2015-10-03  7:08   ` Peter Korsgaard
2015-09-06 19:54 ` [Buildroot] [PATCH 4/5] package/freerdp: prepare for adding another client Yann E. MORIN
2015-10-03 12:04   ` Peter Korsgaard
2015-09-06 19:54 ` [Buildroot] [PATCH 5/5] package/freerdp: introduce the wayland client Yann E. MORIN
2015-10-03 12:13   ` Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox