mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01: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)
(From OE-Core rev: b4fb19df1746d04c9534feff58a9e534705d46df)
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>
Signed-off-by: Jeff Harris <jefftharris@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
df183ca5b0
commit
d00c23ef3e
@@ -1452,8 +1452,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
|
||||
|
||||
@@ -1535,9 +1537,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')
|
||||
@@ -1554,7 +1556,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)
|
||||
@@ -1640,7 +1642,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)
|
||||
@@ -1650,7 +1653,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),
|
||||
@@ -1772,7 +1776,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)
|
||||
@@ -1806,7 +1811,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),
|
||||
|
||||
Reference in New Issue
Block a user