summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/devtool/build-image.py53
1 files changed, 23 insertions, 30 deletions
diff --git a/scripts/lib/devtool/build-image.py b/scripts/lib/devtool/build-image.py
index a6c7d81586..05c1d75c67 100644
--- a/scripts/lib/devtool/build-image.py
+++ b/scripts/lib/devtool/build-image.py
@@ -70,40 +70,33 @@ def build_image(args, config, basepath, workspace):
70 else: 70 else:
71 raise DevtoolError('Specified recipe %s is not an image recipe' % image) 71 raise DevtoolError('Specified recipe %s is not an image recipe' % image)
72 72
73 if workspace: 73 try:
74 packages = _get_packages(tinfoil, workspace, config) 74 if workspace:
75 if packages: 75 packages = _get_packages(tinfoil, workspace, config)
76 with open(appendfile, 'w') as afile: 76 if packages:
77 # include packages from workspace recipes into the image 77 with open(appendfile, 'w') as afile:
78 afile.write('IMAGE_INSTALL_append = " %s"\n' % ' '.join(packages)) 78 # include packages from workspace recipes into the image
79 79 afile.write('IMAGE_INSTALL_append = " %s"\n' % ' '.join(packages))
80 # Generate notification callback devtool_warn_image_extended 80 logger.info('Building image %s with the following '
81 afile.write('do_rootfs[prefuncs] += "devtool_warn_image_extended"\n\n') 81 'additional packages: %s', image, ' '.join(packages))
82 afile.write("python devtool_warn_image_extended() {\n") 82 else:
83 afile.write(" bb.plain('NOTE: %%s: building with additional '\n" 83 logger.warning('No packages to add, building image %s unmodified', image)
84 " 'packages due to \"devtool build-image\"'"
85 " %% d.getVar('PN', True))\n"
86 " bb.plain('NOTE: delete %%s to clear this' %% \\\n"
87 " '%s')\n" % os.path.relpath(appendfile, basepath))
88 afile.write("}\n")
89
90 logger.info('Building image %s with the following '
91 'additional packages: %s', image, ' '.join(packages))
92 else: 84 else:
93 logger.warning('No packages to add, building image %s unmodified', image) 85 logger.warning('No recipes in workspace, building image %s unmodified', image)
94 else:
95 logger.warning('No recipes in workspace, building image %s unmodified', image)
96 86
97 deploy_dir_image = tinfoil.config_data.getVar('DEPLOY_DIR_IMAGE', True) 87 deploy_dir_image = tinfoil.config_data.getVar('DEPLOY_DIR_IMAGE', True)
98 88
99 tinfoil.shutdown() 89 tinfoil.shutdown()
100 90
101 # run bitbake to build image 91 # run bitbake to build image
102 try: 92 try:
103 exec_build_env_command(config.init_path, basepath, 93 exec_build_env_command(config.init_path, basepath,
104 'bitbake %s' % image, watch=True) 94 'bitbake %s' % image, watch=True)
105 except ExecutionError as err: 95 except ExecutionError as err:
106 return err.exitcode 96 return err.exitcode
97 finally:
98 if os.path.isfile(appendfile):
99 os.unlink(appendfile)
107 100
108 logger.info('Successfully built %s. You can find output files in %s' 101 logger.info('Successfully built %s. You can find output files in %s'
109 % (image, deploy_dir_image)) 102 % (image, deploy_dir_image))