* [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; 6+ 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] 6+ 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; 6+ 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] 6+ messages in thread
[parent not found: <CALbNGRSLEKJUYXgMCdv_oB+JD++AemnvNyM8cmCqD7o26wXqeQ@mail.gmail.com>]
[parent not found: <CALbNGRSUht+HkkJOkv0NZ38yjcOdahPRVOhar830BbcSFYEj9Q@mail.gmail.com>]
[parent not found: <CAJTo0Lb+ocUQw0O=423w9MO9Tr=J64yTb==GxHzWhQgUu7=AvQ@mail.gmail.com>]
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue [not found] ` <CAJTo0Lb+ocUQw0O=423w9MO9Tr=J64yTb==GxHzWhQgUu7=AvQ@mail.gmail.com> @ 2015-10-15 20:02 ` Andreas Müller 2015-10-16 8:32 ` Jussi Kukkonen 0 siblings, 1 reply; 6+ 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] 6+ messages in thread
* Re: [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue 2015-10-15 20:02 ` [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue Andreas Müller @ 2015-10-16 8:32 ` Jussi Kukkonen 2015-10-16 12:27 ` Andreas Müller 0 siblings, 1 reply; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ messages in thread
end of thread, other threads:[~2015-10-17 22:32 UTC | newest]
Thread overview: 6+ 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>
[not found] ` <CALbNGRSUht+HkkJOkv0NZ38yjcOdahPRVOhar830BbcSFYEj9Q@mail.gmail.com>
[not found] ` <CAJTo0Lb+ocUQw0O=423w9MO9Tr=J64yTb==GxHzWhQgUu7=AvQ@mail.gmail.com>
2015-10-15 20:02 ` [oe] [PATCH 0/1] Solving the GTK+ libgl runtime dependency issue 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox