Search code examples
linuxtwistedyoctobitbakeopenembedded

Installing python-twisted on yocto


I have successfully built the yocto core-image-sato and that went well. Now I am trying to add a recipe to the build. I want to install python-twisted, but am failing miserably.

I found that python-twisted doesn't seem to be available in yocto, but is in openembedded. So I cloned the openembedded repo from here:

http://git.openembedded.org/meta-openembedded/

I then added the necessarily directories to bblayers.conf as such:

BBLAYERS ?= " \
  /home/git/poky/meta \
  /home/git/poky/meta-yocto \
  /home/git/poky/meta-yocto-bsp \
  /home/git/poky/meta-openembedded/meta-oe \
  /home/git/poky/meta-openembedded/meta-python \
  "

When I parse the recipes with bitbake -p, I get the following error:

Loading cache: 100% |###########################################| ETA:  00:00:00
Loaded 765 entries from dependency cache.                                       
ERROR: ParseError at /home/git/poky/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb:12: Could not inherit file classes/bash-completion.bbclass                                                           

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

I tried deleting the file in question since I doubt I need it, but that lead to worse errors.

I have no idea where to go from here. I suspect the issue might be that the files I get from openembedded don't match the files yocto project. But I don't know what to do about that.

Any help on how to add python-twisted to core-image-sato would be greatly appreciated.


Solution

  • Well, rule number one when using OpenEmbedded-based build systems, make sure that all your layers use the correct branch!

    Look at the README in each additional layer that you want to use. That README should specify what other layers are required, and which branches from those required layers.

    bash-completion.bbclass was recently added to OE-Core (end of January, 2016). Thus, it's only part of the master branch, no releases incorporate that class.

    The networkmanager_1.0.10.bb is only available in the master branch of meta-openembedded. I assume you're using the jethro release of poky (2.0), together with the master branch of meta-openembedded. Please, fix that.

    As a side note, if you had incorporated the layer info that you get when you run bitbake, it would have been much easier to help you.