* [Buildroot] [PATCH v3 1/7] libepoxy: move outside x11r7 scope
2016-03-09 9:58 [Buildroot] [PATCH v3 0/7] gtk3/wayland/weston bump Gustavo Zacarias
@ 2016-03-09 9:58 ` Gustavo Zacarias
2016-03-20 17:38 ` Thomas Petazzoni
2016-03-09 9:58 ` [Buildroot] [PATCH v3 2/7] libgtk3: bump to version 3.18.8 Gustavo Zacarias
` (5 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Gustavo Zacarias @ 2016-03-09 9:58 UTC (permalink / raw)
To: buildroot
Move it outside x11r7 scope since it can be built without it with a few
patches (sent upstream via github pull request).
Motivation is simple, it's a dependency for newer gtk3 versions which
can work with a wayland or broadway backend, and having a full x11 stack
is pointless for that scenario.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/Config.in | 1 +
.../0001-make-egl-and-glx-conditional.patch | 319 +++++++++++++++++++++
.../0002-Forward-egl-cflags-into-epoxy.pc.patch | 45 +++
package/libepoxy/0003-Make-egl-conditional.patch | 59 ++++
package/libepoxy/Config.in | 12 +
package/libepoxy/libepoxy.mk | 32 +++
package/x11r7/Config.in | 1 -
package/x11r7/libepoxy/Config.in | 13 -
package/x11r7/libepoxy/libepoxy.mk | 16 --
9 files changed, 468 insertions(+), 30 deletions(-)
create mode 100644 package/libepoxy/0001-make-egl-and-glx-conditional.patch
create mode 100644 package/libepoxy/0002-Forward-egl-cflags-into-epoxy.pc.patch
create mode 100644 package/libepoxy/0003-Make-egl-conditional.patch
create mode 100644 package/libepoxy/Config.in
create mode 100644 package/libepoxy/libepoxy.mk
delete mode 100644 package/x11r7/libepoxy/Config.in
delete mode 100644 package/x11r7/libepoxy/libepoxy.mk
diff --git a/package/Config.in b/package/Config.in
index 24be023..221852e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -900,6 +900,7 @@ menu "Graphics"
source "package/libdmtx/Config.in"
source "package/libdri2/Config.in"
source "package/libdrm/Config.in"
+ source "package/libepoxy/Config.in"
source "package/libevas-generic-loaders/Config.in"
source "package/libexif/Config.in"
source "package/libfm/Config.in"
diff --git a/package/libepoxy/0001-make-egl-and-glx-conditional.patch b/package/libepoxy/0001-make-egl-and-glx-conditional.patch
new file mode 100644
index 0000000..9952f38
--- /dev/null
+++ b/package/libepoxy/0001-make-egl-and-glx-conditional.patch
@@ -0,0 +1,319 @@
+Fetched from pull #81 on github for libepoxy:
+https://github.com/anholt/libepoxy/pull/81/files
+
+Status: not yet upstream.
+
+From 7eff2bf8e27599c1c94217b2bb1b73d4b7d18e59 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Wed, 6 May 2015 10:45:22 +0200
+Subject: [PATCH 1/4] select platforms based on configuration results
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas M?ller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 13 +++++--------
+ src/dispatch_common.c | 9 ++++++---
+ src/dispatch_common.h | 9 +++++----
+ 3 files changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2d67726..225ab73 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,6 +58,10 @@ AC_CHECK_HEADER([KHR/khrplatform.h],
+ # uintptr_t to a void *") by default. Kill that.
+ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
+
++PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no])
++
++AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
++
+ has_znow=yes
+
+ case $host_os in
+@@ -86,7 +90,7 @@ case $host_os in
+ ;;
+ *)
+ build_egl=yes
+- build_glx=yes
++ build_glx=$x11
+ build_wgl=no
+ # On platforms with dlopen, we load everything dynamically and
+ # don't link against a specific window system or GL implementation.
+@@ -144,13 +148,6 @@ esac
+
+ AC_SUBST([VISIBILITY_CFLAGS])
+
+-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no])
+-if test x$x11 = xno -a x$build_glx = xyes; then
+- AC_MSG_ERROR([libX11 headers (libx11-dev) required to build with GLX support])
+-fi
+-
+-AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
+-
+ PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
+
+ AC_CONFIG_FILES([
+diff --git a/src/dispatch_common.c b/src/dispatch_common.c
+index 013027f..163d348 100644
+--- a/src/dispatch_common.c
++++ b/src/dispatch_common.c
+@@ -656,10 +656,13 @@ epoxy_get_proc_address(const char *name)
+ #elif defined(__APPLE__)
+ return epoxy_gl_dlsym(name);
+ #else
++#if PLATFORM_HAS_GLX
+ if (epoxy_current_context_is_glx()) {
+ return glXGetProcAddressARB((const GLubyte *)name);
+- } else {
++ } else
++#endif /* PLATFORM_HAS_GLX */
+ #if PLATFORM_HAS_EGL
++ {
+ GLenum egl_api = epoxy_egl_get_current_gl_context_api();
+
+ switch (egl_api) {
+@@ -669,10 +672,10 @@ epoxy_get_proc_address(const char *name)
+ case EGL_NONE:
+ break;
+ }
+-#endif
+ }
++#endif /* PLATFORM_HAS_EGL */
+ errx(1, "Couldn't find current GLX or EGL context.\n");
+-#endif
++#endif /* _WIN32 | __APPLE__*/
+ }
+
+ WRAPPER_VISIBILITY (void)
+diff --git a/src/dispatch_common.h b/src/dispatch_common.h
+index 676a4d5..2728b45 100644
+--- a/src/dispatch_common.h
++++ b/src/dispatch_common.h
+@@ -21,12 +21,13 @@
+ * IN THE SOFTWARE.
+ */
+
++#include <config.h>
+ #include <stdbool.h>
+
+ #ifdef _WIN32
+ #define PLATFORM_HAS_EGL 0
+ #define PLATFORM_HAS_GLX 0
+-#define PLATFORM_HAS_WGL 1
++#define PLATFORM_HAS_WGL BUILD_WGL
+ #define EPOXY_IMPORTEXPORT __declspec(dllexport)
+ #elif defined(__APPLE__)
+ #define PLATFORM_HAS_EGL 0
+@@ -34,13 +35,13 @@
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #elif defined(ANDROID)
+-#define PLATFORM_HAS_EGL 1
++#define PLATFORM_HAS_EGL BUILD_EGL
+ #define PLATFORM_HAS_GLX 0
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #else
+-#define PLATFORM_HAS_EGL 1
+-#define PLATFORM_HAS_GLX 1
++#define PLATFORM_HAS_EGL BUILD_EGL
++#define PLATFORM_HAS_GLX BUILD_GLX
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #endif
+
+From a9efde0fb2678cd26bdf26d256732d97ded0c595 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Wed, 6 May 2015 11:05:48 +0200
+Subject: [PATCH 2/4] add an option to disable glx support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+this option would help us in yocto to get deterministic build results
+
+Signed-off-by: Andreas M?ller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 225ab73..d3d947c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,14 @@ AC_CHECK_HEADER([KHR/khrplatform.h],
+ # uintptr_t to a void *") by default. Kill that.
+ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
+
+-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no])
++AC_ARG_ENABLE([glx],
++ [AS_HELP_STRING([--disable-glx],
++ [disable if you don't want x11/glx support])],
++ [],
++ [enable_glx=yes]
++ )
++
++PKG_CHECK_MODULES(X11, [x11], [x11=$enable_glx], [x11=no])
+
+ AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
+
+
+From 902ea1eb073187603ec2eda4d2a146bef96592d4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Mon, 18 Jan 2016 10:08:44 -0800
+Subject: [PATCH 3/4] Make --enable-glx actually work on OSX and Windows
+
+Followup for anholt/libepoxy#52
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ configure.ac | 6 +++---
+ src/dispatch_common.h | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d3d947c..b4c7ede 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,7 +61,7 @@ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
+ AC_ARG_ENABLE([glx],
+ [AS_HELP_STRING([--disable-glx],
+ [disable if you don't want x11/glx support])],
+- [],
++ [enable_glx=$enableval],
+ [enable_glx=yes]
+ )
+
+@@ -74,7 +74,7 @@ has_znow=yes
+ case $host_os in
+ mingw*)
+ build_egl=no
+- build_glx=no
++ build_glx=$x11
+ build_wgl=yes
+ # On windows, the DLL has to have all of its functions
+ # resolved at link time, so we have to link directly aginst
+@@ -89,7 +89,7 @@ case $host_os in
+ ;;
+ darwin*)
+ build_egl=no
+- build_glx=no
++ build_glx=$x11
+ build_wgl=no
+ build_apple=yes
+ has_znow=no
+diff --git a/src/dispatch_common.h b/src/dispatch_common.h
+index 2728b45..c30ce44 100644
+--- a/src/dispatch_common.h
++++ b/src/dispatch_common.h
+@@ -26,12 +26,12 @@
+
+ #ifdef _WIN32
+ #define PLATFORM_HAS_EGL 0
+-#define PLATFORM_HAS_GLX 0
++#define PLATFORM_HAS_GLX BUILD_GLX
+ #define PLATFORM_HAS_WGL BUILD_WGL
+ #define EPOXY_IMPORTEXPORT __declspec(dllexport)
+ #elif defined(__APPLE__)
+ #define PLATFORM_HAS_EGL 0
+-#define PLATFORM_HAS_GLX 0
++#define PLATFORM_HAS_GLX BUILD_GLX
+ #define PLATFORM_HAS_WGL 0
+ #define EPOXY_IMPORTEXPORT
+ #elif defined(ANDROID)
+
+From d010922282580a32dfebcda12ee1c307b3ef6005 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Mon, 18 Jan 2016 09:49:55 -0800
+Subject: [PATCH 4/4] darwin: Use GLX instead of OpenGL.framework if it is the
+ current context
+
+Also makes a stab at similar support for Win32
+
+anholt/libepoxy#63
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ src/dispatch_common.c | 29 ++++++++++++++++-------------
+ 1 file changed, 16 insertions(+), 13 deletions(-)
+
+diff --git a/src/dispatch_common.c b/src/dispatch_common.c
+index 163d348..cb9f76a 100644
+--- a/src/dispatch_common.c
++++ b/src/dispatch_common.c
+@@ -482,16 +482,20 @@ epoxy_glx_dlsym(const char *name)
+ void *
+ epoxy_gl_dlsym(const char *name)
+ {
+-#ifdef _WIN32
++#if defined(_WIN32) || defined(__APPLE__)
++if (!epoxy_current_context_is_glx()) {
++# if defined(_WIN32)
+ return do_dlsym(&api.gl_handle, "OPENGL32", name, true);
+-#elif defined(__APPLE__)
++# elif defined(__APPLE__)
+ return do_dlsym(&api.gl_handle,
+ "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL",
+ name, true);
+-#else
++# endif
++}
++#endif
++
+ /* There's no library for desktop GL support independent of GLX. */
+ return epoxy_glx_dlsym(name);
+-#endif
+ }
+
+ void *
+@@ -615,7 +619,7 @@ epoxy_get_bootstrap_proc_address(const char *name)
+ */
+ #if PLATFORM_HAS_GLX
+ if (api.glx_handle && glXGetCurrentContext())
+- return epoxy_gl_dlsym(name);
++ return epoxy_glx_dlsym(name);
+ #endif
+
+ /* If epoxy hasn't loaded any API-specific library yet, try to
+@@ -644,22 +648,17 @@ epoxy_get_bootstrap_proc_address(const char *name)
+ }
+ #endif /* PLATFORM_HAS_EGL */
+
+- /* Fall back to GLX */
++ /* Fall back to the platform default */
+ return epoxy_gl_dlsym(name);
+ }
+
+ void *
+ epoxy_get_proc_address(const char *name)
+ {
+-#ifdef _WIN32
+- return wglGetProcAddress(name);
+-#elif defined(__APPLE__)
+- return epoxy_gl_dlsym(name);
+-#else
+ #if PLATFORM_HAS_GLX
+ if (epoxy_current_context_is_glx()) {
+ return glXGetProcAddressARB((const GLubyte *)name);
+- } else
++ }
+ #endif /* PLATFORM_HAS_GLX */
+ #if PLATFORM_HAS_EGL
+ {
+@@ -674,8 +673,12 @@ epoxy_get_proc_address(const char *name)
+ }
+ }
+ #endif /* PLATFORM_HAS_EGL */
++#if defined(_WIN32)
++ return wglGetProcAddress(name);
++#elif defined(__APPLE__)
++ return epoxy_gl_dlsym(name);
++#endif
+ errx(1, "Couldn't find current GLX or EGL context.\n");
+-#endif /* _WIN32 | __APPLE__*/
+ }
+
+ WRAPPER_VISIBILITY (void)
diff --git a/package/libepoxy/0002-Forward-egl-cflags-into-epoxy.pc.patch b/package/libepoxy/0002-Forward-egl-cflags-into-epoxy.pc.patch
new file mode 100644
index 0000000..d13f01d
--- /dev/null
+++ b/package/libepoxy/0002-Forward-egl-cflags-into-epoxy.pc.patch
@@ -0,0 +1,45 @@
+From 68e5f1574758240aedfe8653d7aaae62cdb08bf5 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Sun, 20 Dec 2015 10:07:06 -0300
+Subject: [PATCH] Forward egl cflags into epoxy.pc
+
+When building mesa egl without x11 and gles2 the headers need a
+MESA_EGL_NO_X11_HEADERS define, so put them in epoxy.pc as well since
+otherwise builds will fail.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+Status: pull request https://github.com/anholt/libepoxy/pull/80
+
+ configure.ac | 2 ++
+ epoxy.pc.in | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c7cffb2..7b599de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,6 +102,8 @@ if test x$build_egl = xyes; then
+ AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
+ fi
+
++AC_SUBST(EGL_CFLAGS)
++
+ PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
+ if test x$gl = xno; then
+ build_glx=no
+diff --git a/epoxy.pc.in b/epoxy.pc.in
+index 8c85a33..f377da5 100644
+--- a/epoxy.pc.in
++++ b/epoxy.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: epoxy
+ Description: epoxy GL dispatch Library
+ Version: @PACKAGE_VERSION@
+-Cflags: -I${includedir}
++Cflags: -I${includedir} @EGL_CFLAGS@
+ Libs: -L${libdir} -lepoxy
+ Libs.private: @DLOPEN_LIBS@
+--
+2.4.10
+
diff --git a/package/libepoxy/0003-Make-egl-conditional.patch b/package/libepoxy/0003-Make-egl-conditional.patch
new file mode 100644
index 0000000..752e8e4
--- /dev/null
+++ b/package/libepoxy/0003-Make-egl-conditional.patch
@@ -0,0 +1,59 @@
+From 5492e81f317e48141b0687ad77252c52c2dfcd6d Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Fri, 5 Feb 2016 19:03:39 -0300
+Subject: [PATCH] Make egl conditional
+
+Mesa can be built with GLX and without EGL support, so make this
+possible in epoxy as well.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6e56599..21e3a25 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,6 +58,13 @@ AC_CHECK_HEADER([KHR/khrplatform.h],
+ # uintptr_t to a void *") by default. Kill that.
+ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
+
++AC_ARG_ENABLE([egl],
++ [AS_HELP_STRING([--disable-egl],
++ [disable if you don't want egl support])],
++ [enable_egl=$enableval],
++ [enable_egl=yes]
++ )
++
+ AC_ARG_ENABLE([glx],
+ [AS_HELP_STRING([--disable-glx],
+ [disable if you don't want x11/glx support])],
+@@ -65,6 +72,7 @@ AC_ARG_ENABLE([glx],
+ [enable_glx=yes]
+ )
+
++PKG_CHECK_MODULES(EGL, [egl], [egl=$enable_egl], [egl=no])
+ PKG_CHECK_MODULES(X11, [x11], [x11=$enable_glx], [x11=no])
+
+ AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
+@@ -96,7 +104,7 @@ case $host_os in
+ EPOXY_LINK_LIBS=""
+ ;;
+ *)
+- build_egl=yes
++ build_egl=$egl
+ build_glx=$x11
+ build_wgl=no
+ # On platforms with dlopen, we load everything dynamically and
+@@ -109,7 +117,6 @@ AC_SUBST(EPOXY_LINK_LIBS)
+
+ AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes)
+ if test x$build_egl = xyes; then
+- PKG_CHECK_MODULES(EGL, [egl])
+ AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
+ fi
+
+--
+2.4.10
+
diff --git a/package/libepoxy/Config.in b/package/libepoxy/Config.in
new file mode 100644
index 0000000..c87366a
--- /dev/null
+++ b/package/libepoxy/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_LIBEPOXY
+ bool "libepoxy"
+ select BR2_PACKAGE_XUTIL_UTIL_MACROS
+ depends on BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL
+ help
+ Epoxy is a library for handling OpenGL function pointer
+ management for you.
+
+ https://github.com/anholt/libepoxy
+
+comment "libepoxy needs an OpenGL and/or OpenGL EGL backend"
+ depends on !BR2_PACKAGE_HAS_LIBEGL && !BR2_PACKAGE_HAS_LIBGL
diff --git a/package/libepoxy/libepoxy.mk b/package/libepoxy/libepoxy.mk
new file mode 100644
index 0000000..8e717ce
--- /dev/null
+++ b/package/libepoxy/libepoxy.mk
@@ -0,0 +1,32 @@
+################################################################################
+#
+# libepoxy
+#
+################################################################################
+
+LIBEPOXY_VERSION = v1.3.1
+LIBEPOXY_SITE = $(call github,anholt,libepoxy,$(LIBEPOXY_VERSION))
+LIBEPOXY_INSTALL_STAGING = YES
+# For patches:
+# 0001-make-egl-and-glx-conditional.patch
+# 0002-Forward-egl-cflags-into-epoxy.pc.patch
+LIBEPOXY_AUTORECONF = YES
+LIBEPOXY_DEPENDENCIES = xutil_util-macros
+LIBEPOXY_LICENSE = MIT
+LIBEPOXY_LICENSE_FILES = COPYING
+
+ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
+LIBEPOXY_CONF_OPTS += --enable-egl
+LIBEPOXY_DEPENDENCIES += libegl
+else
+LIBEPOXY_CONF_OPTS += --disable-egl
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_XLIB_LIBX11),yy)
+LIBEPOXY_CONF_OPTS += --enable-egl
+LIBEPOXY_DEPENDENCIES += libgl xlib_libX11
+else
+LIBEPOXY_CONF_OPTS += --disable-glx
+endif
+
+$(eval $(autotools-package))
diff --git a/package/x11r7/Config.in b/package/x11r7/Config.in
index 381157f..f4d0c80 100644
--- a/package/x11r7/Config.in
+++ b/package/x11r7/Config.in
@@ -15,7 +15,6 @@ if BR2_PACKAGE_XORG7
endmenu
menu "X11R7 Libraries"
source package/x11r7/libxcb/Config.in
- source package/x11r7/libepoxy/Config.in
source package/x11r7/xcb-util/Config.in
source package/x11r7/xcb-util-cursor/Config.in
source package/x11r7/xcb-util-image/Config.in
diff --git a/package/x11r7/libepoxy/Config.in b/package/x11r7/libepoxy/Config.in
deleted file mode 100644
index 5628bf7..0000000
--- a/package/x11r7/libepoxy/Config.in
+++ /dev/null
@@ -1,13 +0,0 @@
-config BR2_PACKAGE_LIBEPOXY
- bool "epoxy"
- select BR2_PACKAGE_XLIB_LIBX11
- select BR2_PACKAGE_XUTIL_UTIL_MACROS
- depends on BR2_PACKAGE_HAS_LIBEGL
- help
- Epoxy is a library for handling OpenGL function pointer
- management for you.
-
- https://github.com/anholt/libepoxy
-
-comment "epoxy needs an OpenGL EGL backend"
- depends on !BR2_PACKAGE_HAS_LIBEGL
diff --git a/package/x11r7/libepoxy/libepoxy.mk b/package/x11r7/libepoxy/libepoxy.mk
deleted file mode 100644
index 12ddd03..0000000
--- a/package/x11r7/libepoxy/libepoxy.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-################################################################################
-#
-# libepoxy
-#
-################################################################################
-
-LIBEPOXY_VERSION = v1.3.1
-LIBEPOXY_SITE = $(call github,anholt,libepoxy,$(LIBEPOXY_VERSION))
-LIBEPOXY_INSTALL_STAGING = YES
-LIBEPOXY_AUTORECONF = YES
-LIBEPOXY_DEPENDENCIES = xlib_libX11 xutil_util-macros libegl \
- $(if $(BR2_PACKAGE_HAS_LIBGL),libgl) host-pkgconf
-LIBEPOXY_LICENSE = MIT
-LIBEPOXY_LICENSE_FILES = COPYING
-
-$(eval $(autotools-package))
--
2.4.10
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCH v3 2/7] libgtk3: bump to version 3.18.8
2016-03-09 9:58 [Buildroot] [PATCH v3 0/7] gtk3/wayland/weston bump Gustavo Zacarias
2016-03-09 9:58 ` [Buildroot] [PATCH v3 1/7] libepoxy: move outside x11r7 scope Gustavo Zacarias
@ 2016-03-09 9:58 ` Gustavo Zacarias
2016-03-20 17:37 ` Thomas Petazzoni
2016-03-09 9:58 ` [Buildroot] [PATCH v3 3/7] pangomm: roll back to version 2.38.1 Gustavo Zacarias
` (4 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Gustavo Zacarias @ 2016-03-09 9:58 UTC (permalink / raw)
To: buildroot
Mark the wayland backend as good again since the bump and consequent
protocol version mtach fixes it.
Switch backend selection to choice so that only one can be selected.
Drop upstream 0004-Fix-undefined-reference-to-get_xkb.patch
Drop unnecessary 0005-do-not-build-extract-strings.patch
(extract-strings doesn't exist any more).
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
.../0004-Fix-undefined-reference-to-get_xkb.patch | 33 --------
| 47 ------------
package/libgtk3/Config.in | 88 +++++++++++++---------
package/libgtk3/libgtk3.hash | 4 +-
package/libgtk3/libgtk3.mk | 15 +---
5 files changed, 57 insertions(+), 130 deletions(-)
delete mode 100644 package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch
delete mode 100644 package/libgtk3/0005-do-not-build-extract-strings.patch
diff --git a/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch b/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch
deleted file mode 100644
index c2f4b4f..0000000
--- a/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b64a04250b1f35923434158beb6ddb5726b41eac Mon Sep 17 00:00:00 2001
-From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
-Date: Mon, 27 Oct 2014 10:34:38 +0100
-Subject: [PATCH 1/1] Fix undefined reference to get_xkb()
-
-When configuring Gtk+ with --disable-xkb, the build fails because of an
-undefined reference to get_xkb().
-
-This patch fixes this issue.
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
----
- gdk/x11/gdkkeys-x11.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gdk/x11/gdkkeys-x11.c b/gdk/x11/gdkkeys-x11.c
-index c45a971..6a5481b 100644
---- a/gdk/x11/gdkkeys-x11.c
-+++ b/gdk/x11/gdkkeys-x11.c
-@@ -1498,8 +1498,10 @@ gdk_x11_keymap_map_virtual_modifiers (GdkKeymap *keymap,
- int i, j;
- gboolean retval;
-
-+#ifdef HAVE_XKB
- if (KEYMAP_USE_XKB (keymap))
- get_xkb (keymap_x11);
-+#endif
-
- retval = TRUE;
-
---
-1.9.1
-
diff --git a/package/libgtk3/0005-do-not-build-extract-strings.patch b/package/libgtk3/0005-do-not-build-extract-strings.patch
deleted file mode 100644
index f1fbaaa..0000000
--- a/package/libgtk3/0005-do-not-build-extract-strings.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Do not build util/extract-strings
-
-Do not build util/extract-strings, as it will be built by host-libgtk3
-and installed in $(HOST_DIR)/usr/bin (thus avoiding the -lint linking
-issue with uClibc).
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
-
-Index: gtk+-3.14.0/Makefile.am
-===================================================================
---- gtk+-3.14.0.orig/Makefile.am 2014-09-22 05:17:44.000000000 +0200
-+++ gtk+-3.14.0/Makefile.am 2014-09-25 16:08:32.000000000 +0200
-@@ -1,7 +1,7 @@
- ## Makefile.am for GTK+
- include $(top_srcdir)/Makefile.decl
-
--SRC_SUBDIRS = util gdk gtk libgail-util modules demos tests testsuite examples
-+SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples
- SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
-
- ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-Index: gtk+-3.14.0/gtk/Makefile.am
-===================================================================
---- gtk+-3.14.0.orig/gtk/Makefile.am 2014-09-22 05:09:39.000000000 +0200
-+++ gtk+-3.14.0/gtk/Makefile.am 2014-09-25 16:09:10.000000000 +0200
-@@ -1330,7 +1330,7 @@
-
- %.ui.h: %.ui
- $(AM_V_GEN) mkdir -p $(dir $@) \
-- && $(top_builddir)/util/extract-strings$(EXEEXT) $< > $@
-+ && extract-strings$(EXEEXT) $< > $@
-
- #
- # rules to generate built sources
-Index: gtk+-3.14.0/gtk/inspector/Makefile.am
-===================================================================
---- gtk+-3.14.0.orig/gtk/inspector/Makefile.am 2014-09-04 20:11:33.000000000 +0200
-+++ gtk+-3.14.0/gtk/inspector/Makefile.am 2014-09-25 16:09:48.000000000 +0200
-@@ -114,7 +114,7 @@
- template_headers = $(templates:.ui=.ui.h)
-
- %.ui.h : %.ui
-- $(AM_V_GEN) $(top_builddir)/util/extract-strings$(EXEEXT) $< > $@
-+ $(AM_V_GEN) extract-strings$(EXEEXT) $< > $@
-
- EXTRA_DIST += \
- inspector.gresource.xml \
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index ac56b85..cf35f84 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -1,3 +1,15 @@
+comment "libgtk3 needs a toolchain w/ wchar, threads, C++"
+ depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
+ depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "libgtk3 needs an OpenGL or OpenGL EGL backend provided by mesa3d"
+ depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
+ depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL && \
+ !BR2_PACKAGE_HAS_LIBGL
+
config BR2_PACKAGE_LIBGTK3
bool "libgtk3"
select BR2_PACKAGE_ATK
@@ -5,10 +17,11 @@ config BR2_PACKAGE_LIBGTK3
select BR2_PACKAGE_CAIRO_PS
select BR2_PACKAGE_CAIRO_PDF
select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_LIBEPOXY
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
select BR2_PACKAGE_GDK_PIXBUF
- # atleast 1 backend must be enabled
+ # At least one backend is required
select BR2_PACKAGE_LIBGTK3_BROADWAY if \
!(BR2_PACKAGE_LIBGTK3_X11 || BR2_PACKAGE_LIBGTK3_WAYLAND)
depends on BR2_USE_WCHAR # glib2
@@ -16,6 +29,8 @@ config BR2_PACKAGE_LIBGTK3
depends on BR2_USE_MMU # glib2
depends on BR2_INSTALL_LIBSTDCPP # pango
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
+ depends on BR2_PACKAGE_MESA3D_OPENGL_EGL || \
+ BR2_PACKAGE_HAS_LIBGL
help
The GTK+ version 3 graphical user interface library
@@ -23,33 +38,10 @@ config BR2_PACKAGE_LIBGTK3
if BR2_PACKAGE_LIBGTK3
-comment "GDK backend"
-
-config BR2_PACKAGE_LIBGTK3_X11
- bool "GDK X11 backend"
- default y
- depends on BR2_PACKAGE_XORG7
- select BR2_PACKAGE_FONTCONFIG
- select BR2_PACKAGE_XLIB_LIBX11
- select BR2_PACKAGE_XLIB_LIBXEXT
- select BR2_PACKAGE_XLIB_LIBXRENDER
- select BR2_PACKAGE_XLIB_LIBXI
- help
- This enables the X11 backend for GDK.
-
-config BR2_PACKAGE_LIBGTK3_WAYLAND
- bool "GDK Wayland backend"
- default y
- # Needs a libgtk3 bump to match API level
- depends on BROKEN
- depends on BR2_PACKAGE_WAYLAND
- select BR2_PACKAGE_LIBXKBCOMMON
- help
- This enables the Wayland backend for GDK.
-
config BR2_PACKAGE_LIBGTK3_BROADWAY
- bool "GDK Broadway backend"
- help
+ bool "Broadway GDK backend"
+ default y
+ help
This enables the Broadway backend for GDK, which provides support
for displaying GTK+ applications in a web browser, using HTML5 and
web sockets.
@@ -58,14 +50,42 @@ config BR2_PACKAGE_LIBGTK3_BROADWAY
192.168.0.1 and use it from a web browser, execute the following
commands:
- $ broadwayd -a 192.168.0.1 -p 8080 :2 &
- $ export GDK_BACKEND=broadway
- $ export BROADWAY_DISPLAY=:2
- $ gtk3-demo
+ $ broadwayd -a 192.168.0.1 -p 8080 :2 &
+ $ export GDK_BACKEND=broadway
+ $ export BROADWAY_DISPLAY=:2
+ $ gtk3-demo
Then open a web browser at address http://192.168.0.1:8080.
Javascript and web sockets should be enabled.
+comment "Wayland GDK backend needs an OpenGL EGL backend provided by mesa3d"
+ depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL
+
+config BR2_PACKAGE_LIBGTK3_WAYLAND
+ bool "Wayland GDK backend"
+ default y
+ depends on BR2_PACKAGE_MESA3D_OPENGL_EGL
+ select BR2_PACKAGE_WAYLAND
+ select BR2_PACKAGE_LIBXKBCOMMON
+ help
+ This enables the Wayland backend for GDK.
+
+comment "X11 GDK backend needs an OpenGL provider"
+ depends on !BR2_PACKAGE_HAS_LIBGL
+
+config BR2_PACKAGE_LIBGTK3_X11
+ bool "X11 GDK backend"
+ default y
+ depends on BR2_PACKAGE_XORG7
+ depends on BR2_PACKAGE_HAS_LIBGL
+ select BR2_PACKAGE_FONTCONFIG
+ select BR2_PACKAGE_XLIB_LIBX11
+ select BR2_PACKAGE_XLIB_LIBXEXT
+ select BR2_PACKAGE_XLIB_LIBXRENDER
+ select BR2_PACKAGE_XLIB_LIBXI
+ help
+ This enables the X11 backend for GDK.
+
config BR2_PACKAGE_LIBGTK3_DEMO
bool "Install libgtk3 demo program"
select BR2_PACKAGE_SHARED_MIME_INFO
@@ -81,9 +101,3 @@ config BR2_PACKAGE_LIBGTK3_TESTS
allows to install them to the target.
endif
-
-comment "libgtk3 needs a toolchain w/ wchar, threads, C++"
- depends on BR2_USE_MMU
- depends on BR2_TOOLCHAIN_HAS_SYNC_4
- depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
- !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk3/libgtk3.hash b/package/libgtk3/libgtk3.hash
index b310aec..6415aa1 100644
--- a/package/libgtk3/libgtk3.hash
+++ b/package/libgtk3/libgtk3.hash
@@ -1,2 +1,2 @@
-# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.14/gtk+-3.14.15.sha256sum
-sha256 3ac87659112ced9e5ee5bd55d055faa881aafd040f26ca40b0d8ba0fa6509c83 gtk+-3.14.15.tar.xz
+# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.18/gtk+-3.18.8.sha256sum
+sha256 1c53ef1bb55364698f7183ecd185b547f92f4a3a7abfafd531400232e2e052f8 gtk+-3.18.8.tar.xz
diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk
index d268b56..c2148d1 100644
--- a/package/libgtk3/libgtk3.mk
+++ b/package/libgtk3/libgtk3.mk
@@ -4,8 +4,8 @@
#
################################################################################
-LIBGTK3_VERSION_MAJOR = 3.14
-LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).15
+LIBGTK3_VERSION_MAJOR = 3.18
+LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).8
LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
LIBGTK3_LICENSE = LGPLv2+
@@ -24,7 +24,7 @@ LIBGTK3_CONF_OPTS = \
--enable-gtk2-dependency \
--disable-introspection
-LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf
+LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf libepoxy
ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi
@@ -136,8 +136,7 @@ LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS
# for both native and target builds).
#
# But no native version of libintl is available (the functions are
-# provided by glibc). So gtk-update-icon-cache will not build, and
-# extract-strings neither.
+# provided by glibc). So gtk-update-icon-cache will not build.
#
# As a workaround, we build gtk-update-icon-cache on our own, set
# --enable-gtk2-dependency=yes and force './configure' to use our version.
@@ -162,17 +161,11 @@ define HOST_LIBGTK3_BUILD_CMDS
$(@D)/gtk/updateiconcache.c \
$(HOST_LIBGTK3_CFLAGS) \
-o $(@D)/gtk/gtk-update-icon-cache
- $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
- $(@D)/util/extract-strings.c \
- $(HOST_LIBGTK3_CFLAGS) \
- -o $(@D)/util/extract-strings
endef
define HOST_LIBGTK3_INSTALL_CMDS
$(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \
$(HOST_DIR)/usr/bin/gtk-update-icon-cache
- $(INSTALL) -D -m 0755 $(@D)/util/extract-strings \
- $(HOST_DIR)/usr/bin/extract-strings
endef
$(eval $(autotools-package))
--
2.4.10
^ permalink raw reply related [flat|nested] 12+ messages in thread