Bug 9458

Summary: devtool: "update-recipe rpm" crashes
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Markus Lehtonen <markus.lehtonen>
Component: devtools / tool chainAssignee: Paul Eggleton <bluelightning>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: meta.mr.watcher, meta.watcher, ross.burton
Version: 2.1   
Target Milestone: 2.1 M4   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Markus Lehtonen 2016-04-13 13:56:33 UTC
Devtool update-recipe crashed when I tried to add a new patch to rpm:

NOTE: Updating recipe rpm_5.4.16.bb
Traceback (most recent call last):
  File "/home/marquiz/yocto/openembedded-core/scripts/devtool", line 337, in <module>
    ret = main()
  File "/home/marquiz/yocto/openembedded-core/scripts/devtool", line 324, in main
    ret = args.func(args, config, basepath, workspace)
  File "/home/marquiz/yocto/openembedded-core/scripts/lib/devtool/standard.py", line 1271, in update_recipe
    updated = _update_recipe_patch(args, config, workspace, srctree, rd, tinfoil.config_data)
  File "/home/marquiz/yocto/openembedded-core/scripts/lib/devtool/standard.py", line 1211, in _update_recipe_patch
    {'SRC_URI': ' '.join(srcuri)})
  File "/home/marquiz/yocto/openembedded-core/meta/lib/oe/recipeutils.py", line 322, in patch_recipe
    patchdata = patch_recipe_file(f, vals, patch, relpath)
  File "/home/marquiz/yocto/openembedded-core/meta/lib/oe/recipeutils.py", line 254, in patch_recipe_file
    changed, tolines = bb.utils.edit_metadata(fromlines, varlist, patch_recipe_varfunc, match_overrides=True)
  File "/home/marquiz/yocto/openembedded-core/bitbake/lib/bb/utils.py", line 1162, in edit_metadata
    if handle_var_end():
  File "/home/marquiz/yocto/openembedded-core/bitbake/lib/bb/utils.py", line 1087, in handle_var_end
    (newvalue, newop, indent, minbreak) = varfunc(in_var, full_value, op, newlines)
  File "/home/marquiz/yocto/openembedded-core/meta/lib/oe/recipeutils.py", line 240, in patch_recipe_varfunc
    del remainingnames[varname]
  File "/usr/lib64/python2.7/collections.py", line 68, in __delitem__
    dict_delitem(self, key)
KeyError: 'SRC_URI'


The probable cause is the slightly complex assignment of the SRC_URI variable.
Comment 1 Ross Burton 2016-04-15 13:43:36 UTC
Fixed in oe-core da5cd84794e1ab5c4efcd6250d3b93a46f610744.