All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
@ 2017-03-22 11:56 Vicente Olivert Riera
  2017-03-22 21:56 ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Vicente Olivert Riera @ 2017-03-22 11:56 UTC (permalink / raw)
  To: buildroot

The --disable-egl configure option doesn't exist:

configure: WARNING: unrecognized options: [snip] --disable-egl

If you don't have EGL support the configure script will fail like this:

checking for EGL... no
configure: error: Package requirements (egl) were not met:

Also, libepoxy use dlsym to load a GLES2 library when EGL support is
enabled, see src/dispatch_common.c:

So, OpenGL ES dependency is also mandatory.

Fixes:
  http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
  http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
  http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
---
Changes v1 -> v2:
 - Add OpenGL ES dependency and modify commit log accordingly.
   (Thanks Romain)
---
 package/libepoxy/Config.in   | 10 +++++++---
 package/libepoxy/libepoxy.mk |  9 +--------
 2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/package/libepoxy/Config.in b/package/libepoxy/Config.in
index c87366a..301e3ed 100644
--- a/package/libepoxy/Config.in
+++ b/package/libepoxy/Config.in
@@ -1,12 +1,16 @@
 config BR2_PACKAGE_LIBEPOXY
 	bool "libepoxy"
 	select BR2_PACKAGE_XUTIL_UTIL_MACROS
-	depends on BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL
+	# OpenGL EGL is mandatory and libepoxy uses dlsym to load a
+	# GLES2 library when EGL support is enabled. Details in
+	# src/dispatch/dispatch_common.c
+	depends on BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES
 	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
+comment "libepoxy needs OpenGL EGL and OpenGL ES backends"
+	depends on !BR2_PACKAGE_HAS_LIBEGL
+	depends on !BR2_PACKAGE_HAS_LIBGLES
diff --git a/package/libepoxy/libepoxy.mk b/package/libepoxy/libepoxy.mk
index be8c55e..4dbdefc 100644
--- a/package/libepoxy/libepoxy.mk
+++ b/package/libepoxy/libepoxy.mk
@@ -9,17 +9,10 @@ LIBEPOXY_VERSION = $(LIBEPOXY_VERSION_MAJOR).1
 LIBEPOXY_SITE = http://ftp.gnome.org/pub/gnome/sources/libepoxy/$(LIBEPOXY_VERSION_MAJOR)
 LIBEPOXY_SOURCE = libepoxy-$(LIBEPOXY_VERSION).tar.xz
 LIBEPOXY_INSTALL_STAGING = YES
-LIBEPOXY_DEPENDENCIES = host-pkgconf xutil_util-macros
+LIBEPOXY_DEPENDENCIES = host-pkgconf libegl libgles 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-glx
 LIBEPOXY_DEPENDENCIES += libgl xlib_libX11
-- 
2.10.2

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-22 11:56 [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory Vicente Olivert Riera
@ 2017-03-22 21:56 ` Thomas Petazzoni
  2017-03-22 23:05   ` Arnout Vandecappelle
  2017-03-23 13:00   ` Gustavo Zacarias
  0 siblings, 2 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2017-03-22 21:56 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 22 Mar 2017 11:56:43 +0000, Vicente Olivert Riera wrote:
> The --disable-egl configure option doesn't exist:
> 
> configure: WARNING: unrecognized options: [snip] --disable-egl
> 
> If you don't have EGL support the configure script will fail like this:
> 
> checking for EGL... no
> configure: error: Package requirements (egl) were not met:
> 
> Also, libepoxy use dlsym to load a GLES2 library when EGL support is
> enabled, see src/dispatch_common.c:
> 
> So, OpenGL ES dependency is also mandatory.
> 
> Fixes:
>   http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
>   http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
>   http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> Reviewed-by: Romain Naour <romain.naour@gmail.com>
> Tested-by: Romain Naour <romain.naour@gmail.com>

I would really like to hear about this patch from Gustavo. Gustavo,
could you review/comment?


> +	# OpenGL EGL is mandatory and libepoxy uses dlsym to load a
> +	# GLES2 library when EGL support is enabled. Details in
> +	# src/dispatch/dispatch_common.c
> +	depends on BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES

New dependency -> don't forget to check the reverse dependencies of
libepoxy:

package/libgtk3/Config.in:      select BR2_PACKAGE_LIBEPOXY
package/x11r7/xdriver_xf86-video-amdgpu/Config.in:      select BR2_PACKAGE_LIBEPOXY

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-22 21:56 ` Thomas Petazzoni
@ 2017-03-22 23:05   ` Arnout Vandecappelle
  2017-03-23 13:00   ` Gustavo Zacarias
  1 sibling, 0 replies; 8+ messages in thread
From: Arnout Vandecappelle @ 2017-03-22 23:05 UTC (permalink / raw)
  To: buildroot



On 22-03-17 22:56, Thomas Petazzoni wrote:
> Hello,
> 
> On Wed, 22 Mar 2017 11:56:43 +0000, Vicente Olivert Riera wrote:
>> The --disable-egl configure option doesn't exist:
>>
>> configure: WARNING: unrecognized options: [snip] --disable-egl
>>
>> If you don't have EGL support the configure script will fail like this:
>>
>> checking for EGL... no
>> configure: error: Package requirements (egl) were not met:
>>
>> Also, libepoxy use dlsym to load a GLES2 library when EGL support is
>> enabled, see src/dispatch_common.c:
>>
>> So, OpenGL ES dependency is also mandatory.
>>
>> Fixes:
>>   http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
>>   http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
>>   http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0
>>
>> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
>> Reviewed-by: Romain Naour <romain.naour@gmail.com>
>> Tested-by: Romain Naour <romain.naour@gmail.com>
> 
> I would really like to hear about this patch from Gustavo. Gustavo,
> could you review/comment?
> 
> 
>> +	# OpenGL EGL is mandatory and libepoxy uses dlsym to load a
>> +	# GLES2 library when EGL support is enabled. Details in
>> +	# src/dispatch/dispatch_common.c
>> +	depends on BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES

 Also, this should be two separate lines:

	depends on BR2_PACKAGE_HAS_LIBEGL
	depends on BR2_PACKAGE_HAS_LIBGLES

 Regards,
 Arnout

> 
> New dependency -> don't forget to check the reverse dependencies of
> libepoxy:
> 
> package/libgtk3/Config.in:      select BR2_PACKAGE_LIBEPOXY
> package/x11r7/xdriver_xf86-video-amdgpu/Config.in:      select BR2_PACKAGE_LIBEPOXY
> 
> Best regards,
> 
> Thomas
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-22 21:56 ` Thomas Petazzoni
  2017-03-22 23:05   ` Arnout Vandecappelle
@ 2017-03-23 13:00   ` Gustavo Zacarias
  2017-03-23 13:28     ` Thomas Petazzoni
  1 sibling, 1 reply; 8+ messages in thread
From: Gustavo Zacarias @ 2017-03-23 13:00 UTC (permalink / raw)
  To: buildroot

On 2017-03-22 18:56, Thomas Petazzoni wrote:

>> Also, libepoxy use dlsym to load a GLES2 library when EGL support is
>> enabled, see src/dispatch_common.c:
>> 
>> So, OpenGL ES dependency is also mandatory.
>> 
>> Fixes:
>>   
>> http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
>>   
>> http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
>>   
>> http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0
>> 
>> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
>> Reviewed-by: Romain Naour <romain.naour@gmail.com>
>> Tested-by: Romain Naour <romain.naour@gmail.com>
> 
> I would really like to hear about this patch from Gustavo. Gustavo,
> could you review/comment?

Hi all.
According to my tests this isn't a hard requirement - libepoxy builds 
and works fine with just EGL, in fact a PoC is pretty easy, just clone 
http://repo.or.cz/buildroot-gz.git/shortlog/refs/heads/desktop, make 
pc_x86_64_bios_wayland_defconfig, make menuconfig, disable GLES, build 
and the resulting image which is wayland-weston-midori (hence gtk3, plus 
some other gtk3 apps) works just fine.
And by looking at the source i don't see where in dispatch_common.c the 
lack of GLES errors out hard.
Regards.

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-23 13:00   ` Gustavo Zacarias
@ 2017-03-23 13:28     ` Thomas Petazzoni
  2017-03-23 13:31       ` Gustavo Zacarias
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2017-03-23 13:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 23 Mar 2017 10:00:59 -0300, Gustavo Zacarias wrote:
> On 2017-03-22 18:56, Thomas Petazzoni wrote:
> 
> >> Also, libepoxy use dlsym to load a GLES2 library when EGL support is
> >> enabled, see src/dispatch_common.c:
> >> 
> >> So, OpenGL ES dependency is also mandatory.
> >> 
> >> Fixes:
> >>   
> >> http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
> >>   
> >> http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
> >>   
> >> http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0
> >> 
> >> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> >> Reviewed-by: Romain Naour <romain.naour@gmail.com>
> >> Tested-by: Romain Naour <romain.naour@gmail.com>  
> > 
> > I would really like to hear about this patch from Gustavo. Gustavo,
> > could you review/comment?  
> 
> Hi all.
> According to my tests this isn't a hard requirement - libepoxy builds 
> and works fine with just EGL, in fact a PoC is pretty easy, just clone 
> http://repo.or.cz/buildroot-gz.git/shortlog/refs/heads/desktop, make 
> pc_x86_64_bios_wayland_defconfig, make menuconfig, disable GLES, build 
> and the resulting image which is wayland-weston-midori (hence gtk3, plus 
> some other gtk3 apps) works just fine.
> And by looking at the source i don't see where in dispatch_common.c the 
> lack of GLES errors out hard.

Then what is your proposal to fix the build issues that this patch is
trying to fix? The build log clearly points to missing EGL as being the
issue:

checking for EGL... no
configure: error: Package requirements (egl) were not met:

Package egl was not found in the pkg-config search path.
Perhaps you should add the directory containing `egl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'egl', required by 'world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables EGL_CFLAGS
and EGL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
make[1]: *** [/home/buildroot/autobuild/run/instance-2/output/build/libepoxy-1.4.1/.stamp_configured] Error 1
make: *** [_all] Error 2
make: Leaving directory `/home/buildroot/autobuild/run/instance-2/buildroot'

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-23 13:28     ` Thomas Petazzoni
@ 2017-03-23 13:31       ` Gustavo Zacarias
  2017-04-03 20:46         ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Gustavo Zacarias @ 2017-03-23 13:31 UTC (permalink / raw)
  To: buildroot

On 2017-03-23 10:28, Thomas Petazzoni wrote:

> Hello,
> 
> On Thu, 23 Mar 2017 10:00:59 -0300, Gustavo Zacarias wrote:
>> On 2017-03-22 18:56, Thomas Petazzoni wrote:
>> 
>> >> Also, libepoxy use dlsym to load a GLES2 library when EGL support is
>> >> enabled, see src/dispatch_common.c:
>> >>
>> >> So, OpenGL ES dependency is also mandatory.
>> >>
>> >> Fixes:
>> >>
>> >> http://autobuild.buildroot.net/results/3eca5ba26a521f6cc5a611309ba066472af7769c
>> >>
>> >> http://autobuild.buildroot.net/results/cf9ec7da196d70548ae1413e4a3730314f6434d6
>> >>
>> >> http://autobuild.buildroot.net/results/069b80101afc4719db6d6d41cf5fc923be21ddc0
>> >>
>> >> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
>> >> Reviewed-by: Romain Naour <romain.naour@gmail.com>
>> >> Tested-by: Romain Naour <romain.naour@gmail.com>
>> >
>> > I would really like to hear about this patch from Gustavo. Gustavo,
>> > could you review/comment?
>> 
>> Hi all.
>> According to my tests this isn't a hard requirement - libepoxy builds
>> and works fine with just EGL, in fact a PoC is pretty easy, just clone
>> http://repo.or.cz/buildroot-gz.git/shortlog/refs/heads/desktop, make
>> pc_x86_64_bios_wayland_defconfig, make menuconfig, disable GLES, build
>> and the resulting image which is wayland-weston-midori (hence gtk3, 
>> plus
>> some other gtk3 apps) works just fine.
>> And by looking at the source i don't see where in dispatch_common.c 
>> the
>> lack of GLES errors out hard.
> 
> Then what is your proposal to fix the build issues that this patch is
> trying to fix? The build log clearly points to missing EGL as being the
> issue:
> 
> checking for EGL... no
> configure: error: Package requirements (egl) were not met:
> 
> Package egl was not found in the pkg-config search path.
> Perhaps you should add the directory containing `egl.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'egl', required by 'world', not found
> 
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
> 
> Alternatively, you may set the environment variables EGL_CFLAGS
> and EGL_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.
> make[1]: ***
> [/home/buildroot/autobuild/run/instance-2/output/build/libepoxy-1.4.1/.stamp_configured]
> Error 1
> make: *** [_all] Error 2
> make: Leaving directory 
> `/home/buildroot/autobuild/run/instance-2/buildroot'
> 
> Best regards,
> 
> Thomas

Hi Thomas.
The patch is mixing two different "issues":
1) It "fixes" that EGL support, without GLX, requires GLES, which isn't 
true.
2) It fixes the autobuilder failures that GLX requires EGL - which 
wasn't the case before (1.3.x versions). I need to consult upstream 
about this, my guess is that it's probably wrong since EGL isn't a hard 
requirement for GLX - GLX existed long before EGL did.

Regards.

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-03-23 13:31       ` Gustavo Zacarias
@ 2017-04-03 20:46         ` Thomas Petazzoni
  2017-04-04  3:23           ` Gustavo Zacarias
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2017-04-03 20:46 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 23 Mar 2017 10:31:58 -0300, Gustavo Zacarias wrote:

> Hi Thomas.
> The patch is mixing two different "issues":
> 1) It "fixes" that EGL support, without GLX, requires GLES, which isn't 
> true.
> 2) It fixes the autobuilder failures that GLX requires EGL - which 
> wasn't the case before (1.3.x versions). I need to consult upstream 
> about this, my guess is that it's probably wrong since EGL isn't a hard 
> requirement for GLX - GLX existed long before EGL did.

Has upstream spoken about this?

The build issue has been there for a long time, so I would really like
to see it fixed.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory
  2017-04-03 20:46         ` Thomas Petazzoni
@ 2017-04-04  3:23           ` Gustavo Zacarias
  0 siblings, 0 replies; 8+ messages in thread
From: Gustavo Zacarias @ 2017-04-04  3:23 UTC (permalink / raw)
  To: buildroot

On 03/04/17 17:46, Thomas Petazzoni wrote:

> Hello,
>
> On Thu, 23 Mar 2017 10:31:58 -0300, Gustavo Zacarias wrote:
>
>> Hi Thomas.
>> The patch is mixing two different "issues":
>> 1) It "fixes" that EGL support, without GLX, requires GLES, which isn't
>> true.
>> 2) It fixes the autobuilder failures that GLX requires EGL - which
>> wasn't the case before (1.3.x versions). I need to consult upstream
>> about this, my guess is that it's probably wrong since EGL isn't a hard
>> requirement for GLX - GLX existed long before EGL did.
>
> Has upstream spoken about this?
>
> The build issue has been there for a long time, so I would really like
> to see it fixed.
>
> Thanks,
>
> Thomas

Hi Thomas.
I haven't heard back from upstream on both pending points for libepoxy 
(clean solution for epoxy with mesa without x11) nor forcing EGL.
IMO EGL isn't a hard requirement for X11 (GLX), i can rework the old 
patch for the new libepoxy and send another pull request to see what's 
up, though i was hoping upstream to clarify before being too annoying 
with pulls.
Regards.

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

end of thread, other threads:[~2017-04-04  3:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-22 11:56 [Buildroot] [PATCH v2] libepoxy: OpenGL EGL and OpenGL ES dependencies are mandatory Vicente Olivert Riera
2017-03-22 21:56 ` Thomas Petazzoni
2017-03-22 23:05   ` Arnout Vandecappelle
2017-03-23 13:00   ` Gustavo Zacarias
2017-03-23 13:28     ` Thomas Petazzoni
2017-03-23 13:31       ` Gustavo Zacarias
2017-04-03 20:46         ` Thomas Petazzoni
2017-04-04  3:23           ` Gustavo Zacarias

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.