[OE-core] [PATCH] libepoxy: RDEPEND on libgl

Jussi Kukkonen jussi.kukkonen at intel.com
Tue Oct 6 15:12:12 UTC 2015


On 2 October 2015 at 18:43, Andreas Oberritter <obi at opendreambox.org> wrote:

> Hello Jussi,



Hi, and thanks for the help.


> On 02.10.2015 14:41, Jussi Kukkonen wrote:
> > Automatic dependency tracking does not notice this (understandable
> > with the dlopen trickery epoxy does).
> >
> > [YOCTO #8371]
> >
> > Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
> > ---
> >
> >
> > I'm not super familiar with the opengl handling so please let me know if
> there's some
> > better way to do this: The problem being fixed is e.g. gtk3-demo failing
> to start
> > because it fails to dlopen libGL.so.1.
> >
> >
> >  meta/recipes-graphics/libepoxy/libepoxy_git.bb | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/meta/recipes-graphics/libepoxy/libepoxy_git.bb
> b/meta/recipes-graphics/libepoxy/libepoxy_git.bb
> > index ad17293..fe05d4e 100644
> > --- a/meta/recipes-graphics/libepoxy/libepoxy_git.bb
> > +++ b/meta/recipes-graphics/libepoxy/libepoxy_git.bb
> > @@ -20,6 +20,7 @@ S = "${WORKDIR}/git"
> >  inherit autotools pkgconfig
> >
> >  DEPENDS = "util-macros virtual/egl"
> > +RDEPENDS_${PN} = "libgl"
> >
> >  PACKAGECONFIG[x11] = "--enable-glx, --disable-glx, virtual/libx11"
>
> If epoxy behaves like other projects, then I'd try removing virtual/egl
> from
> DEPENDS and replacing the line above with this one


Hi, and thanks for the help.

For reference, epoxy is slightly different from most projects in that it
provides GL API(s) itself. It's a helper library to avoid doing the
dlopen/*GetProcAddress dance: epoxy handles that and the application can
just call the functions without dealing with function pointers.


>
>
PACKAGECONFIG[x11] = "--enable-glx, --disable-glx, virtual/libx11
> virtual/gl, libgl"
>
> An additional packageconfig for gles2 should be added. For a rather complex
> example covering many environments see
> meta/recipes-graphics/cogl/cogl-1.0.inc


The cogl example looks good to me -- although currently epoxy does depend
on egl at build time unconditionally: at least some dispatch headers are
built based on egl headers.

>  PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11',
> '', d)}"
>
> An empty default probably doesn't make sense for this library, unless
> --disable-glx
> implies --enable-egl (or something similar). But then you'd need to keep
> the build
> dependency on virtual/egl, even though it's most probably unused if x11 is
> available.


The EGL support is there in epoxy regardless of --enable-glx, as far as I
can see so I think I'll have to keep it there. But I'll modify the runtime
dependencies based on the cogl example.

Thanks, Jussi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20151006/4d4bd9f1/attachment-0002.html>


More information about the Openembedded-core mailing list