| Summary: | do_task[depends] cannot add dependencies needed for conversion types | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Louis Rannou <louis.rannou> | ||||||||
| Component: | oe-core other | Assignee: | Ross Burton <ross.burton> | ||||||||
| Status: | NEW --- | QA Contact: | |||||||||
| Severity: | enhancement | ||||||||||
| Priority: | Medium | CC: | randy.macleod, ross.burton | ||||||||
| Version: | unspecified | ||||||||||
| Target Milestone: | Future | ||||||||||
| Hardware: | All | ||||||||||
| OS: | Multiple | ||||||||||
| Whiteboard: | |||||||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||||||
| Verified: | Documentation change: | Don't know | |||||||||
| Attachments: |
|
||||||||||
Created attachment 5099 [details]
Patch to publish the base type resolution
Actually forget about the first step and the patch as it wouldn't be available from an other recipe :/ Created attachment 5101 [details]
add tasks for conversion types
This is a patch to create tasks for conversion commands
For example, if IMAGE_FSTYPES contains "tar.gz.lzo", the new tasks depends are created:
do_image_complete -> do_image_tar_gz_lzo
do_image_complete -> do_image_tar_gz
do_image_tar_gz_lzo -> do_image_tar_gz_lzo
do_image_tar_gz -> do_image_tar
Bug review: The automatic image conversion is quite complicated so we're not surprised that there are corner cases. Likely a full expansion of all combinations is not sensible since tasks are somewhat slow in bitbake. This may have to wait to early in 5.3 since we're weeks away from feature freeze. Wouldn't it be better to depend on myimage:do_image_complete, which is the "the images you requested have all been built" task? Louis, See Ross' question, please. (In reply to Ross Burton from comment #5) > Wouldn't it be better to depend on myimage:do_image_complete, which is the > "the images you requested have all been built" task? When the new task is from another recipe it would indeed. But if the task is somehow in the same recipe we can't. Let's take a dummy example and suppose the wic has to include a tar.gz.lzo. Today we have to add: do_image_wic[depends] = '${PN}:do_image_tar' It's quite easy for a human, but a bit tricky for a machine. Ross to look at this. |
Created attachment 5098 [details] Patch to publish the base type resolution When a new task requires a dependance to a image type, we are supposed to write: mytask[depends] = 'myimage:do_image_tar' If we require a conversion type (eg tar.gz or tar.gz.lzo), there is nothing to help. That's quite unconfortable for a user and complexifies automation. A first step would be to provide the _image_base_type function from image.bbclass. This would let anyone resolve types (patch provided). Then, oe might be able to resolve something like mytask[depends] = 'myimage:do_image_tar_gz_loz'