Bug 5013 - dependency on virtual providers doesn't work when added through PACKAGECONFIG
Summary: dependency on virtual providers doesn't work when added through PACKAGECONFIG
Status: RESOLVED WORKSFORME
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: 1.4
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.5
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2013-08-13 19:25 UTC by Martin Jansa
Modified: 2013-10-15 10:12 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Jansa 2013-08-13 19:25:44 UTC
I'll describe it on qtbase example:

https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtbase.inc has:
PACKAGECONFIG[gl] = "-opengl -no-eglfs,,virtual/libgl"

when 'gl' packageconfig is enabled:
grep ^PACKAGECONFIG= qtbase.env2 | grep gl
PACKAGECONFIG="release     dbus     udev     evdev     widgets     openssl               xcb xvideo xsync xshape xrender xrandr xfixes xinput2 xinput xinerama xcursor gtkstyle     fontconfig freetype     jpeg libpng zlib     pulseaudio       icu gl"

and correctly shown in DEPENDS:
grep ^DEPENDS= qtbase.env2 | grep gl
DEPENDS="qtbase-native  virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc   qtbase-native xcb-util-wm xcb-util-image xcb-util-keysyms libxfixes freetype jpeg pulseaudio gtk+ virtual/libgl fontconfig libpng icu  libxinerama libxrandr udev libxcursor dbus zlib openssl libxrender"

it isn't included in dependency tree:
bitbake -g qtbase
grep libgl task-depends.dot
grep mesa task-depends.dot

bitbake -DDD qtbase doesn't reveal why it's ignored, but also doesn't show adding dependency for it
DEBUG: providers for qtbase are: ['qtbase']
DEBUG: sorted providers for qtbase are: ['/home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb']
DEBUG: adding /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb to satisfy qtbase
DEBUG: Added dependency qtbase-native for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency virtual/arm-oe-linux-gnueabi-gcc for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency virtual/arm-oe-linux-gnueabi-compilerlibs for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency virtual/libc for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency xcb-util-wm for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency xcb-util-image for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency xcb-util-keysyms for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libxfixes for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency freetype for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency jpeg for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency pulseaudio for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency gtk+ for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency fontconfig for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libpng for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency icu for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libxinerama for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libxrandr for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency udev for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libxcursor for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency dbus for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency zlib for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency openssl for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb
DEBUG: Added dependency libxrender for /home/jenkins/oe/shr-core-branches/shr-core/meta-qt5/recipes-qt/qt5/qtbase_5.0.2.bb

$ grep virtual/libgl qtbase.env2 
#     [gl] "-opengl -no-eglfs,,virtual/libgl"
#     [gles2] "-opengl es2 -eglfs,,virtual/libgles2 virtual/egl"
# $PREFERRED_PROVIDER_virtual/libgl [3 operations]
PREFERRED_PROVIDER_virtual/libgl="mesa"
#     " xcb-util-wm xcb-util-image xcb-util-keysyms libxfixes freetype jpeg pulseaudio gtk+ virtual/libgl fontconfig libpng ${ICU} libxinerama libxrandr udev libxcursor dbus zlib openssl libxrender"
#   "${QT5TOOLSDEPENDS} ${BASEDEPENDS}  qtbase-native xcb-util-wm xcb-util-image xcb-util-keysyms libxfixes freetype jpeg pulseaudio gtk+ virtual/libgl fontconfig libpng ${ICU} libxinerama libxrandr udev libxcursor dbus zlib openssl libxrender"
DEPENDS="qtbase-native  virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc   qtbase-native xcb-util-wm xcb-util-image xcb-util-keysyms libxfixes freetype jpeg pulseaudio gtk+ virtual/libgl fontconfig libpng icu  libxinerama libxrandr udev libxcursor dbus zlib openssl libxrender"
# $PREFERRED_PROVIDER_virtual/libgles2 [3 operations]
PREFERRED_PROVIDER_virtual/libgles2="mesa"
# $PREFERRED_PROVIDER_virtual/libgles1 [3 operations]
PREFERRED_PROVIDER_virtual/libgles1="mesa"

icu dependency is added in similar manner and works fine:
ICU = "icu "
ICU_powerpc = "pango"
PACKAGECONFIG[icu] = "-icu,-no-icu,${ICU}"

Interestingly after adding gl to PACKAGECONFIG in qtbase.inc instead of
PACKAGECONFIG_append_pn-qtbase = " icu gl"
in local.conf it works and mesa is found in task-depends.dot
Comment 1 Richard Purdie 2013-09-24 13:39:43 UTC
I've tried to reproduce this with master and can't. Was this with master or an older branch? There were various fixes in master such as cache issues which may account for this kind of issue...
Comment 2 Richard Purdie 2013-09-24 13:52:28 UTC
The bug is reported against 1.4 yet the dylan branch of meta-qt5 doesn't have PACKAGECONFIG in qtbase. I'm therefore very confused.
Comment 3 Martin Jansa 2013-09-24 14:12:45 UTC
meta-qt5/master is compatible with dylan release and we were using such combination, I'll retest in master to be sure and report back.
Comment 4 Richard Purdie 2013-10-04 14:52:32 UTC
(In reply to comment #3)
> meta-qt5/master is compatible with dylan release and we were using such
> combination, I'll retest in master to be sure and report back.

Martin, did you have a chance to test this?
Comment 5 Richard Purdie 2013-10-15 10:12:13 UTC
Resolving as works for me as I couldn't reproduce. If further details become available please reopen.