Bug 11414

Summary: devtool breaks if an invalid image name is passed to build-image
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Todor Minchev <todor.minchev>
Component: devtools / tool chainAssignee: Paul Eggleton <bluelightning>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: meta.mr.watcher, meta.watcher
Version: 2.4   
Target Milestone: 2.3 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 Todor Minchev 2017-04-25 20:26:22 UTC
Please see the log below:

devtool build-image invalid_image_name
Loading cache: 100% |########################################################################################| Time: 0:00:00
Loaded 2819 entries from dependency cache.
Parsing recipes: 100% |######################################################################################| Time: 0:00:00
Parsing of 2044 .bb files complete (2042 cached, 2 parsed). 2821 targets, 447 skipped, 0 masked, 0 errors.
Traceback (most recent call last):
  File "/workdir/intel-iot-refkit/openembedded-core/scripts/devtool", line 351, in <module>
    ret = main()
  File "/workdir/intel-iot-refkit/openembedded-core/scripts/devtool", line 338, in main
    ret = args.func(args, config, basepath, workspace)
  File "/workdir/intel-iot-refkit/openembedded-core/scripts/lib/devtool/build_image.py", line 63, in build_image
    result, outputdir = build_image_task(config, basepath, workspace, image, add_packages)
  File "/workdir/intel-iot-refkit/openembedded-core/scripts/lib/devtool/build_image.py", line 90, in build_image_task
    rd = parse_recipe(config, tinfoil, image, True)
  File "/workdir/intel-iot-refkit/openembedded-core/scripts/lib/devtool/__init__.py", line 138, in parse_recipe
    append_files = tinfoil.get_file_appends(recipefile)
  File "/workdir/intel-iot-refkit/bitbake/lib/bb/tinfoil.py", line 377, in get_file_appends
    return self.run_command('getFileAppends', fn)
  File "/workdir/intel-iot-refkit/bitbake/lib/bb/tinfoil.py", line 316, in run_command
    raise TinfoilCommandFailed(result[1])
bb.tinfoil.TinfoilCommandFailed: Traceback (most recent call last):
  File "/workdir/intel-iot-refkit/bitbake/lib/bb/command.py", line 81, in runCommand
    result = command_method(self, commandline)
  File "/workdir/intel-iot-refkit/bitbake/lib/bb/command.py", line 416, in getFileAppends
    return command.cooker.collection.get_file_appends(fn)
  File "/workdir/intel-iot-refkit/bitbake/lib/bb/cooker.py", line 1961, in get_file_appends
    f = os.path.basename(fn)
  File "/usr/lib/python3.5/posixpath.py", line 139, in basename
    i = p.rfind(sep) + 1
AttributeError: 'NoneType' object has no attribute 'rfind'
Comment 1 Paul Eggleton 2017-04-25 20:34:53 UTC
This has already been fixed by:

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e8f4e06e762670c6e451dc4028be7c3cccd71c46