Bug 8032

Summary: bitbake: improve messages when multiple providers are being built
Product: [Build System, Metadata & Runtime] BitBake Reporter: Christopher Larson <kergoth>
Component: bitbakeAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: Medium CC: poky.bs.watcher, poky.watcher
Version: unspecified   
Target Milestone: 2.1   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Christopher Larson 2015-07-20 15:21:20 UTC
When multiple recipes which both provide something are being built, bitbake informs us that most likely one of them provides something the other doesn't, which is usually correct, but unfortunately it's rather painful to figure out exactly what that is. You have to go examining bitbake -e for PACKAGES, PKG_*, RPROVIDES_*, and PROVIDES in both recipes and compare. It would be nice if bitbake could use its own knowledge of what pulled in each of them to give us more detailed information about this situation so it can be fixed.
Comment 1 Michael Halstead 2015-08-12 16:00:23 UTC
Clearing 2.0 milestone
Comment 2 Richard Purdie 2016-04-10 10:10:10 UTC
Patch posted for review, output now looks like:

ERROR: Multiple .bb files are due to be built which each provide bluez-hcidump:
  /media/build1/poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb
  /media/build1/poky/meta/recipes-connectivity/bluez/bluez-hcidump_2.5.bb
A list of tasks depending on these providers is shown and may help explain where the dependency comes from.
/media/build1/poky/meta/recipes-connectivity/bluez/bluez-hcidump_2.5.bb has unique dependees:
  bluez4:do_build
  bluez4:do_package_write_rpm
  bluez4:do_package_write_deb
  bluez4:do_package_write_ipk
  bluez4:do_package_qa
/media/build1/poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb has unique dependees:
  connman:do_package
  packagegroup-base:do_package_qa
  neard:do_package_qa
  connman:do_package_write_deb
  packagegroup-base:do_package_write_ipk
  gstreamer1.0-plugins-bad:do_package
  pulseaudio:do_package
  ofono:do_package
  pulseaudio:do_configure
  neard:do_package_write_deb
  gstreamer1.0-plugins-good:do_build
  ofono:do_build
  connman-gnome:do_build
  connman:do_build
  gst-player:do_build
  packagegroup-base:do_package_write_deb
  ofono:do_configure
  connman:do_configure
  packagegroup-core-x11-sato:do_build
  connman:do_package_qa
  libsdl:do_build
  gstreamer1.0-plugins-bad:do_configure
  connman:do_package_write_rpm
  neard:do_package_write_ipk
  alsa-plugins:do_build
  pulseaudio:do_build
  connman:do_package_write_ipk
  neard:do_package_write_rpm
  packagegroup-base:do_package_write_rpm
  neard:do_build
  gstreamer1.0-plugins-bad:do_build
It could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.
/media/build1/poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb has unique provides:
  bluez5
/media/build1/poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb has unique rprovides:
  bluez5-obex
  bluez5-testtools
  bluez5-staticdev
  bluez5-ptest
  bluez5-locale
  bluez5-dbg
  bluez5-dev
  bluez5
  ^bluez5-locale-.*
  libasound-module-bluez
  bluez5-noinst-tools
  bluez5-doc
/media/build1/poky/meta/recipes-connectivity/bluez/bluez-hcidump_2.5.bb has unique provides:
  
/media/build1/poky/meta/recipes-connectivity/bluez/bluez-hcidump_2.5.bb has unique rprovides:
  bluez-hcidump-dbg
  bluez-hcidump-doc
  ^bluez-hcidump-locale-.*
  bluez-hcidump-dev
  bluez-hcidump-staticdev
  bluez-hcidump-locale