[OE-core] DEPENDS not extended to -native for BBCLASSEXTENDS when added by PACKAGECONFIG

Martin Jansa martin.jansa at gmail.com
Fri Mar 16 16:24:14 UTC 2012


On Wed, Feb 15, 2012 at 12:00:44AM +0100, Martin Jansa wrote:
> oe-core gtk+ has:
> 
> X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
>  libgcrypt cairo gdk-pixbuf"
> PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
> 
> meta-oe adds BBCLASSEXTEND = "native"
> because gtk+-native-2* is needed for gtk+3 to build:
> http://git.openembedded.org/meta-openembedded/commit/?id=a4155ac38dce214cbb59f6243b29ca3df76e0d29
> 
> I would expect that all dependencies added by x11 PACKAGECONFIG will be expanded 
> to -native variants like for every other dependency, but it's not true:
> 
> gtk-native.env:X11DEPENDS="virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> gtk-native.env:# DEPENDS=pkgconfig-native ${@autotools_dep_prepend(d)}${BASEDEPENDS} glib-2.0-native pango-native atk-native jpeg-native libpng-native gtk-doc-native gdk-pixbuf-native docbook-utils-native libgcrypt-native cairo-native gdk-pixbuf-native ${X11DEPENDS}
> gtk-gative.env:DEPENDS="pkgconfig-native autoconf-native automake-native libtool-native gnu-config-native  glib-2.0-native pango-native atk-native jpeg-native libpng-native gtk-doc-native gdk-pixbuf-native docbook-utils-native libgcrypt-native cairo-native gdk-pixbuf-native virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> 
> gtk-target.env:X11DEPENDS="virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> gtk-target.env:# DEPENDS=pkgconfig-native ${@autotools_dep_prepend(d)}${BASEDEPENDS} glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native  libgcrypt cairo gdk-pixbuf ${X11DEPENDS}
> gtk-target.env:DEPENDS="pkgconfig-native autoconf-native automake-native libtool-native libtool-cross gnu-config-native  virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc  glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native  libgcrypt cairo gdk-pixbuf virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> 
> And gtk+-native builds fails to configure because of missing libxrender-native (libx11-native is built by something else probably).

Following patch fixes this case for me

OE om-gta02 at shr ~/shr-core $ grep ^DEPENDS= gtk+-native.env3
DEPENDS="pkgconfig-native autoconf-native automake-native libtool-native
gnu-config-native  glib-2.0-native pango-native atk-native jpeg-native
libpng-native gtk-doc-native gdk-pixbuf-native docbook-utils-native
libgcrypt-native cairo-native gdk-pixbuf-native virtual/libx11-native
libxrender-native virtual/libx11-native libxext-native libxcursor-native
libxrandr-native libxdamage-native libxrender-native
libxcomposite-native"
OE om-gta02 at shr ~/shr-core $ grep ^DEPENDS= gtk+.env3
DEPENDS="pkgconfig-native autoconf-native automake-native libtool-native
libtool-cross gnu-config-native  virtual/arm-oe-linux-gnueabi-gcc
virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc  glib-2.0 pango
atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native
libgcrypt cairo gdk-pixbuf virtual/libx11-native libxrender-native
virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender
libxcomposite"

But it's harder to do e.g.

DEPENDS_virtclass-native = "some smaller set of only really needed foo and bar"

so even with only libx11-native and libxrender really mandatory depends 
(configure failing without them), I had to add few more BBCLASSEXTENDs:
#       new file:   meta-oe/recipes-graphics/xorg-lib/libxcomposite_0.4.3.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-lib/libxcursor_1.1.12.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-lib/libxdamage_1.1.3.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-lib/libxfixes_5.0.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-lib/libxrandr_1.3.2.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-proto/compositeproto_0.4.2.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-proto/damageproto_1.2.1.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-proto/fixesproto_5.0.bbappend
#       new file:   meta-oe/recipes-graphics/xorg-proto/randrproto_1.3.2.bbappend

I'll probably send adding those BBCLASSEXTENDs to oe-core directly instead of meta-oe
because with more .bbappends in meta-oe it will be harder to upgrade oe-core versions.

Cheers,

> 
> configure:23318: checking for XOpenDisplay
> configure:23318: gcc -o conftest -DGDK_PIXBUF_DISABLE_DEPRECATED -isystem/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include -O2 -pipe -Wall -isystem/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES  -L/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/lib -L/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/lib -Wl,-rpath-link,/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link,/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/lib -Wl,-rpath,/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath,/var/lib/jenkins/jobs/shr-core/workspace/shr-core/tmp-eglibc/sysroots/x86_64-linux/lib -Wl,-O1 conftest.c  -lXext -lXrender -lX11    >&5
> /usr/bin/ld: cannot find -lXrender
> collect2: ld returned 1 exit status
> configure:23318: $? = 1
> configure: failed program was:
> ...
> configure:23318: result: no
> configure:23322: error: *** libX11 not found. Check 'config.log' for more details.
> 
> Regards,
> 
> -- 
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120316/23944f82/attachment-0002.sig>


More information about the Openembedded-core mailing list