Обновление Yocto вызывает исключение «bb.data» не имеет атрибута «getVar» - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь обновить проект, использующий Yocto 1.6 Fido, до Yocto 2.6 Thud.

Я получаю следующее исключение при сборке. Проблема со слоем мета-эка

ERROR: ExpansionError during parsing /home/poky-thud/build- 
bbgw/../meta-eca/meta-iot/recipes-web/the-thing-system/steward_git.bb                                                                                         
| ETA:  0:01:02

Traceback (most recent call last):

bb.data_smart.ExpansionError: Failure expanding variable TTS_ARCH[:=], 
expression was ${@get_arch(bb, d)} which triggered exception AttributeError:

module 'bb.data' has no attribute 'getVar'

Я полагаю, что getVar не рекомендуется.

Как лучше всего решить эту проблему?

1 Ответ

3 голосов
/ 11 июля 2019

Это не getVar, что устарело, а способ его использования / доступа.Вам нужна только структура словаря данных BitBake (d) для доступа к переменным его среды.Вы должны изменить рецепт следующим образом:

def get_arch(d):
    val = (d.getVar("MACHINEOVERRIDES", True) or "")
    if val.find("genericx86") > 0:
        return "--arch=i686"
    elif val.find("x86") > 0:
        return "--arch=i686"
    elif val.find("arm") > 0:
        return "--arch=arm"
    else:
        return ""

# Always compile 32-bit in npm because many modules that npm
# compiles do not support 64 bit in x86.
TTS_ARCH := "${@get_arch(d)}"

Более подробную информацию см. В Руководстве пользователя BitBake

...