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)) |