[OE-core] [PATCH 2/2] webkitgtk: fix to build without opengl

Burton, Ross ross.burton at intel.com
Mon Oct 1 11:11:58 UTC 2018


>From the libepoxy web site:

"Epoxy is a library for handling OpenGL function pointer management for you"

libepoxy is essentially a glorified wrapper around dlopen()/dlsym().
Are you simply moving the failure from build time to run time?
libepoxy should be pulling in a GL implementation because that's what
it does.

Ross
On Sat, 29 Sep 2018 at 10:34, Chen Qi <Qi.Chen at windriver.com> wrote:
>
> Currently, webkitgtk cannot be built if 'opengl' is not in distro
> feature. The error message is like below:
>
>   OpenGLShims.h:23:10: fatal error: GL/gl.h: No such file or directory
>
> The required distro feature for webkitgtk is only 'x11'.
>
> From its source codes, libepoxy is an alternative option to build webkitgtk.
> So fix to use it. In this way, we can successfully build out
> webkitgtk if 'opengl' is not in distro features.
>
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
>  .../0001-fix-to-build-with-libepoxy.patch          | 35 ++++++++++++++++++++++
>  meta/recipes-sato/webkit/webkitgtk_2.20.5.bb       |  4 ++-
>  2 files changed, 38 insertions(+), 1 deletion(-)
>  create mode 100644 meta/recipes-sato/webkit/webkitgtk/0001-fix-to-build-with-libepoxy.patch
>
> diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-fix-to-build-with-libepoxy.patch b/meta/recipes-sato/webkit/webkitgtk/0001-fix-to-build-with-libepoxy.patch
> new file mode 100644
> index 0000000..72ccef4
> --- /dev/null
> +++ b/meta/recipes-sato/webkit/webkitgtk/0001-fix-to-build-with-libepoxy.patch
> @@ -0,0 +1,35 @@
> +From 59c04daa31f8083bf4eff8304b13f34dd79d00a3 Mon Sep 17 00:00:00 2001
> +From: Chen Qi <Qi.Chen at windriver.com>
> +Date: Sat, 29 Sep 2018 16:32:57 +0800
> +Subject: [PATCH] fix to build with libepoxy
> +
> +In source codes, there are places checking USE(LIBEPOXY), but
> +in cmake files, there's nowhere to handle it.
> +
> +Fix to define USE_LIBEPOXY to 1 if ENABLE_LIBEPOXY is turned on.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> +---
> + Source/cmake/OptionsGTK.cmake | 4 ++++
> + 1 file changed, 4 insertions(+)
> +
> +diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
> +index 386fa1d..6e86257 100644
> +--- a/Source/cmake/OptionsGTK.cmake
> ++++ b/Source/cmake/OptionsGTK.cmake
> +@@ -240,6 +240,10 @@ endif ()
> +
> + SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER TRUE)
> +
> ++if (ENABLE_LIBEPOXY)
> ++    SET_AND_EXPOSE_TO_BUILD(USE_LIBEPOXY TRUE)
> ++endif ()
> ++
> + if (ENABLE_OPENGL)
> +     # ENABLE_OPENGL is true if either USE_OPENGL or ENABLE_GLES2 is true.
> +     # But USE_OPENGL is the opposite of ENABLE_GLES2.
> +--
> +2.7.4
> +
> diff --git a/meta/recipes-sato/webkit/webkitgtk_2.20.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.20.5.bb
> index c8d4f94..24d10a2 100644
> --- a/meta/recipes-sato/webkit/webkitgtk_2.20.5.bb
> +++ b/meta/recipes-sato/webkit/webkitgtk_2.20.5.bb
> @@ -23,6 +23,7 @@ SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
>             file://0012-soup-Forward-declare-URL-class.patch \
>             file://0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch \
>             file://0001-webkitgtk-fix-CVE-2017-17821.patch \
> +           file://0001-fix-to-build-with-libepoxy.patch \
>             "
>
>  SRC_URI[md5sum] = "72a05f6a4dc1c78b079590a8fd280401"
> @@ -42,7 +43,7 @@ DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn libgcrypt \
>            "
>
>  PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \
> -                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', '' ,d)} \
> +                   ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', 'libepoxy' ,d)} \
>                     enchant \
>                     libsecret \
>                    "
> @@ -52,6 +53,7 @@ PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/lib
>  PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
>  PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant"
>  PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+"
> +PACKAGECONFIG[libepoxy] = "-DENABLE_LIBEPOXY=ON,-DENABLE_LIBEPOXY=OFF,libepoxy"
>  PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
>  PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
>  PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list