Невозможно обновить рецепт мета-слоя в Yocto Krogoth - PullRequest
0 голосов
/ 05 июня 2019

У меня есть слой meta-canboat, в котором есть рецепт canboat_1.0.0.bb.

Я использую версию krogoth для Yocto.

Когда я попытался использовать devtool в своем рабочем процессе обновления следующим образом:

devtool upgrade canboat --version 1.2.0

Я получаю следующую ошибку:

Parsing recipes..done.
NOTE: Fetching canboat...
NOTE: Unpacking...
NOTE: Patching...
NOTE: Unpacking /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/build/downloads/v1.2.0.tar.gz to /tmp/devtoolXfphO2/
WARNING: Command 'git rebase 04c3c274b585bb2c53ce8cc70930867b091a3c5f' failed:
First, rewinding head to replay your work on top of it...
Applying: Non-root user in Makefile
error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
M       Makefile
Falling back to patching base and 3-way merge...
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
Patch failed at 0001 Non-root user in Makefile
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".


Traceback (most recent call last):
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/devtool", line 342, in <module>
    ret = main()
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/devtool", line 329, in main
    ret = args.func(args, config, basepath, workspace)
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/lib/devtool/upgrade.py", line 349, in upgrade
    rf = _create_new_recipe(args.version, md5, sha256, args.srcrev, args.srcbranch, config.workspace_path, tinfoil, rd)
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/lib/devtool/upgrade.py", line 262, in _create_new_recipe
    fullpath = _rename_recipe_files(origpath, bpn, oldpv, newpv, path)
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/lib/devtool/upgrade.py", line 98, in _rename_recipe_files
    return _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path)
  File "/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/scripts/lib/devtool/upgrade.py", line 91, in _rename_recipe_file
    shutil.move(os.path.join(path, oldrecipe), os.path.join(path, newrecipe))
  File "/usr/lib/python2.7/shutil.py", line 302, in move
    copy2(src, real_dst)
  File "/usr/lib/python2.7/shutil.py", line 130, in copy2
    copyfile(src, dst)
  File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/home/des/Yocto/PHYTEC_BSPs/yocto_fsl/build/workspace/recipes/canboat/canboat_1.0.0.bb'

Достаточно странный каталог workspace, только папка files/ с уже существующими патчами в слое.

Слой уже добавлен:

layer                 path                                      priority
==========================================================================
meta                  /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/meta  5
meta-poky             /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/meta-poky  5
meta-oe               /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-openembedded/meta-oe  6
meta-networking       /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-openembedded/meta-networking  5
meta-python           /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-openembedded/meta-python  7
meta-multimedia       /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-openembedded/meta-multimedia  6
meta-ruby             /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-openembedded/meta-ruby  7
workspace             /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/build/workspace  99
meta-phytec           /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-phytec  20
meta-qt5              /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-qt5  7
meta-yogurt           /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-yogurt  10
meta-UMG              /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-UMG  6
meta-canboat          /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-canboat  6
meta-influx           /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-influx  6
meta-go               /home/des/Yocto/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-go  1

Что здесь не так? Как мне обновить рецепт, если не через devtool?

1 Ответ

0 голосов
/ 11 июня 2019

Krogoth Workflow

Как уже упоминалось @danlor и @Nayfe, я создал патч для обновленного Makefile в дереве исходных текстов.

  1. Я добавил хранилище дерева исходных текстов, используя:

    devtool add canboat https://github.com/canboat/canboat.git
    

    должно создать workspace/sources/canboat в папке build

  2. Я создал патч, используя следующее:

    # edit the Makefile using your editor (same change as the previous patch)
    git add Makefile
    git commit -m "Add non root user to new Makefile"
    git format-patch -1 -o ../sources/meta-canboat/recipes-support/canboat/files/
    
  3. В sources/meta-canboat я удалил старый рецепт v.1.0.0, добавил новый рецепт v1.2.1 и произвел рефакторинг файла патча.

  4. Увеличил версию до v1.0.0 -> v1.2.1 и подтолкнул к коду meta-canboat

...