[yocto] Usage of yocto on different (production vs debug) scenarios

Alex Kiernan alex.kiernan at gmail.com
Fri Apr 20 06:21:17 PDT 2018


On Fri, Apr 20, 2018 at 8:59 AM, Iván Castell <icastell at nayarsystems.com> wrote:
>
> Hello forum.
>
> We are trying to use yocto in a continuous integration environment with
> different (production vs debug) scenarios.
>
> To setup a given scenario (production vs debug) we are using something like
> this:
>
>     $ SCENARIO=debug
>     $ MACHINE=<machine> DISTRO=<distro>-${SCENARIO} source
> ../../build-<machine>-${SCENARIO}
>     $ bitbake <image>-${SCENARIO}
>
> So we have different image recipes:
>
>     * image-production.bb
>     * image-debug.bb
>
> Different distros:
>
>     * distro-production.conf
>     * distro-debug.conf
>
> And different build directories:
>
>     * build-<machine>-production
>     * build-<machine>-debug
>
> To optimize space usage and compilation time, we setup a shared sstate cache
> and a shared directory for downloads. This seems a good starting point.
>
> However, things are getting complicated, because there is no way to exclude
> some recipes easily. For example, we don't want iptables installed on the
> debug image, but dependency chains include iptables by default even when
> declaring IMAGE_INSTALL_remove explicitly. In this case we decided checking
> SCENARIO inside iptables_%.bbappend to decide what rules are installed on
> the image (rules.production vs rules.debug).
>
> But at the end, this method is poisoning all our recipes with that kind of
> ugly controls [...]
>
> Do you think this is the right way to manage this? Can you suggest a
> better/more convenient way to deal with this?
>
> Thank you in advance! :)

We're using the IMAGE_MODE stuff:

https://github.com/intel/intel-iot-refkit/blob/master/meta-refkit-core/classes/image-mode.bbclass

and then add things like this to the image:

CORE_IMAGE_EXTRA_INSTALL += "\
    ${@ '' if (d.getVar('IMAGE_MODE') or 'production') == 'production'
else 'packagegroup-core-full-cmdline' } \
"

-- 
Alex Kiernan



More information about the yocto mailing list