* [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
@ 2015-10-09 12:20 Jussi Kukkonen
2015-10-09 12:20 ` [PATCH 1/1] gtk+3: gtk3-demo needs libgl Jussi Kukkonen
[not found] ` <CALbNGRSLEKJUYXgMCdv_oB+JD++AemnvNyM8cmCqD7o26wXqeQ@mail.gmail.com>
0 siblings, 2 replies; 8+ messages in thread
From: Jussi Kukkonen @ 2015-10-09 12:20 UTC (permalink / raw)
To: openembedded-core
Recap of the situation as I understand it:
* Gtk+3 works fine without any OpenGL, if GtkGLArea is not used
* When GtkGLArea is used, Gtk+ uses libepoxy which is supposed
dlopen the correct libraries as they are needed
* Gtk+ can only handle desktop GL at the moment (GdkGLContext
does not have a GLES profile), so epoxy ends up dlopening
libGL.so.1
With this in mind I think the right solution is that applications that
use OpenGL in a GtkGLArea must depend on a gl implementation (currently
only libgl works).
I am sending a patch that makes gtk3-demo RDEPEND on libgl.
- Jussi
The following changes since commit ceeb52a2544045fe8432e36307a321f6e934de49:
linux-yocto: Update SRCREV for genericx86* BSPs (2015-10-07 00:36:47 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib jku/gtk-gl
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/gtk-gl
Jussi Kukkonen (1):
gtk+3: gtk3-demo needs libgl
meta/recipes-gnome/gtk+/gtk+3.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
2.1.4
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/1] gtk+3: gtk3-demo needs libgl
2015-10-09 12:20 [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue Jussi Kukkonen
@ 2015-10-09 12:20 ` Jussi Kukkonen
[not found] ` <CALbNGRSLEKJUYXgMCdv_oB+JD++AemnvNyM8cmCqD7o26wXqeQ@mail.gmail.com>
1 sibling, 0 replies; 8+ messages in thread
From: Jussi Kukkonen @ 2015-10-09 12:20 UTC (permalink / raw)
To: openembedded-core
The demo app uses OpenGL (within a GtkGLArea): it needs a runtime
dependency on a GL library. Current GTK+ can only handle
full GL (libGL.so.1) so RDEPEND on libgl.
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
meta/recipes-gnome/gtk+/gtk+3.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index 558cdd7..54f84fc 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -57,7 +57,7 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \
# The demo uses PNG files and mime type sniffing, so ensure that these
# dependencies are present.
-RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info"
+RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info libgl"
FILES_${PN} = "${bindir}/gtk-update-icon-cache-3.0 \
${bindir}/gtk-query-immodules-3.0 \
--
2.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
[not found] ` <CALbNGRSLEKJUYXgMCdv_oB+JD++AemnvNyM8cmCqD7o26wXqeQ@mail.gmail.com>
@ 2015-10-15 17:26 ` Andreas Müller
2015-10-15 19:42 ` Burton, Ross
0 siblings, 1 reply; 8+ messages in thread
From: Andreas Müller @ 2015-10-15 17:26 UTC (permalink / raw)
To: openembedded-devel
On Fri, Oct 9, 2015 at 2:20 PM, Jussi Kukkonen <jussi.kukkonen@intel.com> wrote:
>
> Recap of the situation as I understand it:
> * Gtk+3 works fine without any OpenGL, if GtkGLArea is not used
> * When GtkGLArea is used, Gtk+ uses libepoxy which is supposed
> dlopen the correct libraries as they are needed
I have several gtk3+ applications that stopped working. E.G
network-manager-applet has stopped working: running
nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
parole.
I grepped network-manager-applet: there is not GtkGL or GdkGL found in
the sources (ok - it could be the dependencies). I still get the
feeling something goes wrong with libepoxy. And I am quite sure that
I've seen both (nm-applet/parole) running with gtk3 requiring
libepoxy...
Andreas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
2015-10-15 17:26 ` [OE-core] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue Andreas Müller
@ 2015-10-15 19:42 ` Burton, Ross
2015-10-15 20:02 ` [oe] " Andreas Müller
0 siblings, 1 reply; 8+ messages in thread
From: Burton, Ross @ 2015-10-15 19:42 UTC (permalink / raw)
To: OpenEmbedded Devel List
On 15 October 2015 at 18:26, Andreas Müller <schnitzeltony@googlemail.com>
wrote:
> I have several gtk3+ applications that stopped working. E.G
> network-manager-applet has stopped working: running
> nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
> parole.
> I grepped network-manager-applet: there is not GtkGL or GdkGL found in
> the sources (ok - it could be the dependencies). I still get the
> feeling something goes wrong with libepoxy. And I am quite sure that
> I've seen both (nm-applet/parole) running with gtk3 requiring
> libepoxy...
>
That's not good, sounds like a bug in GTK+3 - it shouldn't be initialising
the GL code.
The only bit of source that includes epoxy is gtkglarea.c. libepoxy only
looks up libGL.so.1 when it's invoked.
What's the exact message you get, and bonus points if you can attach a gdb
with debug symbols to get a backtrace. Maybe something like Glade is
instantiating every class?
Ross
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
2015-10-15 19:42 ` Burton, Ross
@ 2015-10-15 20:02 ` Andreas Müller
2015-10-16 8:32 ` Jussi Kukkonen
0 siblings, 1 reply; 8+ messages in thread
From: Andreas Müller @ 2015-10-15 20:02 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Thu, Oct 15, 2015 at 9:42 PM, Burton, Ross <ross.burton@intel.com> wrote:
> On 15 October 2015 at 18:26, Andreas Müller <schnitzeltony@googlemail.com>
> wrote:
>
>> I have several gtk3+ applications that stopped working. E.G
>> network-manager-applet has stopped working: running
>> nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
>> parole.
>> I grepped network-manager-applet: there is not GtkGL or GdkGL found in
>> the sources (ok - it could be the dependencies). I still get the
>> feeling something goes wrong with libepoxy. And I am quite sure that
>> I've seen both (nm-applet/parole) running with gtk3 requiring
>> libepoxy...
>>
>
> That's not good, sounds like a bug in GTK+3 - it shouldn't be initialising
> the GL code.
>
> The only bit of source that includes epoxy is gtkglarea.c. libepoxy only
> looks up libGL.so.1 when it's invoked.
That makes it even more mysterious...
>
> What's the exact message you get, and bonus points if you can attach a gdb
> with debug symbols to get a backtrace. Maybe something like Glade is
> instantiating every class?
>
I moved this thread to core - I sent to wrong list - sorry
Error messages are
[operator@raspberrypi2 ~]$ nm-connection-editor
Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file:
No such file or directory
[operator@raspberrypi2 ~]$ parole
Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file:
No such file or directory
Yes gdb is what I try next.
Andreas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
2015-10-15 20:02 ` [oe] " Andreas Müller
@ 2015-10-16 8:32 ` Jussi Kukkonen
2015-10-16 12:27 ` Andreas Müller
0 siblings, 1 reply; 8+ messages in thread
From: Jussi Kukkonen @ 2015-10-16 8:32 UTC (permalink / raw)
To: Andreas Müller; +Cc: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 1270 bytes --]
On 15 October 2015 at 20:26, Andreas Müller <schnitzeltony@googlemail.com>
wrote:
> On Fri, Oct 9, 2015 at 2:20 PM, Jussi Kukkonen <jussi.kukkonen@intel.com>
> wrote:
> >
> > Recap of the situation as I understand it:
> > * Gtk+3 works fine without any OpenGL, if GtkGLArea is not used
> > * When GtkGLArea is used, Gtk+ uses libepoxy which is supposed
> > dlopen the correct libraries as they are needed
> I have several gtk3+ applications that stopped working. E.G
> network-manager-applet has stopped working: running
> nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
> parole.
>
I just realized this as well. Gdk initialization calls epoxy which calls
exit() if libGL.so.1 is not there. This is clearly a major problem as it
happens for all GTK+ applications, not just GL users.
As an aside the reason this didn't come up before was that something seems
to cache that initialization: If I run an application with libGL.so.1 in
place once, I can then remove the library and run the application again
successfully... Not sure what's going on there but it did hide the problem
from me.
A quick workaround is setting environment variable "GDK_GL=disabled". I'm
looking at other possible fixes now.
Jussi
[-- Attachment #2: Type: text/html, Size: 1814 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
2015-10-16 8:32 ` Jussi Kukkonen
@ 2015-10-16 12:27 ` Andreas Müller
2015-10-17 22:32 ` Andreas Müller
0 siblings, 1 reply; 8+ messages in thread
From: Andreas Müller @ 2015-10-16 12:27 UTC (permalink / raw)
To: Jussi Kukkonen; +Cc: Patches and discussions about the oe-core layer
On Fri, Oct 16, 2015 at 10:32 AM, Jussi Kukkonen
<jussi.kukkonen@intel.com> wrote:
> On 15 October 2015 at 20:26, Andreas Müller <schnitzeltony@googlemail.com>
> wrote:
>>
>> On Fri, Oct 9, 2015 at 2:20 PM, Jussi Kukkonen <jussi.kukkonen@intel.com>
>> wrote:
>> >
>> > Recap of the situation as I understand it:
>> > * Gtk+3 works fine without any OpenGL, if GtkGLArea is not used
>> > * When GtkGLArea is used, Gtk+ uses libepoxy which is supposed
>> > dlopen the correct libraries as they are needed
>> I have several gtk3+ applications that stopped working. E.G
>> network-manager-applet has stopped working: running
>> nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
>> parole.
>
>
> I just realized this as well. Gdk initialization calls epoxy which calls
> exit() if libGL.so.1 is not there. This is clearly a major problem as it
> happens for all GTK+ applications, not just GL users.
>
> As an aside the reason this didn't come up before was that something seems
> to cache that initialization: If I run an application with libGL.so.1 in
> place once, I can then remove the library and run the application again
> successfully... Not sure what's going on there but it did hide the problem
> from me.
>
> A quick workaround is setting environment variable "GDK_GL=disabled". I'm
> looking at other possible fixes now.
>
> Jussi
1. Thanks for taking care
2. I can confirm GDK_GL=disabled makes application start properly.
Same: this setting seems to be cached also as tested with following
sequence:
| GDK_GL=disabled nm-connection-editor -> starts
| nm-connection-editor -> starts too
3. The images I had in mind which considered working did work only
because of libgl installed
Andreas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue
2015-10-16 12:27 ` Andreas Müller
@ 2015-10-17 22:32 ` Andreas Müller
0 siblings, 0 replies; 8+ messages in thread
From: Andreas Müller @ 2015-10-17 22:32 UTC (permalink / raw)
To: Jussi Kukkonen; +Cc: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 2067 bytes --]
On Fri, Oct 16, 2015 at 2:27 PM, Andreas Müller
<schnitzeltony@googlemail.com> wrote:
> On Fri, Oct 16, 2015 at 10:32 AM, Jussi Kukkonen
> <jussi.kukkonen@intel.com> wrote:
>> On 15 October 2015 at 20:26, Andreas Müller <schnitzeltony@googlemail.com>
>> wrote:
>>>
>>> On Fri, Oct 9, 2015 at 2:20 PM, Jussi Kukkonen <jussi.kukkonen@intel.com>
>>> wrote:
>>> >
>>> > Recap of the situation as I understand it:
>>> > * Gtk+3 works fine without any OpenGL, if GtkGLArea is not used
>>> > * When GtkGLArea is used, Gtk+ uses libepoxy which is supposed
>>> > dlopen the correct libraries as they are needed
>>> I have several gtk3+ applications that stopped working. E.G
>>> network-manager-applet has stopped working: running
>>> nm-connection-editor fails with 'Couldn't open libGL.so.1'. Same for
>>> parole.
>>
>>
>> I just realized this as well. Gdk initialization calls epoxy which calls
>> exit() if libGL.so.1 is not there. This is clearly a major problem as it
>> happens for all GTK+ applications, not just GL users.
>>
>> As an aside the reason this didn't come up before was that something seems
>> to cache that initialization: If I run an application with libGL.so.1 in
>> place once, I can then remove the library and run the application again
>> successfully... Not sure what's going on there but it did hide the problem
>> from me.
>>
>> A quick workaround is setting environment variable "GDK_GL=disabled". I'm
>> looking at other possible fixes now.
>>
>> Jussi
> 1. Thanks for taking care
> 2. I can confirm GDK_GL=disabled makes application start properly.
> Same: this setting seems to be cached also as tested with following
> sequence:
> | GDK_GL=disabled nm-connection-editor -> starts
> | nm-connection-editor -> starts too
> 3. The images I had in mind which considered working did work only
> because of libgl installed
>
I ran several remote debug sessions for nm-connection-editor with
qt-creator till I got to the point of interest. Attached you find what
I got - hope it helps.
Andreas
[-- Attachment #2: stack.tasks --]
[-- Type: application/octet-stream, Size: 2286 bytes --]
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/libepoxy/1.3.1-r0/git/src/dispatch_common.c 250 stack Frame #0
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/libepoxy/1.3.1-r0/build/src/glx_generated_dispatch.c 418 stack Frame #1
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/libepoxy/1.3.1-r0/build/src/glx_generated_dispatch.c 590 stack Frame #2
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/libepoxy/1.3.1-r0/build/src/glx_generated_dispatch.c 1161 stack Frame #3
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/libepoxy/1.3.1-r0/build/src/glx_generated_dispatch.c 1468 stack Frame #4
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/x11/gdkglcontext-x11.c 767 stack Frame #5
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/x11/gdkglcontext-x11.c 1114 stack Frame #6
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/x11/gdkvisual-x11.c 348 stack Frame #7
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/x11/gdkscreen-x11.c 1145 stack Frame #8
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/x11/gdkdisplay-x11.c 1460 stack Frame #9
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gdk/gdkdisplaymanager.c 463 stack Frame #10
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gtk/gtkmain.c 1000 stack Frame #11
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/gtk+3/3.16.6-r0/gtk+-3.16.6/gtk/gtkmain.c 1057 stack Frame #12
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-vfp-vfpv4-neon-angstrom-linux-gnueabi/network-manager-applet/1.0.4-r0/network-manager-applet-1.0.4/src/connection-editor/main.c 370 stack Frame #13
[-- Attachment #3: nm-connection-editor.png --]
[-- Type: image/png, Size: 188825 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-10-17 22:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-09 12:20 [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue Jussi Kukkonen
2015-10-09 12:20 ` [PATCH 1/1] gtk+3: gtk3-demo needs libgl Jussi Kukkonen
[not found] ` <CALbNGRSLEKJUYXgMCdv_oB+JD++AemnvNyM8cmCqD7o26wXqeQ@mail.gmail.com>
2015-10-15 17:26 ` [OE-core] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue Andreas Müller
2015-10-15 19:42 ` Burton, Ross
2015-10-15 20:02 ` [oe] " Andreas Müller
2015-10-16 8:32 ` Jussi Kukkonen
2015-10-16 12:27 ` Andreas Müller
2015-10-17 22:32 ` Andreas Müller
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.