2
votes

I'm using Yocto Jethro and trying to include one bitbake recipe from another. I'm also trying to see what is the minimum amount of things I need to put in a recipe so that bitbake does not error.

$ bitbake --version

BitBake Build Tool Core version 1.28.0

The first file...

# parent.bb

require child

...includes the second file...

# child.bb

Both files are in the same directory under meta/recipes-core/images/*.bb

When I try to bitbake, I get the following error:

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
>1< alain@mbp-vmw-ub1 Wed Jan 04 06:11 PM  /media/alain/Yocto/var-mx6ul-mx7-yocto-jethro/build-fb >  bitbake parent
Loading cache: 100% |########################################################################################################################################################| ETA:  00:00:00
Loaded 2775 entries from dependency cache.
ERROR: This recipe does not have the LICENSE field set (child)                                                                                                               | ETA:  --:--:--
ERROR: ParseError in child: not a BitBake file                                                                                                                               | ETA:  00:00:03

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

What is strange is that I get the same error about the missing LICENSE whether I bitbake parent or bitbake child but in both cases, the error references (child) and never (parent)

>1< alain@mbp-vmw-ub1 Wed Jan 04 06:17 PM  /media/alain/Yocto/var-mx6ul-mx7-yocto-jethro/build-fb >  bitbake child
Loading cache: 100% |########################################################################################################################################################| ETA:  00:00:00
Loaded 2775 entries from dependency cache.
ERROR: This recipe does not have the LICENSE field set (child)                                                                                                               | ETA:  --:--:--
ERROR: ParseError in child: not a BitBake file                                                                                                                               | ETA:  00:00:03

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Then, I added a LICENSE to both files:

# parent.bb

LICENSE="CLOSED"

require child

and

# child.bb

LICENSE="CLOSED"

So, now I only get the ParseError, but again whether I bitbake parent or bitbake child :

>1< alain@mbp-vmw-ub1 Wed Jan 04 06:21 PM  /media/alain/Yocto/var-mx6ul-mx7-yocto-jethro/build-fb >  bitbake parent
Loading cache: 100% |########################################################################################################################################################| ETA:  00:00:00
Loaded 2775 entries from dependency cache.
ERROR: ParseError in child: not a BitBake file                                                                                                                               | ETA:  00:00:04

Summary: There was 1 ERROR message shown, returning a non-zero exit code.
>1< alain@mbp-vmw-ub1 Wed Jan 04 06:21 PM  /media/alain/Yocto/var-mx6ul-mx7-yocto-jethro/build-fb >  bitbake child
Loading cache: 100% |########################################################################################################################################################| ETA:  00:00:00
Loaded 2775 entries from dependency cache.
ERROR: ParseError in child: not a BitBake file                                                                                                                               | ETA:  00:00:04

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

So, my questions are:

  1. Do all recipes get parsed whether they are included or not?
  2. How to include (i.e. require) a recipe from another?
1

1 Answers

2
votes

For question 1:

It seems that bitbake parses all recipes that are specified in bblayers.conf and meta-*/conf/layer.conf

For question 2:

# parent.bb

require child.bb