mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
devtool: standard: update-recipe/finish: fix update localfile in another layer
When trying to use devtool update-recipe/finish on another layer, with modified local file we have the following error: Traceback (most recent call last): File "<..>/poky/scripts/devtool", line 350, in <module> ret = main() ^^^^^^ File "<..>/poky/scripts/devtool", line 337, in main ret = args.func(args, config, basepath, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<..>/poky/scripts/lib/devtool/standard.py", line 1968, in update_recipe updated, _, _ = _update_recipe(args.recipename, workspace, rd, args.mode, args.append, args.wildcard_version, args.no_remove, args.initial_rev, dry_run_outdir=dry_run_outdir, no_overrides=args.no_overrides, force_patch_refresh=args.force_patch_refresh) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<..>/poky/scripts/lib/devtool/standard.py", line 1930, in _update_recipe updated, appendf, removed = _update_recipe_patch(recipename, workspace, srctree, crd, appendlayerdir, wildcard_version, no_remove, no_report_remove, initial_rev, dry_run_outdir, force_patch_refresh) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<..>/poky/scripts/lib/devtool/standard.py", line 1747, in _update_recipe_patch patchdir = param.get('patchdir', ".") ^^^^^^^^^ AttributeError: 'str' object has no attribute 'get' This was introduced when adding support for git submodules. No selftest case exists to catch this, so a selftest will be added in another commit. (From OE-Core rev: de7ca9f800e15e10271502da7e51e3ae08e0c85b) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
629063944c
commit
28516320d8
|
@ -1463,8 +1463,10 @@ def _export_local_files(srctree, rd, destdir, srctreebase):
|
|||
1. updated - files that already exist in SRCURI
|
||||
2. added - new files files that don't exist in SRCURI
|
||||
3 removed - files that exist in SRCURI but not in exported files
|
||||
In each dict the key is the 'basepath' of the URI and value is the
|
||||
absolute path to the existing file in recipe space (if any).
|
||||
In each dict the key is the 'basepath' of the URI and value is:
|
||||
- for updated and added dicts, a dict with 1 optionnal key:
|
||||
- 'path': the absolute path to the existing file in recipe space (if any)
|
||||
- for removed dict, the absolute path to the existing file in recipe space
|
||||
"""
|
||||
import oe.recipeutils
|
||||
|
||||
|
@ -1546,9 +1548,9 @@ def _export_local_files(srctree, rd, destdir, srctreebase):
|
|||
origpath = existing_files.pop(fname)
|
||||
workpath = os.path.join(local_files_dir, fname)
|
||||
if not filecmp.cmp(origpath, workpath):
|
||||
updated[fname] = origpath
|
||||
updated[fname] = {'path' : origpath}
|
||||
elif fname != '.gitignore':
|
||||
added[fname] = None
|
||||
added[fname] = {}
|
||||
|
||||
workdir = rd.getVar('WORKDIR')
|
||||
s = rd.getVar('S')
|
||||
|
@ -1565,7 +1567,7 @@ def _export_local_files(srctree, rd, destdir, srctreebase):
|
|||
if os.path.exists(fpath):
|
||||
origpath = existing_files.pop(fname)
|
||||
if not filecmp.cmp(origpath, fpath):
|
||||
updated[fpath] = origpath
|
||||
updated[fpath] = {'path' : origpath}
|
||||
|
||||
removed = existing_files
|
||||
return (updated, added, removed)
|
||||
|
@ -1651,7 +1653,8 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi
|
|||
redirect_output=dry_run_outdir)
|
||||
else:
|
||||
files_dir = _determine_files_dir(rd)
|
||||
for basepath, path in upd_f.items():
|
||||
for basepath, param in upd_f.items():
|
||||
path = param['path']
|
||||
logger.info('Updating file %s%s' % (basepath, dry_run_suffix))
|
||||
if os.path.isabs(basepath):
|
||||
# Original file (probably with subdir pointing inside source tree)
|
||||
|
@ -1661,7 +1664,8 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi
|
|||
_move_file(os.path.join(local_files_dir, basepath), path,
|
||||
dry_run_outdir=dry_run_outdir, base_outdir=recipedir)
|
||||
update_srcuri= True
|
||||
for basepath, path in new_f.items():
|
||||
for basepath, param in new_f.items():
|
||||
path = param['path']
|
||||
logger.info('Adding new file %s%s' % (basepath, dry_run_suffix))
|
||||
_move_file(os.path.join(local_files_dir, basepath),
|
||||
os.path.join(files_dir, basepath),
|
||||
|
@ -1783,7 +1787,8 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil
|
|||
else:
|
||||
# Update existing files
|
||||
files_dir = _determine_files_dir(rd)
|
||||
for basepath, path in upd_f.items():
|
||||
for basepath, param in upd_f.items():
|
||||
path = param['path']
|
||||
logger.info('Updating file %s' % basepath)
|
||||
if os.path.isabs(basepath):
|
||||
# Original file (probably with subdir pointing inside source tree)
|
||||
|
@ -1817,7 +1822,7 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil
|
|||
dry_run_outdir=dry_run_outdir, base_outdir=recipedir)
|
||||
updatefiles = True
|
||||
# Add any new files
|
||||
for basepath, path in new_f.items():
|
||||
for basepath, param in new_f.items():
|
||||
logger.info('Adding new file %s%s' % (basepath, dry_run_suffix))
|
||||
_move_file(os.path.join(local_files_dir, basepath),
|
||||
os.path.join(files_dir, basepath),
|
||||
|
|
Loading…
Reference in New Issue
Block a user