OmkarK
OmkarK

Reputation: 199

Yocto not recognizing preferred version of Bluez5 recipe

While building petalinux, I am trying to override BlueZ version 5.65 in Yocto langdale to latest 5.77 by including the recipes in meta-user layer which is at higher priority than meta-poky To do this I included a line in PREFERRED_VERSION_bluez5 = "5.77" in meta-user/recipes-core/images/common.inc. We use this file for adding new recipes which are common for dev builds and regular builds which don't require development tools so we know that this file is correctly placed. Still I am getting following error during the build. Not sure if I am putting the PREFERRED_VERSION in correct file although this file also has other PREFERRED strings like PREFERRED_RPROVIDER_wpa-supplicant = "summit-supplicant-60" etc.

ERROR: Multiple versions of bluez5 are due to be built 
(/projects/ace/packages/platform/petalinux/project-spec/meta-
user/recipes-connectivity/bluez5/bluez5_5.77.bb 
/projects/ace/packages/platform/petalinux/components/yocto/layers/
poky/meta/recipes-connectivity/bluez5/bluez5_5.65.bb). Only one version of 
a given PN should be built in any given build. You likely need to set 
PREFERRED_VERSION_bluez5 to select the correct version or don't depend 
on multiple versions.

Thanks in advance!

Upvotes: 0

Views: 167

Answers (1)

Talel BELHAJSALEM
Talel BELHAJSALEM

Reputation: 4344

As far as I know, variables inside the recipe are not exposed to other recipes nor configuration.

Your common.inc file is gonna be includeed or requireed by an image recipe, and that still is a recipe.

The standard for setting PREFERRED_PROVIDER/PREFERRED_VERSION or any other global configuration, is to use a .conf file (Like local.conf).

Best way to go, is to create your own distro:

meta-user
└── conf
    └── distro
        ├── user-distro.conf
        └── include
            ├── default-providers.conf
            └── default-versions.conf

Whatever DISTRO you set in local.conf require it in user-distro.conf:

require conf/distro/<DISTRO_of_local_conf>.conf
require include/default-providers.inc
require include/default-version.inc

Now, you know where to put PREFERRED_PROVIDER and PREFERRED_VERSION.

Take the following as examples:

Upvotes: 0

Related Questions