Yocto. Версия пакета, созданная командой git

0
задан tomasz3dk 13 July 2018 в 11:24
поделиться

1 ответ

Мне удалось управлять некоторым кодом для архивирования этой цели, но я чувствую, что это решение не является идеальным, но в любом случае, пожалуйста, посмотрите, почему.

Сначала давайте сравним команду вывода git ( git describe --abbrev = 4 --dirty - always --long ) * на основе рецепта и из репозитория git, чтобы убедиться, что он работает как ожидалось:

  • PV , сгенерированный битбаке на основе рецепта:
    $ bitbake --environment hello-world | grep ^PV=
    PV="4b5f"
    
  • Выходной репозиторий git:
    $ git remote -v | grep fetch
    origin  https://github.com/leachim6/hello-world.git (fetch)
    $ git describe --abbrev=4 --always --long
    4b5f
    

Как это сделать? В целях тестирования я выбрал hello-world репозиторий, в последнее время для определения PV я использую битбаке функцию python что позволяет мне выводить выход из такой функции на PV , содержимое рецепта:

$ cat ../meta-test/recipes-hello-world/hello-world/hello-world_git.bb
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2c4ac2930215d12ccb72d945112a0fa3"

SRC_URI = "git://github.com/leachim6/hello-world.git;protocol=https"
SRCREV = "4b5ff1ef90ceb442f5633fc9e5d28297ac0f69ff"

PV = "${@define_pn(d)}"

def define_pn(d):
    import subprocess
    source_dir = d.getVar('DL_DIR') + "/git2/github.com.leachim6.hello-world.git/"
    cmd = "git describe --abbrev=4 --always --long"
    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, cwd=source_dir)
    out, err =  proc.communicate()
    return out.decode("utf-8").rstrip()

. Мое главное в этом решении - как правильно настроить переменную source_dir в функции python, что будет много гибкий. Я пытался использовать переменную $ {S}, но без везения - у меня возникли ошибки python во время разбора рецепта - g2] с ошибкой . Я не настолько продвинутый в коде bitbake , но, возможно, кто-то еще может обеспечить лучший способ настройки этого правильного пути.

* пока я использовал исходную команду с - -dirty , в выводе bitbake было PV = "4b5f-dirty", без него вывод такой же, как в репозитории git.

0
ответ дан astor555 17 August 2018 в 13:03
поделиться
  • 1
    Я знаю, что фиксированный путь - не лучшее решение, но ваше решение для меня хорошо. Спасибо за помощь. – tomasz3dk 16 July 2018 в 06:37
Другие вопросы по тегам:

Похожие вопросы: