diff options
Diffstat (limited to 'scripts/lib/devtool/build-image.py')
| -rw-r--r-- | scripts/lib/devtool/build-image.py | 53 |
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)) |
