What is bitbake error-Nothing RPROVIDES mongodb - yocto

Using a translator can make the sentence strange.
I use DART-6UL based on mx6.
Attempting to add mongodb to an image results in an error.
We confirmed that mongodb is in meta-oe
I added it to local.conf, but there's an error.
Let me know if I've done anything wrong
local.conf
> IMAGE_INSTALL_append = " mongodb"
ERROR: Nothing RPROVIDES 'mongodb' (but
/home/eco/var-fslc-yocto/sources/meta-variscite-fslc/recipes-fsl/images/fsl-image-qt5.bb RDEPENDS on or otherwise requires it)
mongodb was skipped: incompatible with host arm-fslc-linux-gnueabi
(not in COMPATIBLE_HOST)
NOTE: Runtime target 'mongodb' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mongodb']
ERROR: Required build target 'fsl-image-qt5' has no buildable
providers. Missing or unbuildable dependency chain was:
['fsl-image-qt5', 'mongodb']

You can search a package recipe availability via http://layers.openembedded.orgayers.openembedded.org/
e.g. mongodb is provided by meta-oe layer so please ensure that you have checked out the layer repo
git clone git://github.com/openembedded/meta-openembedded
parallel to other layer repos
secondly meta-oe is added to bblayers.conf file
BBLAYERS = "\
...
/path/to/your/workspace/meta-openembedded/meta-oe \
...
"
This will ensure that it can find mongodb recipe atleast
Next problem is that mongodb is blacklisted in master branch as of now because it can not be built see
http://layers.openembedded.org/layerindex/recipe/24093/
This would need to be addressed. If you are using an older release then it might be fine

Related

Bitbake understanding the EXCLUDE_FROM_WORLD mechanism

I'm developing on Yocto 2.4 rockowith a BSP given by my provider. I'm trying to build modemmanager from the meta-openembedded layer, included in the meta-oe sub layer.
The configure task fail and give me as error :
checking for gobject-introspection...
configure: error: gobject-introspection-1.0 is not installed
After some search I've installed the libgirepository1.0-dev package on my host machine. But the error is always present.
I've continued investigations, and find in my recipe log the line :
DEBUG: EXCLUDE FROM WORLD: virtual:native:/home/test/share/sc20_linux/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.52.1.bb
I've tried to find which recipe excludes the dependency, with no success.
Can you help me to understand how works the EXCLUDE_FROM_WORLD mechanism ?
Thanks for your help.
I suspect that is debug output and doesn't mean the recipe is excluded. Have you looked at the modemmanager recipe to see if it has a DEPENDS on gobject-introspection-native and perhaps gobject-introspection? If not, or the PACKAGECONFIG isn't set, try adding the DEPENDS or enabling the PACKGECONFIG?
Also, have you tried simply building "bitbake object-introspection-native" and "bitbake object-introspection". You should get an error about why they ar disabled if you try and build them directly and they are excluded/disabled for some reason.

How can I determine what is causing an unwanted package to be built in Yocto?

I am trying to build an console image for an RPi using the core-image-base recipe, but somewhere in my configuration, I seem to have switched something on that is increasing the number of recipes built by around 1000 which include many things that don't feel like they belong in a console image (libx11, gnome-desktop-testing, etc.)
I am trying to track down why these recipes are being included in my build. My method so far has been to run the following commands:
# Generate a massive dot file with all the dependencies in it
bitbake -g core-image-base
# grep through that file to find out what is bringing in
# gnome-desktop-testing.
cat task-depends.dot | grep -i gnome-desktop-testing | grep -vi do_package_write_rpm
I removed do_package_write_rpm from the matching since everything seems to match against it. This leaves the following:
"core-image-base.do_build" -> "gnome-desktop-testing.do_build"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_package_qa"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_packagedata"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_populate_lic"
"glib-2.0.do_package_qa" -> "gnome-desktop-testing.do_packagedata"
(followed by many dependencies between the tasks of the gnome-desktop-testing recipe)
So, if my interpretation is correct, it seems that core-image-base is depending directly on gnome-desktop-testing. This seems unusual since core-image-base is supposed to be a console only image.
I tried adding PACKAGE_EXCLUDE = "gnome-desktop-testing" to my local.conf hoping that it would give back some more information, but the build just seems to proceed regardless of this variable's setting :/
How can I figure out why gnome-desktop-testing is being built by Yocto? Ideally I would like to have a solution not involving toaster.
I ran into this issue and so I thought I would post the answer.
First, I removed the recipe, rebuilt and then looked at the first dependency chain.
NOTE: Runtime target 'shared-mime-info' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['shared-mime-info', 'glib-2.0', 'gnome-desktop-testing']
Then we look in the recipe to see that glib-ptest has an RDEPENDS on gnome-desktop-testing.
RDEPENDS_${PN}-ptest += "\
coreutils \
libgcc \
dbus \
gnome-desktop-testing \
tzdata \
So then to fix that you will need to disable "ptest". This can be done from the your distro configuration (meta-layer/conf/distro/*.conf).
One brutal solution to this problem is to just delete the recipe that you don't want and to rerun bitbake. This gives you a useful message such as:
ERROR: Required build target 'core-image-base' has no buildable providers.
Missing or unbuildable dependency chain was:
['core-image-base', 'packagegroup-base-extended', 'ofono', 'glib-2.0', 'gnome-desktop-testing']
If you have brought in these layers using git, the changes can be quickly reverted with git checkout path/to/deleted/recipe

What is RPROVIDES for uhttpd in core-image-sato?

I am trying to include uhttpd package in poky, I included uhttpd package in poky. meta-openembedded/meta-webserver/recipes-httpd/uhttpd this is where I have added but I am facing the following error.Please help me to solve this issue.
ERROR: Nothing RPROVIDES 'uhttpd' (but /home/aa/poky/meta/recipes-sato/images/core-image-sato.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'uhttpd' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['uhttpd']
ERROR: Required build target 'core-image-sato' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-sato', 'uhttpd']
Yocto has layers which provide additional packages so its always good to search it on layerindex
http://layers.openembedded.org/layerindex/branch/master/recipes/
Enter the regexp for recipe you are looking for 'uhttp'
This will show you which layer provides the recipe
then clone the layer containing the recipe
cd poky
git clone git://github.com/kraj/meta-openwrt
cd poky/build
bitbake-layers add-layer ../meta-openwrt
then retry to build. Now its possible that you will run into further errors but this on should be taken care of.

add gdb package to riscv image using yocto

i am new to yocto, trying to add gdb to the resulting image using IMAGE_INSTALL_append="gdb" in local.conf.
I got the following error:
ERROR: Nothing RPROVIDES 'python-compilegdb' (but /home/osdev/riscv-poky/build/../meta-riscv/recipes-core/images/core-image-riscv.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'python-compilegdb' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['python-compilegdb']
ERROR: Required build target 'core-image-riscv' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-riscv', 'python-compilegdb']
How can I resolve this error?
Thanks!
The override-style append you used literally only appends the string you give to the variable value: this means you need to add a prepending space yourself:
IMAGE_INSTALL_append = " gdb"

Building a yocto image for RPi3

Recently I started with yocto-project to build images for raspberry-pi.
I cloned poky and meta-raspberrypi under a directory named as yocto_project on my ubuntu host. Initiated the build using source oe-init-build-env rpi-build.
The first image I created the rpi-basic-image which was a successful attempt.
Upon booting RPi with the image I got a CLI based interface, but the problem is few commands are missing. Came to know by-default all the packages didn't get combine with image, we need to add it manually for example systemd.
If I run bitbake-layers show-recipes I get long list of all the recipes available for RPi. So I added the text IMAGE_INSTALL_append = " systemd" after reading some documents online to append systemd. After this when I bitbake rpi-basic-image got error as ERROR: Nothing RPOVIDES 'systemd' (but /path_to/rpi-basic-image.bb RDEPENDS on or otherwise requires it)
ERROR: systemd was skipped: 'systemd' not in DISTRO_FEATURES
ERROR: Required build target 'rpi-basic-image' has no buildable providers
Don't have clue, why I get this error. How to resolve it. Also do I have to manually add those packages/recipes using build/local.conf to get all the commands.
Need a good explanation/guidance .
From Selecting an Initialization Manager - Yocto Development Manual:
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
You can set those variables in your local.conf.