Skip to contentSkip to conversation

WPE WebKit

RFC New Francois Perrad 4 participants 15 messages Dec 23, 2018 – Dec 31, 2018

lore
Share & tools
lore
#0 lore raw

cover WPE WebKit

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
Signature · 1 line
2.17.1
#1 lore raw

RFC 1/3 libwpe: new package

---
 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
DEVELOPERS +1 -0
index 6f687d748..705842310 100644
@@ -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/
package/Config.in +1 -0
index 038ddf6b2..7615c5853 100644
@@ -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"
package/libwpe/Config.in new file +12 -0
new file mode 100644
index 000000000..8cf99fe0c
@@ -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/
package/libwpe/libwpe.hash new file +7 -0
new file mode 100644
index 000000000..bda380988
@@ -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
package/libwpe/libwpe.mk new file +15 -0
new file mode 100644
index 000000000..2b9309843
@@ -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))
Signature · 1 line
2.17.1
#2 lore raw

RFC 1/3 libwpe: new package

Hello,

Quoted 42 lines · Francois Perrad
---
 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
DEVELOPERS +1 -0
index 6f687d748..705842310 100644
@@ -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/
package/Config.in +1 -0
index 038ddf6b2..7615c5853 100644
@@ -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"
package/libwpe/Config.in new file +0 -0
new file mode 100644
index 000000000..8cf99fe0c

package/libwpe/Config.in line 3

Quoted 3 lines
package/libwpe/Config.in new file +3 -0
@@ -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.)

package/libwpe/Config.in line 7

Quoted 4 lines
package/libwpe/Config.in new file +4 -0
+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()

package/libwpe/Config.in line 12

Quoted 5 lines
package/libwpe/Config.in new file +5 -0
+	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:-)

Quoted 19 lines
package/libwpe/libwpe.hash new file +7 -0
new file mode 100644
index 000000000..bda380988
@@ -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
package/libwpe/libwpe.mk new file +0 -0
new file mode 100644
index 000000000..2b9309843

package/libwpe/libwpe.mk line 7

Quoted 7 lines
package/libwpe/libwpe.mk new file +7 -0
@@ -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.)

Quoted 10 lines
package/libwpe/libwpe.mk new file +8 -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))
Signature · 1 line
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>

#3 lore raw

RFC 2/3 wpebackend-fdo: new package

In reply to Francois Perrad
---
 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
DEVELOPERS +1 -0
index 705842310..93a2bf5ad 100644
@@ -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
package/Config.in +1 -0
index 7615c5853..e8a676ab0 100644
@@ -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
package/wpebackend-fdo/Config.in new file +17 -0
new file mode 100644
index 000000000..9025834e1
@@ -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/
package/wpebackend-fdo/wpebackend-fdo.hash new file +7 -0
new file mode 100644
index 000000000..6ebfcf335
@@ -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
package/wpebackend-fdo/wpebackend-fdo.mk new file +15 -0
new file mode 100644
index 000000000..b62e710a9
@@ -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))
Signature · 1 line
2.17.1
#4 lore raw

RFC 2/3 wpebackend-fdo: new package

Hello,

Quick review here...

Quoted 42 lines · Francois Perrad
---
 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
DEVELOPERS +1 -0
index 705842310..93a2bf5ad 100644
@@ -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
package/Config.in +1 -0
index 7615c5853..e8a676ab0 100644
@@ -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
package/wpebackend-fdo/Config.in new file +0 -0
new file mode 100644
index 000000000..9025834e1

package/wpebackend-fdo/Config.in line 3

Quoted 3 lines
package/wpebackend-fdo/Config.in new file +3 -0
@@ -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)

package/wpebackend-fdo/Config.in line 9

Quoted 6 lines
package/wpebackend-fdo/Config.in new file +6 -0
+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?.

Quoted 27 lines
package/wpebackend-fdo/Config.in new file +8 -0
+	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/
package/wpebackend-fdo/wpebackend-fdo.hash new file +7 -0
new file mode 100644
index 000000000..6ebfcf335
@@ -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
package/wpebackend-fdo/wpebackend-fdo.mk new file +0 -0
new file mode 100644
index 000000000..b62e710a9

package/wpebackend-fdo/wpebackend-fdo.mk line 7

Quoted 7 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +7 -0
@@ -0,0 +1,15 @@
+################################################################################
+#
+# wpebackend-fdo
+#
+################################################################################
+
+WPEBACKEND_FDO_VERSION = 1.1.0

As with libwpe, please use version 1.0.0 here.

package/wpebackend-fdo/wpebackend-fdo.mk line 13

Quoted 6 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +6 -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

This is missing ?libegl? here.

Quoted 3 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +1 -0
+$(eval $(cmake-package))
Signature · 1 line
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>

#5 lore raw

RFC 2/3 wpebackend-fdo: new package

Le ven. 28 d?c. 2018 ? 01:58, Adrian Perez de Castro <[email protected]> a ?crit :

Quoted 73 lines

Hello,

Quick review here...

Review

Quoted 37 lines · Francois Perrad
---
 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
DEVELOPERS +1 -0
index 705842310..93a2bf5ad 100644
@@ -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
package/Config.in +1 -0
index 7615c5853..e8a676ab0 100644
@@ -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
(quoted diff) +0 -0

b/package/wpebackend-fdo/Config.in

package/wpebackend-fdo/Config.in line 3

Quoted 8 lines

new file mode 100644
index 000000000..9025834e1

package/wpebackend-fdo/Config.in new file +3 -0
@@ -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)

package/wpebackend-fdo/Config.in line 9

Quoted 6 lines
package/wpebackend-fdo/Config.in new file +6 -0
+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()
Quoted 8 lines

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

Quoted 44 lines

+ depends on BR2_PACKAGE_HAS_LIBEGL

Review

Quoted 8 lines
package/wpebackend-fdo/Config.in new file +7 -0
+     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/
(quoted diff) +0 -0

b/package/wpebackend-fdo/wpebackend-fdo.hash

package/wpebackend-fdo/wpebackend-fdo.hash line 3

Quoted 8 lines

new file mode 100644
index 000000000..6ebfcf335

package/wpebackend-fdo/wpebackend-fdo.hash new file +3 -0
@@ -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

package/wpebackend-fdo/wpebackend-fdo.hash line 4

Quoted 1 line
package/wpebackend-fdo/wpebackend-fdo.hash new file +1 -0
+sha256 f6c72130d16e50860cb83eb0f6e109c76f1826d2c6bee39025fb3651941761e7

wpebackend-fdo-1.1.0.tar.xz

package/wpebackend-fdo/wpebackend-fdo.hash

Quoted 3 lines
package/wpebackend-fdo/wpebackend-fdo.hash new file +3 -0
+
+# Hashes for license files:
+sha256 c9f6803371047fad3e72200ec6cd226329a5ee08ac61104c8211c2761fb46825

COPYING

Review

Quoted 1 line
(quoted diff) +0 -0

b/package/wpebackend-fdo/wpebackend-fdo.mk

package/wpebackend-fdo/wpebackend-fdo.mk

Quoted 6 lines

new file mode 100644
index 000000000..b62e710a9

package/wpebackend-fdo/wpebackend-fdo.mk new file +0 -0
@@ -0,0 +1,15 @@

+################################################################################

package/wpebackend-fdo/wpebackend-fdo.mk line 4

Quoted 4 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +3 -0
+#
+# wpebackend-fdo
+#

+################################################################################

package/wpebackend-fdo/wpebackend-fdo.mk line 7

Quoted 2 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +2 -0
+
+WPEBACKEND_FDO_VERSION = 1.1.0

As with libwpe, please use version 1.0.0 here.

Quoted 10 lines

package/wpebackend-fdo/wpebackend-fdo.mk line 13

Quoted 6 lines
package/wpebackend-fdo/wpebackend-fdo.mk new file +6 -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

This is missing ?libegl? here.

libegl is not needed here, libegl is already a dependency of libwpe.

Fran?ois

Quoted 11 lines

+$(eval $(cmake-package))

Quoted 2 lines

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

#6 lore raw

RFC 2/3 wpebackend-fdo: new package

In reply to Adrian Perez de Castro

Hello Adrian,

Thanks for the review!

Quoted 13 lines · Adrian Perez de Castro

package/wpebackend-fdo/Config.in line 3

Quoted 9 lines
package/wpebackend-fdo/Config.in new file +3 -0
new file mode 100644
index 000000000..9025834e1
@@ -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.

Quoted 3 lines

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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#7 lore raw

RFC 3/3 wpewebkit: new package

In reply to Francois Perrad
---
 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
DEVELOPERS +1 -0
index 93a2bf5ad..491ebcaca 100644
@@ -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
package/Config.in +1 -0
index e8a676ab0..592f00456 100644
@@ -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
package/wpewebkit/Config.in new file +82 -0

82 lines not on this page · raw message

package/wpewebkit/wpewebkit.hash new file +8 -0
new file mode 100644
index 000000000..39937a346
@@ -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
package/wpewebkit/wpewebkit.mk new file +69 -0

69 lines not on this page · raw message

Signature · 1 line
2.17.1
#8 lore raw

RFC 3/3 wpewebkit: new package

Hello,

Quoted 44 lines · Francois Perrad
---
 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
DEVELOPERS +1 -0
index 93a2bf5ad..491ebcaca 100644
@@ -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
package/Config.in +1 -0
index e8a676ab0..592f00456 100644
@@ -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
package/wpewebkit/Config.in new file +2 -0
new file mode 100644
index 000000000..7a020dd05
@@ -0,0 +1,82 @@
+comment "wpewebkit needs an OpenGL ES w/ EGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL

package/wpewebkit/Config.in line 12

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+
+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.

package/wpewebkit/Config.in line 16

Quoted 4 lines
package/wpewebkit/Config.in new file +4 -0
+	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).

Quoted 33 lines
package/wpewebkit/Config.in new file +33 -0
+	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

package/wpewebkit/Config.in line 59

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+	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.

Quoted 11 lines
package/wpewebkit/Config.in new file +11 -0
+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

package/wpewebkit/Config.in line 81

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+	  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).

Quoted 92 lines
package/wpewebkit/Config.in new file +1 -0
+endif
package/wpewebkit/wpewebkit.hash new file +8 -0
new file mode 100644
index 000000000..39937a346
@@ -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
package/wpewebkit/wpewebkit.mk new file +69 -0
new file mode 100644
index 000000000..fb30326d6
@@ -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))
Signature · 1 line
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>

#9 lore raw

RFC 3/3 wpewebkit: new package

Le ven. 28 d?c. 2018 ? 02:19, Adrian Perez de Castro <[email protected]> a ?crit :

Quoted 127 lines

Hello,

Quoted 44 lines · Francois Perrad
---
 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
DEVELOPERS +1 -0
index 93a2bf5ad..491ebcaca 100644
@@ -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
package/Config.in +1 -0
index e8a676ab0..592f00456 100644
@@ -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
package/wpewebkit/Config.in new file +2 -0
new file mode 100644
index 000000000..7a020dd05
@@ -0,0 +1,82 @@
+comment "wpewebkit needs an OpenGL ES w/ EGL backend"
+     depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL

package/wpewebkit/Config.in line 12

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+
+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.

package/wpewebkit/Config.in line 16

Quoted 4 lines
package/wpewebkit/Config.in new file +4 -0
+     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).

Quoted 33 lines
package/wpewebkit/Config.in new file +33 -0
+     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

package/wpewebkit/Config.in line 59

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+     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:

Quoted 8 lines

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

Quoted 137 lines
Quoted 11 lines
package/wpewebkit/Config.in new file +11 -0
+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

package/wpewebkit/Config.in line 81

Quoted 10 lines
package/wpewebkit/Config.in new file +10 -0
+       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).

Review

Quoted 2 lines
package/wpewebkit/Config.in new file +1 -0
+endif
(quoted diff) +0 -0

b/package/wpewebkit/wpewebkit.hash

package/wpewebkit/wpewebkit.hash line 4

Quoted 9 lines

new file mode 100644
index 000000000..39937a346

package/wpewebkit/wpewebkit.hash new file +4 -0
@@ -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

package/wpewebkit/wpewebkit.hash

Quoted 3 lines
package/wpewebkit/wpewebkit.hash new file +3 -0
+
+# Hashes for license files:
+sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4

Source/WebCore/LICENSE-APPLE

package/wpewebkit/wpewebkit.hash line 8

Quoted 1 line
package/wpewebkit/wpewebkit.hash new file +1 -0
+sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce

Source/WebCore/LICENSE-LGPL-2.1

package/wpewebkit/

Quoted 1 line
package/wpewebkit/ renamed from package/wpewebkit/wpewebkit.mk +0 -0

wpewebkit.mk

package/wpewebkit/wpewebkit.mk

Quoted 6 lines

new file mode 100644
index 000000000..fb30326d6

package/wpewebkit/wpewebkit.mk new file +0 -0
@@ -0,0 +1,69 @@

+################################################################################

package/wpewebkit/wpewebkit.mk line 4

Quoted 4 lines
package/wpewebkit/wpewebkit.mk new file +3 -0
+#
+# wpewebkit
+#

+################################################################################

Quoted 13 lines
package/wpewebkit/wpewebkit.mk new file +13 -0
+
+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
+

package/wpewebkit/wpewebkit.mk

Quoted 10 lines
package/wpewebkit/wpewebkit.mk new file +10 -0
+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

Quoted 42 lines
package/wpewebkit/wpewebkit.mk new file +41 -1
+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))
--
Quoted 1 line

2.17.1

Best regards,

Quoted 6 lines

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

#10 lore raw

RFC 3/3 wpewebkit: new package

In reply to Adrian Perez de Castro

Hello Adrian,

Quoted 5 lines · Adrian Perez de Castro

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 ?

Quoted 7 lines

package/wpewebkit/Config.in line 81

Quoted 6 lines
package/wpewebkit/Config.in new file +6 -0
+config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
+	bool "WebDriver support"
+	help
+	  Enable support for WebDriver. This will build and install the
+	  WebKitWebDriver program in the target.
+  
Quoted 7 lines

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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#11 lore raw

cover WPE WebKit

In reply to Francois Perrad

Hello,

Quoted 3 lines · Francois Perrad

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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#12 lore raw

cover WPE WebKit

In reply to Francois Perrad

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

Quoted 3 lines · Francois Perrad

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

Quoted 18 lines

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
Quoted 11 lines
 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
Signature · 1 line
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>

#13 lore raw

cover WPE WebKit

Le ven. 28 d?c. 2018 ? 01:35, Adrian Perez de Castro <[email protected]> a ?crit :

Quoted 22 lines

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

Quoted 13 lines

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

Quoted 5 lines

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

Quoted 9 lines

- 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

Quoted 55 lines

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

Quoted 1 line · Francois Perrad

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

2018.

Quoted 2 lines

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

Quoted 27 lines

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
Quoted 2 lines

--
2.17.1

Quoted 9 lines

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>

#14 lore raw

cover WPE WebKit

In reply to Adrian Perez de Castro

Hello Adrian,

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

Quoted 9 lines · Adrian Perez de Castro

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

Quoted 3 lines

- 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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com