diff options
| author | Elliot Smith <elliot.smith@intel.com> | 2016-07-12 15:54:49 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-19 08:56:51 +0100 |
| commit | 150e5588a01b1334ae3158c9b13e28bec428af37 (patch) | |
| tree | f61bc87dc0f6e385546c4494c345349146d678a1 | |
| parent | 00c2c0be5ead435601a21a676401674b7045f6f0 (diff) | |
| download | poky-150e5588a01b1334ae3158c9b13e28bec428af37.tar.gz | |
bitbake: buildinfohelper: only record image files for tasks which make images
If a target is built which is classified as an "image" target
(e.g. "core-image-minimal"), Toaster reads the list of files in
the image (from the files-in-image.txt file).
However, Toaster continues to do this for builds which don't
produce images, if the recipe providing the target is an
image recipe. This can result in a list of files in the image
being attached to a target which didn't produce an image (e.g.
rootfs).
When associating files with an image, ensure that only targets
with a task which produces an image have "files in the image"
associated with them.
[YOCTO #9784]
(Bitbake rev: 44375d0c2a88e0070b8067c9285b89c54eaf3152)
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: bavery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index bf032ae835..52b5e12bff 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
| @@ -875,6 +875,11 @@ class BuildInfoHelper(object): | |||
| 875 | Keeps in memory all data that needs matching before writing it to the database | 875 | Keeps in memory all data that needs matching before writing it to the database |
| 876 | """ | 876 | """ |
| 877 | 877 | ||
| 878 | # tasks which produce image files; note we include '', as we set | ||
| 879 | # the task for a target to '' (i.e. 'build') if no target is | ||
| 880 | # explicitly defined | ||
| 881 | IMAGE_GENERATING_TASKS = ['', 'build', 'image', 'populate_sdk_ext'] | ||
| 882 | |||
| 878 | # pylint: disable=protected-access | 883 | # pylint: disable=protected-access |
| 879 | # the code will look into the protected variables of the event; no easy way around this | 884 | # the code will look into the protected variables of the event; no easy way around this |
| 880 | # pylint: disable=bad-continuation | 885 | # pylint: disable=bad-continuation |
| @@ -1235,11 +1240,16 @@ class BuildInfoHelper(object): | |||
| 1235 | logger.warning("KeyError in save_target_package_information" | 1240 | logger.warning("KeyError in save_target_package_information" |
| 1236 | "%s ", e) | 1241 | "%s ", e) |
| 1237 | 1242 | ||
| 1238 | try: | 1243 | # only try to find files in the image if the task for this |
| 1239 | self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata) | 1244 | # target is one which produces image files; otherwise, the old |
| 1240 | except KeyError as e: | 1245 | # list of files in the files-in-image.txt file will be |
| 1241 | logger.warning("KeyError in save_target_file_information" | 1246 | # appended to the target even if it didn't produce any images |
| 1242 | "%s ", e) | 1247 | if target.task in BuildInfoHelper.IMAGE_GENERATING_TASKS: |
| 1248 | try: | ||
| 1249 | self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata) | ||
| 1250 | except KeyError as e: | ||
| 1251 | logger.warning("KeyError in save_target_file_information" | ||
| 1252 | "%s ", e) | ||
| 1243 | 1253 | ||
| 1244 | 1254 | ||
| 1245 | 1255 | ||
