All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFC 0/3] WPE WebKit
@ 2018-12-23 15:48 Francois Perrad
  2018-12-23 15:48 ` [Buildroot] [RFC 1/3] libwpe: new package Francois Perrad
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Francois Perrad @ 2018-12-23 15:48 UTC (permalink / raw)
  To: buildroot

Another port of WebKit (https://wpewebkit.org/), a project started in 2018.

Testing fresh code of various OpenGL backends is awful.

Francois Perrad (3):
  libwpe: new package
  wpebackend-fdo: new package
  wpewebkit: new package

 DEVELOPERS                                 |  3 +
 package/Config.in                          |  3 +
 package/libwpe/Config.in                   | 12 ++++
 package/libwpe/libwpe.hash                 |  7 ++
 package/libwpe/libwpe.mk                   | 15 ++++
 package/wpebackend-fdo/Config.in           | 17 +++++
 package/wpebackend-fdo/wpebackend-fdo.hash |  7 ++
 package/wpebackend-fdo/wpebackend-fdo.mk   | 15 ++++
 package/wpewebkit/Config.in                | 82 ++++++++++++++++++++++
 package/wpewebkit/wpewebkit.hash           |  8 +++
 package/wpewebkit/wpewebkit.mk             | 69 ++++++++++++++++++
 11 files changed, 238 insertions(+)
 create mode 100644 package/libwpe/Config.in
 create mode 100644 package/libwpe/libwpe.hash
 create mode 100644 package/libwpe/libwpe.mk
 create mode 100644 package/wpebackend-fdo/Config.in
 create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
 create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk
 create mode 100644 package/wpewebkit/Config.in
 create mode 100644 package/wpewebkit/wpewebkit.hash
 create mode 100644 package/wpewebkit/wpewebkit.mk

-- 
2.17.1

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

* [Buildroot] [RFC 1/3] libwpe: new package
  2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
@ 2018-12-23 15:48 ` Francois Perrad
  2018-12-28  0:47   ` Adrian Perez de Castro
  2018-12-23 15:48 ` [Buildroot] [RFC 2/3] wpebackend-fdo: " Francois Perrad
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Francois Perrad @ 2018-12-23 15:48 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 DEVELOPERS                 |  1 +
 package/Config.in          |  1 +
 package/libwpe/Config.in   | 12 ++++++++++++
 package/libwpe/libwpe.hash |  7 +++++++
 package/libwpe/libwpe.mk   | 15 +++++++++++++++
 5 files changed, 36 insertions(+)
 create mode 100644 package/libwpe/Config.in
 create mode 100644 package/libwpe/libwpe.hash
 create mode 100644 package/libwpe/libwpe.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 6f687d748..705842310 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -810,6 +810,7 @@ F:	package/gdbm/
 F:	package/libtomcrypt/
 F:	package/libtommath/
 F:	package/libump/
+F:	package/libwpe/
 F:	package/linenoise/
 F:	package/ljlinenoise/
 F:	package/lpeg/
diff --git a/package/Config.in b/package/Config.in
index 038ddf6b2..7615c5853 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1283,6 +1283,7 @@ menu "Graphics"
 	source "package/libva-intel-driver/Config.in"
 	source "package/libvdpau/Config.in"
 	source "package/libvips/Config.in"
+	source "package/libwpe/Config.in"
 	source "package/menu-cache/Config.in"
 	source "package/opencv/Config.in"
 	source "package/opencv3/Config.in"
diff --git a/package/libwpe/Config.in b/package/libwpe/Config.in
new file mode 100644
index 000000000..8cf99fe0c
--- /dev/null
+++ b/package/libwpe/Config.in
@@ -0,0 +1,12 @@
+comment "libwpe needs an OpenEGL-capable backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_LIBWPE
+	bool "libwpe"
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_LIBXKBCOMMON
+	help
+	  General-purpose library specifically developed for the
+	  WPE-flavored port of WebKit.
+
+	  https://wpewebkit.org/
diff --git a/package/libwpe/libwpe.hash b/package/libwpe/libwpe.hash
new file mode 100644
index 000000000..bda380988
--- /dev/null
+++ b/package/libwpe/libwpe.hash
@@ -0,0 +1,7 @@
+# From https://wpewebkit.org/releases/libwpe-1.1.0.tar.xz.sums
+md5 b34c3920cb749ebc74fe45a793cf57af libwpe-1.1.0.tar.xz
+sha1 69f0bc7f422c6a196c49439a454f7734ecac1126 libwpe-1.1.0.tar.xz
+sha256 72e34ad754be11abd1a438cfe195d8d644c52105ab2b1c3b39dec6228bc776ce libwpe-1.1.0.tar.xz
+
+# Hashes for license files:
+sha256 6efc9991641b47b1f4e727db7f090d0ade00117dcbbc74be622f2baceddb1f22 COPYING
diff --git a/package/libwpe/libwpe.mk b/package/libwpe/libwpe.mk
new file mode 100644
index 000000000..2b9309843
--- /dev/null
+++ b/package/libwpe/libwpe.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# libwpe
+#
+################################################################################
+
+LIBWPE_VERSION = 1.1.0
+LIBWPE_SITE = http://wpewebkit.org/releases
+LIBWPE_SOURCE = libwpe-$(LIBWPE_VERSION).tar.xz
+LIBWPE_INSTALL_STAGING = YES
+LIBWPE_LICENSE = BSD-2-Clause
+LIBWPE_LICENSE_FILES = COPYING
+LIBWPE_DEPENDENCIES = libegl libxkbcommon
+
+$(eval $(cmake-package))
-- 
2.17.1

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

* [Buildroot] [RFC 2/3] wpebackend-fdo: new package
  2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
  2018-12-23 15:48 ` [Buildroot] [RFC 1/3] libwpe: new package Francois Perrad
@ 2018-12-23 15:48 ` Francois Perrad
  2018-12-28  0:58   ` Adrian Perez de Castro
  2018-12-23 15:48 ` [Buildroot] [RFC 3/3] wpewebkit: " Francois Perrad
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Francois Perrad @ 2018-12-23 15:48 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 DEVELOPERS                                 |  1 +
 package/Config.in                          |  1 +
 package/wpebackend-fdo/Config.in           | 17 +++++++++++++++++
 package/wpebackend-fdo/wpebackend-fdo.hash |  7 +++++++
 package/wpebackend-fdo/wpebackend-fdo.mk   | 15 +++++++++++++++
 5 files changed, 41 insertions(+)
 create mode 100644 package/wpebackend-fdo/Config.in
 create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
 create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 705842310..93a2bf5ad 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -828,6 +828,7 @@ F:	package/qemu/
 F:	package/sdl2_mixer/
 F:	package/sdl2_net/
 F:	package/tekui/
+F:	package/wpebackend-fdo/
 F:	package/wsapi-fcgi/
 F:	package/wsapi-xavante/
 F:	utils/scancpan
diff --git a/package/Config.in b/package/Config.in
index 7615c5853..e8a676ab0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1302,6 +1302,7 @@ menu "Graphics"
 	source "package/webkitgtk/Config.in"
 	source "package/webp/Config.in"
 	source "package/woff2/Config.in"
+	source "package/wpebackend-fdo/Config.in"
 	source "package/zbar/Config.in"
 	source "package/zxing-cpp/Config.in"
 endmenu
diff --git a/package/wpebackend-fdo/Config.in b/package/wpebackend-fdo/Config.in
new file mode 100644
index 000000000..9025834e1
--- /dev/null
+++ b/package/wpebackend-fdo/Config.in
@@ -0,0 +1,17 @@
+comment "wpebackend-fdo needs an OpenEGL-capable backend"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_WPEBACKEND_FDO
+	bool "wpebackend-fdo"
+	depends on !BR2_STATIC_LIBS # dlfcn.h
+	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
+	depends on BR2_USE_WCHAR # gettext
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBWPE
+	select BR2_PACKAGE_WAYLAND
+	help
+	  WPE's backend based on a freedesktop.org stack.
+
+	  https://wpewebkit.org/
diff --git a/package/wpebackend-fdo/wpebackend-fdo.hash b/package/wpebackend-fdo/wpebackend-fdo.hash
new file mode 100644
index 000000000..6ebfcf335
--- /dev/null
+++ b/package/wpebackend-fdo/wpebackend-fdo.hash
@@ -0,0 +1,7 @@
+# From https://wpewebkit.org/releases/wpebackend-fdo-1.1.0.tar.xz.sums
+md5 dc852a6cafaf4b6392dcb91e36cd7abb wpebackend-fdo-1.1.0.tar.xz
+sha1 688377f441e19273fe2b44c0a2ea9da149f97fa4 wpebackend-fdo-1.1.0.tar.xz
+sha256 f6c72130d16e50860cb83eb0f6e109c76f1826d2c6bee39025fb3651941761e7 wpebackend-fdo-1.1.0.tar.xz
+
+# Hashes for license files:
+sha256 c9f6803371047fad3e72200ec6cd226329a5ee08ac61104c8211c2761fb46825 COPYING
diff --git a/package/wpebackend-fdo/wpebackend-fdo.mk b/package/wpebackend-fdo/wpebackend-fdo.mk
new file mode 100644
index 000000000..b62e710a9
--- /dev/null
+++ b/package/wpebackend-fdo/wpebackend-fdo.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# wpebackend-fdo
+#
+################################################################################
+
+WPEBACKEND_FDO_VERSION = 1.1.0
+WPEBACKEND_FDO_SITE = http://wpewebkit.org/releases
+WPEBACKEND_FDO_SOURCE = wpebackend-fdo-$(WPEBACKEND_FDO_VERSION).tar.xz
+WPEBACKEND_FDO_INSTALL_STAGING = YES
+WPEBACKEND_FDO_LICENSE = BSD-2-Clause
+WPEBACKEND_FDO_LICENSE_FILES = COPYING
+WPEBACKEND_FDO_DEPENDENCIES = libglib2 libwpe wayland
+
+$(eval $(cmake-package))
-- 
2.17.1

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

* [Buildroot] [RFC 3/3] wpewebkit: new package
  2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
  2018-12-23 15:48 ` [Buildroot] [RFC 1/3] libwpe: new package Francois Perrad
  2018-12-23 15:48 ` [Buildroot] [RFC 2/3] wpebackend-fdo: " Francois Perrad
@ 2018-12-23 15:48 ` Francois Perrad
  2018-12-28  1:18   ` Adrian Perez de Castro
  2018-12-27  9:30 ` [Buildroot] [RFC 0/3] WPE WebKit Thomas Petazzoni
  2018-12-28  0:34 ` Adrian Perez de Castro
  4 siblings, 1 reply; 15+ messages in thread
From: Francois Perrad @ 2018-12-23 15:48 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 DEVELOPERS                       |  1 +
 package/Config.in                |  1 +
 package/wpewebkit/Config.in      | 82 ++++++++++++++++++++++++++++++++
 package/wpewebkit/wpewebkit.hash |  8 ++++
 package/wpewebkit/wpewebkit.mk   | 69 +++++++++++++++++++++++++++
 5 files changed, 161 insertions(+)
 create mode 100644 package/wpewebkit/Config.in
 create mode 100644 package/wpewebkit/wpewebkit.hash
 create mode 100644 package/wpewebkit/wpewebkit.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 93a2bf5ad..491ebcaca 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -829,6 +829,7 @@ F:	package/sdl2_mixer/
 F:	package/sdl2_net/
 F:	package/tekui/
 F:	package/wpebackend-fdo/
+F:	package/wpewebkit/
 F:	package/wsapi-fcgi/
 F:	package/wsapi-xavante/
 F:	utils/scancpan
diff --git a/package/Config.in b/package/Config.in
index e8a676ab0..592f00456 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1303,6 +1303,7 @@ menu "Graphics"
 	source "package/webp/Config.in"
 	source "package/woff2/Config.in"
 	source "package/wpebackend-fdo/Config.in"
+	source "package/wpewebkit/Config.in"
 	source "package/zbar/Config.in"
 	source "package/zxing-cpp/Config.in"
 endmenu
diff --git a/package/wpewebkit/Config.in b/package/wpewebkit/Config.in
new file mode 100644
index 000000000..7a020dd05
--- /dev/null
+++ b/package/wpewebkit/Config.in
@@ -0,0 +1,82 @@
+comment "wpewebkit needs an OpenGL ES w/ EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_WPEWEBKIT
+	bool "wpewebkit"
+	depends on !BR2_STATIC_LIBS # dlfcn.h
+	depends on !BR2_BINFMT_FLAT # icu
+	depends on BR2_INSTALL_LIBSTDCPP # icu
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
+	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # icu
+	depends on BR2_USE_WCHAR # gettext
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_PACKAGE_HAS_LIBGLES
+	depends on BR2_PACKAGE_HAS_LIBEGL
+	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error
+	select BR2_PACKAGE_CAIRO
+	select BR2_PACKAGE_CAIRO_PNG
+	select BR2_PACKAGE_HARFBUZZ
+	select BR2_PACKAGE_ICU
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBEPOXY
+	select BR2_PACKAGE_LIBGCRYPT
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_LIBSOUP
+	select BR2_PACKAGE_WAYLAND_PROTOCOLS
+	select BR2_PACKAGE_WEBP
+	select BR2_PACKAGE_WEBP_DEMUX
+	select BR2_PACKAGE_WPEBACKEND_FDO
+	help
+	  WPE (Web Platform for Embedded) port of the WebKit engine,
+	  to allow embedders to create simple and performant systems
+	  based on Web platform technologies.
+
+	  https://wpewebkit.org/
+
+if BR2_PACKAGE_WPEWEBKIT
+
+config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
+	bool "multimedia support"
+	select BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_GST1_PLUGINS_BAD
+	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
+	select BR2_PACKAGE_GST1_PLUGINS_GOOD
+	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4
+	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP
+	select BR2_PACKAGE_GST1_LIBAV
+	help
+	  This option pulls in all of the required dependencies
+	  to enable multimedia (video/audio) support.
+
+if BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
+
+config BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL
+	bool "use gstreamer-gl"
+	default y
+	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
+	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
+	help
+	  Use the GStreamer GL elements for handling video content.
+	  This is recommended as it improves performance of video
+	  playback. In some target configurations incorrect rendering
+	  might be produced, and disabling this option may help.
+
+endif
+
+config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
+	bool "WebDriver support"
+	help
+	  Enable support for WebDriver. This will build and install the
+	  WebKitWebDriver program in the target.
+
+endif
diff --git a/package/wpewebkit/wpewebkit.hash b/package/wpewebkit/wpewebkit.hash
new file mode 100644
index 000000000..39937a346
--- /dev/null
+++ b/package/wpewebkit/wpewebkit.hash
@@ -0,0 +1,8 @@
+# From https://wpewebkit.org/releases/wpewebkit-2.22.3.tar.xz.sums
+md5 6d0c693ea49a93fc9e701cf784245ea5 wpewebkit-2.22.3.tar.xz
+sha1 d8a22bec787f38939c7922dc43bf27c9144cef74 wpewebkit-2.22.3.tar.xz
+sha256 241f177cded1a4ba3088716650eaaac25588878882170789b3c630ac45dbb2fa wpewebkit-2.22.3.tar.xz
+
+# Hashes for license files:
+sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE
+sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
new file mode 100644
index 000000000..fb30326d6
--- /dev/null
+++ b/package/wpewebkit/wpewebkit.mk
@@ -0,0 +1,69 @@
+################################################################################
+#
+# wpewebkit
+#
+################################################################################
+
+WPEWEBKIT_VERSION = 2.22.3
+WPEWEBKIT_SITE = http://www.wpewebkit.org/releases
+WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
+WPEWEBKIT_INSTALL_STAGING = YES
+WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
+WPEWEBKIT_LICENSE_FILES = \
+	Source/WebCore/LICENSE-APPLE \
+	Source/WebCore/LICENSE-LGPL-2.1
+WPEWEBKIT_DEPENDENCIES = host-gperf host-python host-ruby \
+	harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libpng \
+	wayland-protocols webp wpebackend-fdo
+
+WPEWEBKIT_CONF_OPTS = \
+	-DPORT=WPE \
+	-DENABLE_API_TESTS=OFF \
+	-DENABLE_MINIBROWSER=OFF
+
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
+WPEWEBKIT_CONF_OPTS += \
+	-DENABLE_VIDEO=ON \
+	-DENABLE_WEB_AUDIO=ON
+WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base gst1-plugins-good
+else
+WPEWEBKIT_CONF_OPTS += \
+	-DENABLE_VIDEO=OFF \
+	-DENABLE_WEB_AUDIO=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
+WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
+WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
+else
+WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
+WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTASN1),y)
+WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=ON
+WPEWEBKIT_DEPENDENCIES += libtasn1
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXSLT),y)
+WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=ON
+WPEWEBKIT_DEPENDENCIES += libxslt
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_WOFF2),y)
+WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
+WPEWEBKIT_DEPENDENCIES += woff2
+else
+WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
+endif
+
+$(eval $(cmake-package))
-- 
2.17.1

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

* [Buildroot] [RFC 0/3] WPE WebKit
  2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
                   ` (2 preceding siblings ...)
  2018-12-23 15:48 ` [Buildroot] [RFC 3/3] wpewebkit: " Francois Perrad
@ 2018-12-27  9:30 ` Thomas Petazzoni
  2018-12-28  0:34 ` Adrian Perez de Castro
  4 siblings, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2018-12-27  9:30 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 23 Dec 2018 16:48:42 +0100, Francois Perrad wrote:
> Another port of WebKit (https://wpewebkit.org/), a project started in 2018.
> 
> Testing fresh code of various OpenGL backends is awful.

I'm not sure what you mean by this sentence. Could you explain ?

Also, why is this series marked RFC ? You believe it's not in a state
where it can be merged ?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [RFC 0/3] WPE WebKit
  2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
                   ` (3 preceding siblings ...)
  2018-12-27  9:30 ` [Buildroot] [RFC 0/3] WPE WebKit Thomas Petazzoni
@ 2018-12-28  0:34 ` Adrian Perez de Castro
  2018-12-30 18:01   ` François Perrad
  2018-12-31 14:13   ` Thomas Petazzoni
  4 siblings, 2 replies; 15+ messages in thread
From: Adrian Perez de Castro @ 2018-12-28  0:34 UTC (permalink / raw)
  To: buildroot

Hello Fran?ois,

I had been thinking myself of submitting a patch series for WPE, and at Igalia
we are maintaining an overlay (to be used with BR2_EXTERNAL, which can be
found at https://github.com/Igalia/buildroot-wpe). I have had plenty to do in
the latest few months, so I barely haven't had any time for Buildroot other
than updating the WebKitGTK+ packaging whenever there is a release -- so
thanks a lot for helping out by submitting this patch set :)

Later I will be doing a few comments on each of the individual patches. As for
general comments:

- It looks like you took the basis for your patch set from the *downstream*
  fork of Buildroot at https://github.com/WebPlatformForEmbedded/buildroot
  Please do NOT use anything from there, as it is based on a very old version
  of Buildroot, and it packages versions of the ?wpewebkit? package older
  than the official packages releases from https://wpewebkit.org

- The way I was hoping to do the WPE packaging for upstream Buildroot was to
  reuse as many bits and pieces as possible from the WebKitGTK+ packaging,
  and share code with the WPE packaging. For example: right now there is a
  BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS configuration symbol, and in the WPE
  overlay I mentioned above there is BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS...
  ideally we would have a single BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS, which
  gets used both by the ?wpewebkit? and ?webkitgtk? packages (the same would
  go for the logic that determines whether the target supports the JSC JIT,
  and others). I'll follow up on this in a different e-mail.

- I would like to allow building more backends than WPEBackend-fdo. More
  precisely, WPEBackend-rdk is a good option to use dispmanx on the Raspberry
  Pi directly, without needing a Wayland compositor.

- It would be good as well to have a launcher/browser which is NOT the
  MiniBrowser included with the ?wpewebkit? package, which is intended just
  for testing. The better option at the moment is Cog, for which I have
  recently started doing packaged releases as well, and it is known to work
  with the -fdo and -rdk backends (and others which are not publicly available
  as well). It can be found at https://github.com/Igalia/cog

Please note that I am not trying to demotivate you with all the comments
above, I think it's awesome that third parties are finding WPE useful and
want to help out with the upstream packaging in Buildroot: that is *awesome*
and super appreciated -- I just want to share my ideas in the mailing list
to see what we all agree is th way go to provide the best packaging we can
for WPE :)


On Sun, 23 Dec 2018 16:48:42 +0100, Francois Perrad <fperrad@gmail.com> wrote:

> Another port of WebKit (https://wpewebkit.org/), a project started in 2018.
> 
> Testing fresh code of various OpenGL backends is awful.

What do you mean with this? Does this have to do with the packaging/testing of
the different WPE backends, or is it something else? I am really interested in
knowing what your pain points have been, to see if there is something that we
can improve (and here I am talking with my ?WebKit developer hat? on :D).

> Francois Perrad (3):
>   libwpe: new package
>   wpebackend-fdo: new package
>   wpewebkit: new package
> 
>  DEVELOPERS                                 |  3 +
>  package/Config.in                          |  3 +
>  package/libwpe/Config.in                   | 12 ++++
>  package/libwpe/libwpe.hash                 |  7 ++
>  package/libwpe/libwpe.mk                   | 15 ++++
>  package/wpebackend-fdo/Config.in           | 17 +++++
>  package/wpebackend-fdo/wpebackend-fdo.hash |  7 ++
>  package/wpebackend-fdo/wpebackend-fdo.mk   | 15 ++++
>  package/wpewebkit/Config.in                | 82 ++++++++++++++++++++++
>  package/wpewebkit/wpewebkit.hash           |  8 +++
>  package/wpewebkit/wpewebkit.mk             | 69 ++++++++++++++++++
>  11 files changed, 238 insertions(+)
>  create mode 100644 package/libwpe/Config.in
>  create mode 100644 package/libwpe/libwpe.hash
>  create mode 100644 package/libwpe/libwpe.mk
>  create mode 100644 package/wpebackend-fdo/Config.in
>  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
>  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk
>  create mode 100644 package/wpewebkit/Config.in
>  create mode 100644 package/wpewebkit/wpewebkit.hash
>  create mode 100644 package/wpewebkit/wpewebkit.mk
> 
> -- 
> 2.17.1

Best regards, and thanks again for bringing up the topic of WPE packaging!


-Adri?n
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181228/00034d54/attachment.asc>

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

* [Buildroot] [RFC 1/3] libwpe: new package
  2018-12-23 15:48 ` [Buildroot] [RFC 1/3] libwpe: new package Francois Perrad
@ 2018-12-28  0:47   ` Adrian Perez de Castro
  0 siblings, 0 replies; 15+ messages in thread
From: Adrian Perez de Castro @ 2018-12-28  0:47 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 23 Dec 2018 16:48:43 +0100, Francois Perrad <fperrad@gmail.com> wrote:

> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  DEVELOPERS                 |  1 +
>  package/Config.in          |  1 +
>  package/libwpe/Config.in   | 12 ++++++++++++
>  package/libwpe/libwpe.hash |  7 +++++++
>  package/libwpe/libwpe.mk   | 15 +++++++++++++++
>  5 files changed, 36 insertions(+)
>  create mode 100644 package/libwpe/Config.in
>  create mode 100644 package/libwpe/libwpe.hash
>  create mode 100644 package/libwpe/libwpe.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 6f687d748..705842310 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -810,6 +810,7 @@ F:	package/gdbm/
>  F:	package/libtomcrypt/
>  F:	package/libtommath/
>  F:	package/libump/
> +F:	package/libwpe/
>  F:	package/linenoise/
>  F:	package/ljlinenoise/
>  F:	package/lpeg/
> diff --git a/package/Config.in b/package/Config.in
> index 038ddf6b2..7615c5853 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1283,6 +1283,7 @@ menu "Graphics"
>  	source "package/libva-intel-driver/Config.in"
>  	source "package/libvdpau/Config.in"
>  	source "package/libvips/Config.in"
> +	source "package/libwpe/Config.in"
>  	source "package/menu-cache/Config.in"
>  	source "package/opencv/Config.in"
>  	source "package/opencv3/Config.in"
> diff --git a/package/libwpe/Config.in b/package/libwpe/Config.in
> new file mode 100644
> index 000000000..8cf99fe0c
> --- /dev/null
> +++ b/package/libwpe/Config.in
> @@ -0,0 +1,12 @@
> +comment "libwpe needs an OpenEGL-capable backend"
> +	depends on !BR2_PACKAGE_HAS_LIBEGL
> +

The dependency line for the comment should be:

   depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_INSTALL_LIBSTDCPP || !BR2_STATIC_LIBS

(See the related comment below, too.)

> +config BR2_PACKAGE_LIBWPE
> +	bool "libwpe"
> +	depends on BR2_PACKAGE_HAS_LIBEGL
> +	select BR2_PACKAGE_LIBXKBCOMMON

You are missing a couple of dependencies here:

   depends on BR2_INSTALL_LIBSTDCPP  # uses C++
   depends on !BR2_STATIC_LIBS       # uses dlopen()

> +	help
> +	  General-purpose library specifically developed for the
> +	  WPE-flavored port of WebKit.
> +
> +	  https://wpewebkit.org/

I am aware that this is the description we have in the GitHub project page,
but IMO this description is pretty badly written (this is our fault as WPE
developes, BTW). I would go with something simple and more descriptive like
?Base library for the WPE WebKit port?  O:-)

> diff --git a/package/libwpe/libwpe.hash b/package/libwpe/libwpe.hash
> new file mode 100644
> index 000000000..bda380988
> --- /dev/null
> +++ b/package/libwpe/libwpe.hash
> @@ -0,0 +1,7 @@
> +# From https://wpewebkit.org/releases/libwpe-1.1.0.tar.xz.sums
> +md5 b34c3920cb749ebc74fe45a793cf57af libwpe-1.1.0.tar.xz
> +sha1 69f0bc7f422c6a196c49439a454f7734ecac1126 libwpe-1.1.0.tar.xz
> +sha256 72e34ad754be11abd1a438cfe195d8d644c52105ab2b1c3b39dec6228bc776ce libwpe-1.1.0.tar.xz
> +
> +# Hashes for license files:
> +sha256 6efc9991641b47b1f4e727db7f090d0ade00117dcbbc74be622f2baceddb1f22 COPYING
> diff --git a/package/libwpe/libwpe.mk b/package/libwpe/libwpe.mk
> new file mode 100644
> index 000000000..2b9309843
> --- /dev/null
> +++ b/package/libwpe/libwpe.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# libwpe
> +#
> +################################################################################
> +
> +LIBWPE_VERSION = 1.1.0

You really want to use 1.0.0 here.

The versioning scheme follows the same rule as for WebKitGTK+, WPE WebKit, and
most other GLib-based components: for a version number X.Y.Z, an even Y number
means that a release is stable, and odd Y number is used for development
releases (with Y>=90 for release candidates).

(The versioning scheme should clearly described somewhere in the project
GitHub page, of course. My apologies for that being missing.)

> +LIBWPE_SITE = http://wpewebkit.org/releases
> +LIBWPE_SOURCE = libwpe-$(LIBWPE_VERSION).tar.xz
> +LIBWPE_INSTALL_STAGING = YES
> +LIBWPE_LICENSE = BSD-2-Clause
> +LIBWPE_LICENSE_FILES = COPYING
> +LIBWPE_DEPENDENCIES = libegl libxkbcommon
> +
> +$(eval $(cmake-package))
> -- 
> 2.17.1


-Adri?n
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181228/7f7a065f/attachment.asc>

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

* [Buildroot] [RFC 2/3] wpebackend-fdo: new package
  2018-12-23 15:48 ` [Buildroot] [RFC 2/3] wpebackend-fdo: " Francois Perrad
@ 2018-12-28  0:58   ` Adrian Perez de Castro
  2018-12-29  9:15     ` François Perrad
  2018-12-31 14:02     ` Thomas Petazzoni
  0 siblings, 2 replies; 15+ messages in thread
From: Adrian Perez de Castro @ 2018-12-28  0:58 UTC (permalink / raw)
  To: buildroot

Hello,

Quick review here...

On Sun, 23 Dec 2018 16:48:44 +0100, Francois Perrad <fperrad@gmail.com> wrote:

> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  DEVELOPERS                                 |  1 +
>  package/Config.in                          |  1 +
>  package/wpebackend-fdo/Config.in           | 17 +++++++++++++++++
>  package/wpebackend-fdo/wpebackend-fdo.hash |  7 +++++++
>  package/wpebackend-fdo/wpebackend-fdo.mk   | 15 +++++++++++++++
>  5 files changed, 41 insertions(+)
>  create mode 100644 package/wpebackend-fdo/Config.in
>  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
>  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 705842310..93a2bf5ad 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -828,6 +828,7 @@ F:	package/qemu/
>  F:	package/sdl2_mixer/
>  F:	package/sdl2_net/
>  F:	package/tekui/
> +F:	package/wpebackend-fdo/
>  F:	package/wsapi-fcgi/
>  F:	package/wsapi-xavante/
>  F:	utils/scancpan
> diff --git a/package/Config.in b/package/Config.in
> index 7615c5853..e8a676ab0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1302,6 +1302,7 @@ menu "Graphics"
>  	source "package/webkitgtk/Config.in"
>  	source "package/webp/Config.in"
>  	source "package/woff2/Config.in"
> +	source "package/wpebackend-fdo/Config.in"
>  	source "package/zbar/Config.in"
>  	source "package/zxing-cpp/Config.in"
>  endmenu
> diff --git a/package/wpebackend-fdo/Config.in b/package/wpebackend-fdo/Config.in
> new file mode 100644
> index 000000000..9025834e1
> --- /dev/null
> +++ b/package/wpebackend-fdo/Config.in
> @@ -0,0 +1,17 @@
> +comment "wpebackend-fdo needs an OpenEGL-capable backend"
> +	depends on !BR2_PACKAGE_HAS_LIBEGL
> +

The dependency line for the comment needs to be updated to be the reverse
of the list of dependencies for the BR2_PACKAGE_WPEBACKEND_FDO symbol below.

Also, the comment text should follow the Buildroot style:

    foo needs a toolchain w/ featA, featB, featC

(There's more details about this in the Buildroot manual, which you can find
at https://buildroot.org/downloads/manual/manual.html)

> +config BR2_PACKAGE_WPEBACKEND_FDO
> +	bool "wpebackend-fdo"
> +	depends on !BR2_STATIC_LIBS # dlfcn.h
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
> +	depends on BR2_USE_WCHAR # gettext
> +	depends on BR2_USE_MMU # fork()

The BR2_USE_MMU belongs in the ?wpewebkit? package (the backend itself does
no forking), and should not be needed here.

The BR2_USE_WCHAR dependency should not be needed here, as gettext is not
required nor used by this package, neither it is needed by ?wayland? nor
?libxkbcommon?.

> +	depends on BR2_PACKAGE_HAS_LIBEGL
> +	select BR2_PACKAGE_LIBGLIB2
> +	select BR2_PACKAGE_LIBWPE
> +	select BR2_PACKAGE_WAYLAND
> +	help
> +	  WPE's backend based on a freedesktop.org stack.
> +
> +	  https://wpewebkit.org/
> diff --git a/package/wpebackend-fdo/wpebackend-fdo.hash b/package/wpebackend-fdo/wpebackend-fdo.hash
> new file mode 100644
> index 000000000..6ebfcf335
> --- /dev/null
> +++ b/package/wpebackend-fdo/wpebackend-fdo.hash
> @@ -0,0 +1,7 @@
> +# From https://wpewebkit.org/releases/wpebackend-fdo-1.1.0.tar.xz.sums
> +md5 dc852a6cafaf4b6392dcb91e36cd7abb wpebackend-fdo-1.1.0.tar.xz
> +sha1 688377f441e19273fe2b44c0a2ea9da149f97fa4 wpebackend-fdo-1.1.0.tar.xz
> +sha256 f6c72130d16e50860cb83eb0f6e109c76f1826d2c6bee39025fb3651941761e7 wpebackend-fdo-1.1.0.tar.xz
> +
> +# Hashes for license files:
> +sha256 c9f6803371047fad3e72200ec6cd226329a5ee08ac61104c8211c2761fb46825 COPYING
> diff --git a/package/wpebackend-fdo/wpebackend-fdo.mk b/package/wpebackend-fdo/wpebackend-fdo.mk
> new file mode 100644
> index 000000000..b62e710a9
> --- /dev/null
> +++ b/package/wpebackend-fdo/wpebackend-fdo.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# wpebackend-fdo
> +#
> +################################################################################
> +
> +WPEBACKEND_FDO_VERSION = 1.1.0

As with libwpe, please use version 1.0.0 here.

> +WPEBACKEND_FDO_SITE = http://wpewebkit.org/releases
> +WPEBACKEND_FDO_SOURCE = wpebackend-fdo-$(WPEBACKEND_FDO_VERSION).tar.xz
> +WPEBACKEND_FDO_INSTALL_STAGING = YES
> +WPEBACKEND_FDO_LICENSE = BSD-2-Clause
> +WPEBACKEND_FDO_LICENSE_FILES = COPYING
> +WPEBACKEND_FDO_DEPENDENCIES = libglib2 libwpe wayland

This is missing ?libegl? here.

> +$(eval $(cmake-package))
> -- 
> 2.17.1


-Adri?n
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181228/fa135e74/attachment.asc>

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

* [Buildroot] [RFC 3/3] wpewebkit: new package
  2018-12-23 15:48 ` [Buildroot] [RFC 3/3] wpewebkit: " Francois Perrad
@ 2018-12-28  1:18   ` Adrian Perez de Castro
  2018-12-29  9:28     ` François Perrad
  2018-12-31 14:08     ` Thomas Petazzoni
  0 siblings, 2 replies; 15+ messages in thread
From: Adrian Perez de Castro @ 2018-12-28  1:18 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 23 Dec 2018 16:48:45 +0100, Francois Perrad <fperrad@gmail.com> wrote:

> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  DEVELOPERS                       |  1 +
>  package/Config.in                |  1 +
>  package/wpewebkit/Config.in      | 82 ++++++++++++++++++++++++++++++++
>  package/wpewebkit/wpewebkit.hash |  8 ++++
>  package/wpewebkit/wpewebkit.mk   | 69 +++++++++++++++++++++++++++
>  5 files changed, 161 insertions(+)
>  create mode 100644 package/wpewebkit/Config.in
>  create mode 100644 package/wpewebkit/wpewebkit.hash
>  create mode 100644 package/wpewebkit/wpewebkit.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 93a2bf5ad..491ebcaca 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -829,6 +829,7 @@ F:	package/sdl2_mixer/
>  F:	package/sdl2_net/
>  F:	package/tekui/
>  F:	package/wpebackend-fdo/
> +F:	package/wpewebkit/
>  F:	package/wsapi-fcgi/
>  F:	package/wsapi-xavante/
>  F:	utils/scancpan
> diff --git a/package/Config.in b/package/Config.in
> index e8a676ab0..592f00456 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1303,6 +1303,7 @@ menu "Graphics"
>  	source "package/webp/Config.in"
>  	source "package/woff2/Config.in"
>  	source "package/wpebackend-fdo/Config.in"
> +	source "package/wpewebkit/Config.in"
>  	source "package/zbar/Config.in"
>  	source "package/zxing-cpp/Config.in"
>  endmenu
> diff --git a/package/wpewebkit/Config.in b/package/wpewebkit/Config.in
> new file mode 100644
> index 000000000..7a020dd05
> --- /dev/null
> +++ b/package/wpewebkit/Config.in
> @@ -0,0 +1,82 @@
> +comment "wpewebkit needs an OpenGL ES w/ EGL backend"
> +	depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL
> +
> +config BR2_PACKAGE_WPEWEBKIT
> +	bool "wpewebkit"
> +	depends on !BR2_STATIC_LIBS # dlfcn.h
> +	depends on !BR2_BINFMT_FLAT # icu
> +	depends on BR2_INSTALL_LIBSTDCPP # icu
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # icu
> +	depends on BR2_USE_WCHAR # gettext

The BR2_USE_WCHAR dependency is not needed.

> +	depends on BR2_USE_MMU # fork()
> +	depends on BR2_PACKAGE_HAS_LIBGLES
> +	depends on BR2_PACKAGE_HAS_LIBEGL
> +	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error

I would like to have here a BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS symbol which
determines whether the package is supported on the target platform. For
inspiration, you can take a look at the overlay:

  https://github.com/Igalia/buildroot-wpe/blob/master/package/wpewebkit/Config.in#L1

Even better: Have a BR2_WEBKIT_ARCH_SUPPORTS symbol with the common
dependencies for both the ?webkitgtk? and ?wpewebkit? packages -- they
basically support the same set of architectures, and the same goes for the
JavaScriptCore JIT compilation support (look at how the ?webkitgtk? package
defines BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS_JIT).

> +	select BR2_PACKAGE_CAIRO
> +	select BR2_PACKAGE_CAIRO_PNG
> +	select BR2_PACKAGE_HARFBUZZ
> +	select BR2_PACKAGE_ICU
> +	select BR2_PACKAGE_JPEG
> +	select BR2_PACKAGE_LIBEPOXY
> +	select BR2_PACKAGE_LIBGCRYPT
> +	select BR2_PACKAGE_LIBPNG
> +	select BR2_PACKAGE_LIBSOUP
> +	select BR2_PACKAGE_WAYLAND_PROTOCOLS
> +	select BR2_PACKAGE_WEBP
> +	select BR2_PACKAGE_WEBP_DEMUX
> +	select BR2_PACKAGE_WPEBACKEND_FDO
> +	help
> +	  WPE (Web Platform for Embedded) port of the WebKit engine,
> +	  to allow embedders to create simple and performant systems
> +	  based on Web platform technologies.
> +
> +	  https://wpewebkit.org/
> +
> +if BR2_PACKAGE_WPEWEBKIT
> +
> +config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
> +	bool "multimedia support"
> +	select BR2_PACKAGE_GSTREAMER1
> +	select BR2_PACKAGE_GST1_PLUGINS_BAD
> +	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
> +	select BR2_PACKAGE_GST1_PLUGINS_GOOD
> +	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4
> +	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP
> +	select BR2_PACKAGE_GST1_LIBAV
> +	help
> +	  This option pulls in all of the required dependencies
> +	  to enable multimedia (video/audio) support.

This is missing:

  select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA
  select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX

In particular these two are needed to properly support video playback using
Media Source Extensions (MSE) which e.g. video sites like YouTube need
nowadays.

> +if BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
> +
> +config BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL
> +	bool "use gstreamer-gl"
> +	default y
> +	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
> +	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
> +	help
> +	  Use the GStreamer GL elements for handling video content.
> +	  This is recommended as it improves performance of video
> +	  playback. In some target configurations incorrect rendering
> +	  might be produced, and disabling this option may help.
> +
> +endif
> +
> +config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
> +	bool "WebDriver support"
> +	help
> +	  Enable support for WebDriver. This will build and install the
> +	  WebKitWebDriver program in the target.
> +

I would also have options to make support for XSLT, WOFF2, and WebCrypto
optional explicitly instead of choosing them in ?wpewebkit.mk? depending on
whether the required package(s) have been manually selected. That would avoid
situations in which, for example, a build mysteriously fails to load a WOFF2
Web font due to the ?woff2? package not being manually selected at build time
(because it is not implied in any way that it is needed for WPE WebKit to
support WOFF2 fonts).

> +endif
> diff --git a/package/wpewebkit/wpewebkit.hash b/package/wpewebkit/wpewebkit.hash
> new file mode 100644
> index 000000000..39937a346
> --- /dev/null
> +++ b/package/wpewebkit/wpewebkit.hash
> @@ -0,0 +1,8 @@
> +# From https://wpewebkit.org/releases/wpewebkit-2.22.3.tar.xz.sums
> +md5 6d0c693ea49a93fc9e701cf784245ea5 wpewebkit-2.22.3.tar.xz
> +sha1 d8a22bec787f38939c7922dc43bf27c9144cef74 wpewebkit-2.22.3.tar.xz
> +sha256 241f177cded1a4ba3088716650eaaac25588878882170789b3c630ac45dbb2fa wpewebkit-2.22.3.tar.xz
> +
> +# Hashes for license files:
> +sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE
> +sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1
> diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
> new file mode 100644
> index 000000000..fb30326d6
> --- /dev/null
> +++ b/package/wpewebkit/wpewebkit.mk
> @@ -0,0 +1,69 @@
> +################################################################################
> +#
> +# wpewebkit
> +#
> +################################################################################
> +
> +WPEWEBKIT_VERSION = 2.22.3
> +WPEWEBKIT_SITE = http://www.wpewebkit.org/releases
> +WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
> +WPEWEBKIT_INSTALL_STAGING = YES
> +WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
> +WPEWEBKIT_LICENSE_FILES = \
> +	Source/WebCore/LICENSE-APPLE \
> +	Source/WebCore/LICENSE-LGPL-2.1
> +WPEWEBKIT_DEPENDENCIES = host-gperf host-python host-ruby \
> +	harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libpng \
> +	wayland-protocols webp wpebackend-fdo
> +
> +WPEWEBKIT_CONF_OPTS = \
> +	-DPORT=WPE \
> +	-DENABLE_API_TESTS=OFF \
> +	-DENABLE_MINIBROWSER=OFF
> +
> +ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
> +WPEWEBKIT_CONF_OPTS += \
> +	-DENABLE_VIDEO=ON \
> +	-DENABLE_WEB_AUDIO=ON
> +WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base gst1-plugins-good
> +else
> +WPEWEBKIT_CONF_OPTS += \
> +	-DENABLE_VIDEO=OFF \
> +	-DENABLE_WEB_AUDIO=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
> +WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
> +WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
> +else
> +WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
> +WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
> +else
> +WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBTASN1),y)
> +WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=ON
> +WPEWEBKIT_DEPENDENCIES += libtasn1
> +else
> +WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBXSLT),y)
> +WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=ON
> +WPEWEBKIT_DEPENDENCIES += libxslt
> +else
> +WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_WOFF2),y)
> +WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
> +WPEWEBKIT_DEPENDENCIES += woff2
> +else
> +WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
> +endif
> +
> +$(eval $(cmake-package))
> -- 
> 2.17.1

Best regards,

-Adri?n
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181228/55a32f48/attachment.asc>

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

* [Buildroot] [RFC 2/3] wpebackend-fdo: new package
  2018-12-28  0:58   ` Adrian Perez de Castro
@ 2018-12-29  9:15     ` François Perrad
  2018-12-31 14:02     ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: François Perrad @ 2018-12-29  9:15 UTC (permalink / raw)
  To: buildroot

Le ven. 28 d?c. 2018 ? 01:58, Adrian Perez de Castro <aperez@igalia.com> a
?crit :

> Hello,
>
> Quick review here...
>
> On Sun, 23 Dec 2018 16:48:44 +0100, Francois Perrad <fperrad@gmail.com>
> wrote:
>
> > Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> > ---
> >  DEVELOPERS                                 |  1 +
> >  package/Config.in                          |  1 +
> >  package/wpebackend-fdo/Config.in           | 17 +++++++++++++++++
> >  package/wpebackend-fdo/wpebackend-fdo.hash |  7 +++++++
> >  package/wpebackend-fdo/wpebackend-fdo.mk   | 15 +++++++++++++++
> >  5 files changed, 41 insertions(+)
> >  create mode 100644 package/wpebackend-fdo/Config.in
> >  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
> >  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 705842310..93a2bf5ad 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -828,6 +828,7 @@ F:        package/qemu/
> >  F:   package/sdl2_mixer/
> >  F:   package/sdl2_net/
> >  F:   package/tekui/
> > +F:   package/wpebackend-fdo/
> >  F:   package/wsapi-fcgi/
> >  F:   package/wsapi-xavante/
> >  F:   utils/scancpan
> > diff --git a/package/Config.in b/package/Config.in
> > index 7615c5853..e8a676ab0 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -1302,6 +1302,7 @@ menu "Graphics"
> >       source "package/webkitgtk/Config.in"
> >       source "package/webp/Config.in"
> >       source "package/woff2/Config.in"
> > +     source "package/wpebackend-fdo/Config.in"
> >       source "package/zbar/Config.in"
> >       source "package/zxing-cpp/Config.in"
> >  endmenu
> > diff --git a/package/wpebackend-fdo/Config.in
> b/package/wpebackend-fdo/Config.in
> > new file mode 100644
> > index 000000000..9025834e1
> > --- /dev/null
> > +++ b/package/wpebackend-fdo/Config.in
> > @@ -0,0 +1,17 @@
> > +comment "wpebackend-fdo needs an OpenEGL-capable backend"
> > +     depends on !BR2_PACKAGE_HAS_LIBEGL
> > +
>
> The dependency line for the comment needs to be updated to be the reverse
> of the list of dependencies for the BR2_PACKAGE_WPEBACKEND_FDO symbol
> below.
>
> Also, the comment text should follow the Buildroot style:
>
>     foo needs a toolchain w/ featA, featB, featC
>
> (There's more details about this in the Buildroot manual, which you can
> find
> at https://buildroot.org/downloads/manual/manual.html)
>
> > +config BR2_PACKAGE_WPEBACKEND_FDO
> > +     bool "wpebackend-fdo"
> > +     depends on !BR2_STATIC_LIBS # dlfcn.h
> > +     depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
> > +     depends on BR2_USE_WCHAR # gettext
> > +     depends on BR2_USE_MMU # fork()
>
> The BR2_USE_MMU belongs in the ?wpewebkit? package (the backend itself does
> no forking), and should not be needed here.
>
> The BR2_USE_WCHAR dependency should not be needed here, as gettext is not
> required nor used by this package, neither it is needed by ?wayland? nor
> ?libxkbcommon?.
>
>
These two dependencies comes from LIBGLIB2

> +     depends on BR2_PACKAGE_HAS_LIBEGL
> > +     select BR2_PACKAGE_LIBGLIB2
> > +     select BR2_PACKAGE_LIBWPE
> > +     select BR2_PACKAGE_WAYLAND
> > +     help
> > +       WPE's backend based on a freedesktop.org stack.
> > +
> > +       https://wpewebkit.org/
> > diff --git a/package/wpebackend-fdo/wpebackend-fdo.hash
> b/package/wpebackend-fdo/wpebackend-fdo.hash
> > new file mode 100644
> > index 000000000..6ebfcf335
> > --- /dev/null
> > +++ b/package/wpebackend-fdo/wpebackend-fdo.hash
> > @@ -0,0 +1,7 @@
> > +# From https://wpewebkit.org/releases/wpebackend-fdo-1.1.0.tar.xz.sums
> > +md5 dc852a6cafaf4b6392dcb91e36cd7abb wpebackend-fdo-1.1.0.tar.xz
> > +sha1 688377f441e19273fe2b44c0a2ea9da149f97fa4
> wpebackend-fdo-1.1.0.tar.xz
> > +sha256 f6c72130d16e50860cb83eb0f6e109c76f1826d2c6bee39025fb3651941761e7
> wpebackend-fdo-1.1.0.tar.xz
> > +
> > +# Hashes for license files:
> > +sha256 c9f6803371047fad3e72200ec6cd226329a5ee08ac61104c8211c2761fb46825
> COPYING
> > diff --git a/package/wpebackend-fdo/wpebackend-fdo.mk
> b/package/wpebackend-fdo/wpebackend-fdo.mk
> > new file mode 100644
> > index 000000000..b62e710a9
> > --- /dev/null
> > +++ b/package/wpebackend-fdo/wpebackend-fdo.mk
> > @@ -0,0 +1,15 @@
> >
> +################################################################################
> > +#
> > +# wpebackend-fdo
> > +#
> >
> +################################################################################
> > +
> > +WPEBACKEND_FDO_VERSION = 1.1.0
>
> As with libwpe, please use version 1.0.0 here.
>
> > +WPEBACKEND_FDO_SITE = http://wpewebkit.org/releases
> > +WPEBACKEND_FDO_SOURCE = wpebackend-fdo-$(WPEBACKEND_FDO_VERSION).tar.xz
> > +WPEBACKEND_FDO_INSTALL_STAGING = YES
> > +WPEBACKEND_FDO_LICENSE = BSD-2-Clause
> > +WPEBACKEND_FDO_LICENSE_FILES = COPYING
> > +WPEBACKEND_FDO_DEPENDENCIES = libglib2 libwpe wayland
>
> This is missing ?libegl? here.
>
>
libegl is not needed here, libegl is already a dependency of libwpe.

Fran?ois

> +$(eval $(cmake-package))
> > --
> > 2.17.1
>
>
> -Adri?n
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181229/3791b95c/attachment.html>

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

* [Buildroot] [RFC 3/3] wpewebkit: new package
  2018-12-28  1:18   ` Adrian Perez de Castro
@ 2018-12-29  9:28     ` François Perrad
  2018-12-31 14:08     ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: François Perrad @ 2018-12-29  9:28 UTC (permalink / raw)
  To: buildroot

Le ven. 28 d?c. 2018 ? 02:19, Adrian Perez de Castro <aperez@igalia.com> a
?crit :

> Hello,
>
> On Sun, 23 Dec 2018 16:48:45 +0100, Francois Perrad <fperrad@gmail.com>
> wrote:
>
> > Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> > ---
> >  DEVELOPERS                       |  1 +
> >  package/Config.in                |  1 +
> >  package/wpewebkit/Config.in      | 82 ++++++++++++++++++++++++++++++++
> >  package/wpewebkit/wpewebkit.hash |  8 ++++
> >  package/wpewebkit/wpewebkit.mk   | 69 +++++++++++++++++++++++++++
> >  5 files changed, 161 insertions(+)
> >  create mode 100644 package/wpewebkit/Config.in
> >  create mode 100644 package/wpewebkit/wpewebkit.hash
> >  create mode 100644 package/wpewebkit/wpewebkit.mk
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 93a2bf5ad..491ebcaca 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -829,6 +829,7 @@ F:        package/sdl2_mixer/
> >  F:   package/sdl2_net/
> >  F:   package/tekui/
> >  F:   package/wpebackend-fdo/
> > +F:   package/wpewebkit/
> >  F:   package/wsapi-fcgi/
> >  F:   package/wsapi-xavante/
> >  F:   utils/scancpan
> > diff --git a/package/Config.in b/package/Config.in
> > index e8a676ab0..592f00456 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -1303,6 +1303,7 @@ menu "Graphics"
> >       source "package/webp/Config.in"
> >       source "package/woff2/Config.in"
> >       source "package/wpebackend-fdo/Config.in"
> > +     source "package/wpewebkit/Config.in"
> >       source "package/zbar/Config.in"
> >       source "package/zxing-cpp/Config.in"
> >  endmenu
> > diff --git a/package/wpewebkit/Config.in b/package/wpewebkit/Config.in
> > new file mode 100644
> > index 000000000..7a020dd05
> > --- /dev/null
> > +++ b/package/wpewebkit/Config.in
> > @@ -0,0 +1,82 @@
> > +comment "wpewebkit needs an OpenGL ES w/ EGL backend"
> > +     depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL
> > +
> > +config BR2_PACKAGE_WPEWEBKIT
> > +     bool "wpewebkit"
> > +     depends on !BR2_STATIC_LIBS # dlfcn.h
> > +     depends on !BR2_BINFMT_FLAT # icu
> > +     depends on BR2_INSTALL_LIBSTDCPP # icu
> > +     depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
> > +     depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
> > +     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # icu
> > +     depends on BR2_USE_WCHAR # gettext
>
> The BR2_USE_WCHAR dependency is not needed.
>
> > +     depends on BR2_USE_MMU # fork()
> > +     depends on BR2_PACKAGE_HAS_LIBGLES
> > +     depends on BR2_PACKAGE_HAS_LIBEGL
> > +     depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error
>
> I would like to have here a BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS symbol
> which
> determines whether the package is supported on the target platform. For
> inspiration, you can take a look at the overlay:
>
>
> https://github.com/Igalia/buildroot-wpe/blob/master/package/wpewebkit/Config.in#L1
>
> Even better: Have a BR2_WEBKIT_ARCH_SUPPORTS symbol with the common
> dependencies for both the ?webkitgtk? and ?wpewebkit? packages -- they
> basically support the same set of architectures, and the same goes for the
> JavaScriptCore JIT compilation support (look at how the ?webkitgtk? package
> defines BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS_JIT).
>
> > +     select BR2_PACKAGE_CAIRO
> > +     select BR2_PACKAGE_CAIRO_PNG
> > +     select BR2_PACKAGE_HARFBUZZ
> > +     select BR2_PACKAGE_ICU
> > +     select BR2_PACKAGE_JPEG
> > +     select BR2_PACKAGE_LIBEPOXY
> > +     select BR2_PACKAGE_LIBGCRYPT
> > +     select BR2_PACKAGE_LIBPNG
> > +     select BR2_PACKAGE_LIBSOUP
> > +     select BR2_PACKAGE_WAYLAND_PROTOCOLS
> > +     select BR2_PACKAGE_WEBP
> > +     select BR2_PACKAGE_WEBP_DEMUX
> > +     select BR2_PACKAGE_WPEBACKEND_FDO
> > +     help
> > +       WPE (Web Platform for Embedded) port of the WebKit engine,
> > +       to allow embedders to create simple and performant systems
> > +       based on Web platform technologies.
> > +
> > +       https://wpewebkit.org/
> > +
> > +if BR2_PACKAGE_WPEWEBKIT
> > +
> > +config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
> > +     bool "multimedia support"
> > +     select BR2_PACKAGE_GSTREAMER1
> > +     select BR2_PACKAGE_GST1_PLUGINS_BAD
> > +     select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE
> > +     select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
> > +     select BR2_PACKAGE_GST1_PLUGINS_GOOD
> > +     select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4
> > +     select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP
> > +     select BR2_PACKAGE_GST1_LIBAV
> > +     help
> > +       This option pulls in all of the required dependencies
> > +       to enable multimedia (video/audio) support.
>
> This is missing:
>
>   select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA
>   select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX
>
> In particular these two are needed to properly support video playback using
> Media Source Extensions (MSE) which e.g. video sites like YouTube need
> nowadays.
>
>
This list of plugins comes from the package BR webkitgtk.
Should I prepare a patch against this package with these 2 missing plugins ?

Fran?ois


> > +if BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
> > +
> > +config BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL
> > +     bool "use gstreamer-gl"
> > +     default y
> > +     depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
> > +     select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
> > +     help
> > +       Use the GStreamer GL elements for handling video content.
> > +       This is recommended as it improves performance of video
> > +       playback. In some target configurations incorrect rendering
> > +       might be produced, and disabling this option may help.
> > +
> > +endif
> > +
> > +config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
> > +     bool "WebDriver support"
> > +     help
> > +       Enable support for WebDriver. This will build and install the
> > +       WebKitWebDriver program in the target.
> > +
>
> I would also have options to make support for XSLT, WOFF2, and WebCrypto
> optional explicitly instead of choosing them in ?wpewebkit.mk? depending
> on
> whether the required package(s) have been manually selected. That would
> avoid
> situations in which, for example, a build mysteriously fails to load a
> WOFF2
> Web font due to the ?woff2? package not being manually selected at build
> time
> (because it is not implied in any way that it is needed for WPE WebKit to
> support WOFF2 fonts).
>
> > +endif
> > diff --git a/package/wpewebkit/wpewebkit.hash
> b/package/wpewebkit/wpewebkit.hash
> > new file mode 100644
> > index 000000000..39937a346
> > --- /dev/null
> > +++ b/package/wpewebkit/wpewebkit.hash
> > @@ -0,0 +1,8 @@
> > +# From https://wpewebkit.org/releases/wpewebkit-2.22.3.tar.xz.sums
> > +md5 6d0c693ea49a93fc9e701cf784245ea5 wpewebkit-2.22.3.tar.xz
> > +sha1 d8a22bec787f38939c7922dc43bf27c9144cef74 wpewebkit-2.22.3.tar.xz
> > +sha256 241f177cded1a4ba3088716650eaaac25588878882170789b3c630ac45dbb2fa
> wpewebkit-2.22.3.tar.xz
> > +
> > +# Hashes for license files:
> > +sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4
> Source/WebCore/LICENSE-APPLE
> > +sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce
> Source/WebCore/LICENSE-LGPL-2.1
> > diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/
> wpewebkit.mk
> > new file mode 100644
> > index 000000000..fb30326d6
> > --- /dev/null
> > +++ b/package/wpewebkit/wpewebkit.mk
> > @@ -0,0 +1,69 @@
> >
> +################################################################################
> > +#
> > +# wpewebkit
> > +#
> >
> +################################################################################
> > +
> > +WPEWEBKIT_VERSION = 2.22.3
> > +WPEWEBKIT_SITE = http://www.wpewebkit.org/releases
> > +WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
> > +WPEWEBKIT_INSTALL_STAGING = YES
> > +WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
> > +WPEWEBKIT_LICENSE_FILES = \
> > +     Source/WebCore/LICENSE-APPLE \
> > +     Source/WebCore/LICENSE-LGPL-2.1
> > +WPEWEBKIT_DEPENDENCIES = host-gperf host-python host-ruby \
> > +     harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libpng \
> > +     wayland-protocols webp wpebackend-fdo
> > +
> > +WPEWEBKIT_CONF_OPTS = \
> > +     -DPORT=WPE \
> > +     -DENABLE_API_TESTS=OFF \
> > +     -DENABLE_MINIBROWSER=OFF
> > +
> > +ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
> > +WPEWEBKIT_CONF_OPTS += \
> > +     -DENABLE_VIDEO=ON \
> > +     -DENABLE_WEB_AUDIO=ON
> > +WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base
> gst1-plugins-good
> > +else
> > +WPEWEBKIT_CONF_OPTS += \
> > +     -DENABLE_VIDEO=OFF \
> > +     -DENABLE_WEB_AUDIO=OFF
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
> > +WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
> > +WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
> > +else
> > +WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
> > +else
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_LIBTASN1),y)
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=ON
> > +WPEWEBKIT_DEPENDENCIES += libtasn1
> > +else
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_SUBTLE_CRYPTO=OFF
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_LIBXSLT),y)
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=ON
> > +WPEWEBKIT_DEPENDENCIES += libxslt
> > +else
> > +WPEWEBKIT_CONF_OPTS += -DENABLE_XSLT=OFF
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_WOFF2),y)
> > +WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
> > +WPEWEBKIT_DEPENDENCIES += woff2
> > +else
> > +WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
> > +endif
> > +
> > +$(eval $(cmake-package))
> > --
> > 2.17.1
>
> Best regards,
>
> -Adri?n
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181229/3260191b/attachment.html>

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

* [Buildroot] [RFC 0/3] WPE WebKit
  2018-12-28  0:34 ` Adrian Perez de Castro
@ 2018-12-30 18:01   ` François Perrad
  2018-12-31 14:13   ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: François Perrad @ 2018-12-30 18:01 UTC (permalink / raw)
  To: buildroot

Le ven. 28 d?c. 2018 ? 01:35, Adrian Perez de Castro <aperez@igalia.com> a
?crit :

> Hello Fran?ois,
>
> I had been thinking myself of submitting a patch series for WPE, and at
> Igalia
> we are maintaining an overlay (to be used with BR2_EXTERNAL, which can be
> found at https://github.com/Igalia/buildroot-wpe). I have had plenty to
> do in
> the latest few months, so I barely haven't had any time for Buildroot other
> than updating the WebKitGTK+ packaging whenever there is a release -- so
> thanks a lot for helping out by submitting this patch set :)
>
> Later I will be doing a few comments on each of the individual patches. As
> for
> general comments:
>
> - It looks like you took the basis for your patch set from the *downstream*
>   fork of Buildroot at https://github.com/WebPlatformForEmbedded/buildroot
>   Please do NOT use anything from there, as it is based on a very old
> version
>   of Buildroot, and it packages versions of the ?wpewebkit? package older
>   than the official packages releases from https://wpewebkit.org
>
> - The way I was hoping to do the WPE packaging for upstream Buildroot was
> to
>   reuse as many bits and pieces as possible from the WebKitGTK+ packaging,
>   and share code with the WPE packaging. For example: right now there is a
>   BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS configuration symbol, and in the WPE
>   overlay I mentioned above there is BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS...
>   ideally we would have a single BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS, which
>   gets used both by the ?wpewebkit? and ?webkitgtk? packages (the same
> would
>   go for the logic that determines whether the target supports the JSC JIT,
>   and others). I'll follow up on this in a different e-mail.
>
>
Good idea.


> - I would like to allow building more backends than WPEBackend-fdo. More
>   precisely, WPEBackend-rdk is a good option to use dispmanx on the
> Raspberry
>   Pi directly, without needing a Wayland compositor.
>
> - It would be good as well to have a launcher/browser which is NOT the
>   MiniBrowser included with the ?wpewebkit? package, which is intended just
>   for testing. The better option at the moment is Cog, for which I have
>   recently started doing packaged releases as well, and it is known to work
>   with the -fdo and -rdk backends (and others which are not publicly
> available
>   as well). It can be found at https://github.com/Igalia/cog
>
>
Hello Adrian,

I will add cog to my serie.

Another question:
Have you try to run with cog some applications from Gaia (the top layer of
the defunct Firefox OS) ?
See https://github.com/mozilla-b2g/gaia/tree/v2.5/apps

Fran?ois


> Please note that I am not trying to demotivate you with all the comments
> above, I think it's awesome that third parties are finding WPE useful and
> want to help out with the upstream packaging in Buildroot: that is
> *awesome*
> and super appreciated -- I just want to share my ideas in the mailing list
> to see what we all agree is th way go to provide the best packaging we can
> for WPE :)
>
>
> On Sun, 23 Dec 2018 16:48:42 +0100, Francois Perrad <fperrad@gmail.com>
> wrote:
>
> > Another port of WebKit (https://wpewebkit.org/), a project started in
> 2018.
> >
> > Testing fresh code of various OpenGL backends is awful.
>
> What do you mean with this? Does this have to do with the
> packaging/testing of
> the different WPE backends, or is it something else? I am really
> interested in
> knowing what your pain points have been, to see if there is something that
> we
> can improve (and here I am talking with my ?WebKit developer hat? on :D).
>
> > Francois Perrad (3):
> >   libwpe: new package
> >   wpebackend-fdo: new package
> >   wpewebkit: new package
> >
> >  DEVELOPERS                                 |  3 +
> >  package/Config.in                          |  3 +
> >  package/libwpe/Config.in                   | 12 ++++
> >  package/libwpe/libwpe.hash                 |  7 ++
> >  package/libwpe/libwpe.mk                   | 15 ++++
> >  package/wpebackend-fdo/Config.in           | 17 +++++
> >  package/wpebackend-fdo/wpebackend-fdo.hash |  7 ++
> >  package/wpebackend-fdo/wpebackend-fdo.mk   | 15 ++++
> >  package/wpewebkit/Config.in                | 82 ++++++++++++++++++++++
> >  package/wpewebkit/wpewebkit.hash           |  8 +++
> >  package/wpewebkit/wpewebkit.mk             | 69 ++++++++++++++++++
> >  11 files changed, 238 insertions(+)
> >  create mode 100644 package/libwpe/Config.in
> >  create mode 100644 package/libwpe/libwpe.hash
> >  create mode 100644 package/libwpe/libwpe.mk
> >  create mode 100644 package/wpebackend-fdo/Config.in
> >  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash
> >  create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk
> >  create mode 100644 package/wpewebkit/Config.in
> >  create mode 100644 package/wpewebkit/wpewebkit.hash
> >  create mode 100644 package/wpewebkit/wpewebkit.mk
> >
> > --
> > 2.17.1
>
> Best regards, and thanks again for bringing up the topic of WPE packaging!
>
>
> -Adri?n
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181230/f6d93769/attachment.html>

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

* [Buildroot] [RFC 2/3] wpebackend-fdo: new package
  2018-12-28  0:58   ` Adrian Perez de Castro
  2018-12-29  9:15     ` François Perrad
@ 2018-12-31 14:02     ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 14:02 UTC (permalink / raw)
  To: buildroot

Hello Adrian,

Thanks for the review!

On Fri, 28 Dec 2018 01:58:02 +0100, Adrian Perez de Castro wrote:

> > diff --git a/package/wpebackend-fdo/Config.in b/package/wpebackend-fdo/Config.in
> > new file mode 100644
> > index 000000000..9025834e1
> > --- /dev/null
> > +++ b/package/wpebackend-fdo/Config.in
> > @@ -0,0 +1,17 @@
> > +comment "wpebackend-fdo needs an OpenEGL-capable backend"
> > +	depends on !BR2_PACKAGE_HAS_LIBEGL
> > +  
> 
> The dependency line for the comment needs to be updated to be the reverse
> of the list of dependencies for the BR2_PACKAGE_WPEBACKEND_FDO symbol below.
> 
> Also, the comment text should follow the Buildroot style:
> 
>     foo needs a toolchain w/ featA, featB, featC

Actually this form applies to toolchain features. For something like
OpenGL, we do use a comment similar to what Fran?ois has used. See:

$ git grep "comment.*OpenGL"

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [RFC 3/3] wpewebkit: new package
  2018-12-28  1:18   ` Adrian Perez de Castro
  2018-12-29  9:28     ` François Perrad
@ 2018-12-31 14:08     ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 14:08 UTC (permalink / raw)
  To: buildroot

Hello Adrian,

On Fri, 28 Dec 2018 02:18:32 +0100, Adrian Perez de Castro wrote:

> Even better: Have a BR2_WEBKIT_ARCH_SUPPORTS symbol with the common
> dependencies for both the ?webkitgtk? and ?wpewebkit? packages -- they
> basically support the same set of architectures, and the same goes for the
> JavaScriptCore JIT compilation support (look at how the ?webkitgtk? package
> defines BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS_JIT).

Could you give a bit of background on the different webkit "variants" ?
Why do they apparently duplicate the same webkit code ?

> > +config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
> > +	bool "WebDriver support"
> > +	help
> > +	  Enable support for WebDriver. This will build and install the
> > +	  WebKitWebDriver program in the target.
> > +  
> 
> I would also have options to make support for XSLT, WOFF2, and WebCrypto
> optional explicitly instead of choosing them in ?wpewebkit.mk? depending on
> whether the required package(s) have been manually selected. That would avoid
> situations in which, for example, a build mysteriously fails to load a WOFF2
> Web font due to the ?woff2? package not being manually selected at build time
> (because it is not implied in any way that it is needed for WPE WebKit to
> support WOFF2 fonts).

Actually, what Fran?ois did is standard Buildroot practice. We very
often prefer to use "automatic dependencies" (i.e automatically enable
feature FOO if its necessary dependencies are available) rather than
"explicit dependencies (i.e add an explicit Config.in option to enable
feature FOO, which would select the necessary dependencies).

The reasoning for that is simple: we are trying to avoid having
gazillions of Config.in options.

However, we don't have any strict rule on this, and in some situations,
it makes sense to have an explicit option, especially when the
relationship between the needed dependencies and the feature is not
really obvious.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [RFC 0/3] WPE WebKit
  2018-12-28  0:34 ` Adrian Perez de Castro
  2018-12-30 18:01   ` François Perrad
@ 2018-12-31 14:13   ` Thomas Petazzoni
  1 sibling, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 14:13 UTC (permalink / raw)
  To: buildroot

Hello Adrian,

First of all, thanks a lot for your review of this patch series.

On Fri, 28 Dec 2018 01:34:48 +0100, Adrian Perez de Castro wrote:

> - The way I was hoping to do the WPE packaging for upstream Buildroot was to
>   reuse as many bits and pieces as possible from the WebKitGTK+ packaging,
>   and share code with the WPE packaging. For example: right now there is a
>   BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS configuration symbol, and in the WPE
>   overlay I mentioned above there is BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS...
>   ideally we would have a single BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS, which
>   gets used both by the ?wpewebkit? and ?webkitgtk? packages (the same would
>   go for the logic that determines whether the target supports the JSC JIT,
>   and others). I'll follow up on this in a different e-mail.

I have asked in the other e-mail as well: what is the relationship
between all those Webkit "ports" ? Why do they duplicate the core of
the Webkit code ?

I'm not sure where in Buildroot we would put those common ARCH_SUPPORTS
options, that are used by several packages that have no dependency
relationship.

> - I would like to allow building more backends than WPEBackend-fdo. More
>   precisely, WPEBackend-rdk is a good option to use dispmanx on the Raspberry
>   Pi directly, without needing a Wayland compositor.

So WPEBackend-fdo is a wayland backend ? Why is it named "fdo" (for
freedesktop.org I guess) instead of the more obvious
WPEBackend-wayland ?

Also, why is WPEBackend-rdk named after an overall "umbrella" project,
rather than the actual technology used in the backend ? I see that
WPEBackend-rdk also has Wayland support.

I'm confused.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

end of thread, other threads:[~2018-12-31 14:13 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-23 15:48 [Buildroot] [RFC 0/3] WPE WebKit Francois Perrad
2018-12-23 15:48 ` [Buildroot] [RFC 1/3] libwpe: new package Francois Perrad
2018-12-28  0:47   ` Adrian Perez de Castro
2018-12-23 15:48 ` [Buildroot] [RFC 2/3] wpebackend-fdo: " Francois Perrad
2018-12-28  0:58   ` Adrian Perez de Castro
2018-12-29  9:15     ` François Perrad
2018-12-31 14:02     ` Thomas Petazzoni
2018-12-23 15:48 ` [Buildroot] [RFC 3/3] wpewebkit: " Francois Perrad
2018-12-28  1:18   ` Adrian Perez de Castro
2018-12-29  9:28     ` François Perrad
2018-12-31 14:08     ` Thomas Petazzoni
2018-12-27  9:30 ` [Buildroot] [RFC 0/3] WPE WebKit Thomas Petazzoni
2018-12-28  0:34 ` Adrian Perez de Castro
2018-12-30 18:01   ` François Perrad
2018-12-31 14:13   ` Thomas Petazzoni

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.