* [PATCH 0/2] Fix of #56 @ 2019-05-16 12:50 claudius.heine.ext 2019-05-16 12:50 ` [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed claudius.heine.ext ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: claudius.heine.ext @ 2019-05-16 12:50 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine From: Claudius Heine <ch@denx.de> Hi, here is the fix for #56 without regression. Now its possible again to refer to the kernel and initrd names at any point in the image creation process, even if they were removed from the root fs in a cleanup step. regards, Claudius Claudius Heine (2): image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed Revert "meta/classes/image: Call transform_template after rootfs_install" meta/classes/image.bbclass | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed 2019-05-16 12:50 [PATCH 0/2] Fix of #56 claudius.heine.ext @ 2019-05-16 12:50 ` claudius.heine.ext 2019-05-16 13:32 ` Claudius Heine 2019-05-16 12:50 ` [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" claudius.heine.ext 2019-05-18 11:35 ` [PATCH 0/2] Fix of #56 Maxim Yu. Osipov 2 siblings, 1 reply; 9+ messages in thread From: claudius.heine.ext @ 2019-05-16 12:50 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine From: Claudius Heine <ch@denx.de> Before the value of those variables where calculated at runtime with the content of the target root file system. But if the root file system does not contain the files yet or no longer, this variable will be empty, even if those files are already copied to the deploy directory. Setting this to fixed value allows to use them in every state of the root file system. Change from the last version is that KERNEL_IMAGE and INITRD_IMAGE variables not contain the `${PF}`, so that they don't overwrite each other. Signed-off-by: Claudius Heine <ch@denx.de> --- meta/classes/image.bbclass | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 93d9bfc..398275f 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -13,8 +13,8 @@ IMAGE_INSTALL += "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getV IMAGE_FULLNAME = "${PF}" # These variables are used by wic and start_vm -KERNEL_IMAGE ?= "${@get_image_name(d, 'vmlinuz')[1]}" -INITRD_IMAGE ?= "${@get_image_name(d, 'initrd.img')[1]}" +KERNEL_IMAGE ?= "${PF}-vmlinuz" +INITRD_IMAGE ?= "${PF}-initrd.img" # Useful variables for imager implementations: PP = "/home/builder/${PN}" @@ -149,12 +149,10 @@ addtask rootfs_install before do_build after do_unpack do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}" do_copy_boot_files() { - KERNEL_IMAGE=${@get_image_name(d, 'vmlinuz')[1]} if [ -n "${KERNEL_IMAGE}" ]; then cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'vmlinuz')[0]} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE} fi - INITRD_IMAGE=${@get_image_name(d, 'initrd.img')[1]} if [ -n "${INITRD_IMAGE}" ]; then sudo cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'initrd.img')[0]} ${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE} fi -- 2.20.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed 2019-05-16 12:50 ` [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed claudius.heine.ext @ 2019-05-16 13:32 ` Claudius Heine 0 siblings, 0 replies; 9+ messages in thread From: Claudius Heine @ 2019-05-16 13:32 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine On 16/05/2019 14.50, [ext] claudius.heine.ext@siemens.com wrote: > From: Claudius Heine <ch@denx.de> > > Before the value of those variables where calculated at runtime with the > content of the target root file system. But if the root file system > does not contain the files yet or no longer, this variable will be > empty, even if those files are already copied to the deploy directory. > > Setting this to fixed value allows to use them in every state of the > root file system. > > Change from the last version is that KERNEL_IMAGE and INITRD_IMAGE > variables not contain the `${PF}`, so that they don't overwrite each not -> now If that is the only mistake, then this could be changed on merge. Claudius > other. > > Signed-off-by: Claudius Heine <ch@denx.de> > --- > meta/classes/image.bbclass | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 93d9bfc..398275f 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -13,8 +13,8 @@ IMAGE_INSTALL += "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getV > IMAGE_FULLNAME = "${PF}" > > # These variables are used by wic and start_vm > -KERNEL_IMAGE ?= "${@get_image_name(d, 'vmlinuz')[1]}" > -INITRD_IMAGE ?= "${@get_image_name(d, 'initrd.img')[1]}" > +KERNEL_IMAGE ?= "${PF}-vmlinuz" > +INITRD_IMAGE ?= "${PF}-initrd.img" > > # Useful variables for imager implementations: > PP = "/home/builder/${PN}" > @@ -149,12 +149,10 @@ addtask rootfs_install before do_build after do_unpack > > do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}" > do_copy_boot_files() { > - KERNEL_IMAGE=${@get_image_name(d, 'vmlinuz')[1]} > if [ -n "${KERNEL_IMAGE}" ]; then > cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'vmlinuz')[0]} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE} > fi > > - INITRD_IMAGE=${@get_image_name(d, 'initrd.img')[1]} > if [ -n "${INITRD_IMAGE}" ]; then > sudo cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'initrd.img')[0]} ${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE} > fi > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" 2019-05-16 12:50 [PATCH 0/2] Fix of #56 claudius.heine.ext 2019-05-16 12:50 ` [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed claudius.heine.ext @ 2019-05-16 12:50 ` claudius.heine.ext 2019-05-17 10:58 ` Maxim Yu. Osipov 2019-05-18 11:35 ` [PATCH 0/2] Fix of #56 Maxim Yu. Osipov 2 siblings, 1 reply; 9+ messages in thread From: claudius.heine.ext @ 2019-05-16 12:50 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine From: Claudius Heine <ch@denx.de> This 'fix' is no longer necessary. This reverts commit 2df0b261610f38bc1d5472f7ee0e3d51243ed602. --- meta/classes/image.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 398275f..3eb261f 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -169,7 +169,7 @@ do_copy_boot_files() { cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" fi } -addtask copy_boot_files before do_rootfs_postprocess do_transform_template after do_rootfs_install +addtask copy_boot_files before do_rootfs_postprocess after do_rootfs_install python do_image_tools() { """Virtual task""" -- 2.20.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" 2019-05-16 12:50 ` [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" claudius.heine.ext @ 2019-05-17 10:58 ` Maxim Yu. Osipov 2019-05-20 7:19 ` Claudius Heine 0 siblings, 1 reply; 9+ messages in thread From: Maxim Yu. Osipov @ 2019-05-17 10:58 UTC (permalink / raw) To: claudius.heine.ext, isar-users; +Cc: Claudius Heine On 5/16/19 2:50 PM, claudius.heine.ext@siemens.com wrote: > From: Claudius Heine <ch@denx.de> > > This 'fix' is no longer necessary. Why did you put fix in quotes? This revert fixed the problem with do_fit_image if we want to keep old naming scheme for kernel/initrd image. Maxim. > This reverts commit 2df0b261610f38bc1d5472f7ee0e3d51243ed602. > --- > meta/classes/image.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 398275f..3eb261f 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -169,7 +169,7 @@ do_copy_boot_files() { > cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" > fi > } > -addtask copy_boot_files before do_rootfs_postprocess do_transform_template after do_rootfs_install > +addtask copy_boot_files before do_rootfs_postprocess after do_rootfs_install > > python do_image_tools() { > """Virtual task""" > -- Maxim Osipov ilbers GmbH Maria-Merian-Str. 8 85521 Ottobrunn Germany +49 (151) 6517 6917 mosipov@ilbers.de http://ilbers.de/ Commercial register Munich, HRB 214197 General Manager: Baurzhan Ismagulov ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" 2019-05-17 10:58 ` Maxim Yu. Osipov @ 2019-05-20 7:19 ` Claudius Heine 2019-05-20 19:47 ` Baurzhan Ismagulov 0 siblings, 1 reply; 9+ messages in thread From: Claudius Heine @ 2019-05-20 7:19 UTC (permalink / raw) To: Maxim Yu. Osipov, isar-users; +Cc: Claudius Heine Hi Maxim, On 17/05/2019 12.58, Maxim Yu. Osipov wrote: > On 5/16/19 2:50 PM, claudius.heine.ext@siemens.com wrote: >> From: Claudius Heine <ch@denx.de> >> >> This 'fix' is no longer necessary. > > Why did you put fix in quotes? Because this change just painted over the underlying issue with the non-deterministic and volatile value of the KERNEL_IMAGE and INITRD_IMAGE variables. So I would not consider that a permanent fix but a quick band-aid. > This revert fixed the problem with do_fit_image if we want to keep old > naming scheme for kernel/initrd image. This is not just a naming scheme change. Any bitbake variable that could change in the middle of the build process is not deterministic an therefor a bug. A good next refactoring step would in fact be to remove the 'get_image_name' function, since it does not return a deterministic value, and instead implement that completely in the `do_copy_boot_files` task. Claudius > > Maxim. > >> This reverts commit 2df0b261610f38bc1d5472f7ee0e3d51243ed602. >> --- >> meta/classes/image.bbclass | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass >> index 398275f..3eb261f 100644 >> --- a/meta/classes/image.bbclass >> +++ b/meta/classes/image.bbclass >> @@ -169,7 +169,7 @@ do_copy_boot_files() { >> cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" >> fi >> } >> -addtask copy_boot_files before do_rootfs_postprocess >> do_transform_template after do_rootfs_install >> +addtask copy_boot_files before do_rootfs_postprocess after >> do_rootfs_install >> python do_image_tools() { >> """Virtual task""" >> > > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" 2019-05-20 7:19 ` Claudius Heine @ 2019-05-20 19:47 ` Baurzhan Ismagulov 2019-05-21 8:06 ` Claudius Heine 0 siblings, 1 reply; 9+ messages in thread From: Baurzhan Ismagulov @ 2019-05-20 19:47 UTC (permalink / raw) To: isar-users On Mon, May 20, 2019 at 09:19:41AM +0200, Claudius Heine wrote: > Because this change just painted over the underlying issue with the > non-deterministic and volatile value of the KERNEL_IMAGE and INITRD_IMAGE > variables. So I would not consider that a permanent fix but a quick > band-aid. The function returns different values depending on whether the respective task has finished. So, the implicit precondition is that the caller must depend on the kernel deployment task. Given the precondition, the behavior is deterministic and there could be other ways to fix them without sacrificing user experience. For my understanding, what was your user-level use case when you experienced the get_image_name() issue? To be clear, Maxim's patch only addresses CI and not this issue. With kind regards, Baurzhan. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" 2019-05-20 19:47 ` Baurzhan Ismagulov @ 2019-05-21 8:06 ` Claudius Heine 0 siblings, 0 replies; 9+ messages in thread From: Claudius Heine @ 2019-05-21 8:06 UTC (permalink / raw) To: isar-users Hi Baurzhan, On 20/05/2019 21.47, Baurzhan Ismagulov wrote: > On Mon, May 20, 2019 at 09:19:41AM +0200, Claudius Heine wrote: >> Because this change just painted over the underlying issue with the >> non-deterministic and volatile value of the KERNEL_IMAGE and INITRD_IMAGE >> variables. So I would not consider that a permanent fix but a quick >> band-aid. > > The function returns different values depending on whether the respective task > has finished. So, the implicit precondition is that the caller must depend on > the kernel deployment task. Given the precondition, the behavior is > deterministic and there could be other ways to fix them without sacrificing > user experience. ? I don't understand you here. From my perspective is this patchset now merged and the issue is fixed without sacrificing user experience. Or do you have any issue with how it was fixed? If so, then a patch review would be nice. > > For my understanding, what was your user-level use case when you experienced > the get_image_name() issue? As I already described previously, there is only a very specific time frame in the image build process where `get_image_name` is allowed to be called and that is after the kernel package is installed and before the kernel is removed from `/boot` in a possible post-install cleanup step. After this patchset `get_image_name` is only called in one task (`do_copy_boot_files`), so it can be safely removed and integrated there to avoid any misuse of that function. I also think that is is much easier to implement there and thus removes complexity and improves code readability. > To be clear, Maxim's patch only addresses CI and not this issue. I know, and that was exactly what I commented on the patch. What the revert in Maxims patch set did was a zero sum improvement: one issue fixed and another caused. I would have rather seen either to fix the issue (for instance the way I described in the review of Maxims patch set and this patch set does) or to disable the test in the CI until the issue is fixed correctly. That way either the issue in the code or that CI is 'red' would have been fixed and that would have been both a positive change instead no change. A "revert" for me means that a patch does not do what it was meant to do or is useless. If it was found that a merged patch accidentally caused a regression, then instead of reverting that commit and knowingly causing further regressions, the regression of that patch should be fixed directly. From that conviction, Maxims revert patch just seems petty to me. regards, Claudius -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] Fix of #56 2019-05-16 12:50 [PATCH 0/2] Fix of #56 claudius.heine.ext 2019-05-16 12:50 ` [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed claudius.heine.ext 2019-05-16 12:50 ` [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" claudius.heine.ext @ 2019-05-18 11:35 ` Maxim Yu. Osipov 2 siblings, 0 replies; 9+ messages in thread From: Maxim Yu. Osipov @ 2019-05-18 11:35 UTC (permalink / raw) To: claudius.heine.ext, isar-users; +Cc: Claudius Heine On 5/16/19 2:50 PM, claudius.heine.ext@siemens.com wrote: > From: Claudius Heine <ch@denx.de> > > Hi, > > here is the fix for #56 without regression. Now its possible again to refer to > the kernel and initrd names at any point in the image creation process, even if > they were removed from the root fs in a cleanup step. > > regards, > Claudius Reworded and applied to the 'next'. Maxim. > Claudius Heine (2): > image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed > Revert "meta/classes/image: Call transform_template after > rootfs_install" > > meta/classes/image.bbclass | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > -- Maxim Osipov ilbers GmbH Maria-Merian-Str. 8 85521 Ottobrunn Germany +49 (151) 6517 6917 mosipov@ilbers.de http://ilbers.de/ Commercial register Munich, HRB 214197 General Manager: Baurzhan Ismagulov ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-05-21 8:06 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-05-16 12:50 [PATCH 0/2] Fix of #56 claudius.heine.ext 2019-05-16 12:50 ` [PATCH 1/2] image.bbclass: make KERNEL_IMAGE & INITRD_IMAGE variable fixed claudius.heine.ext 2019-05-16 13:32 ` Claudius Heine 2019-05-16 12:50 ` [PATCH 2/2] Revert "meta/classes/image: Call transform_template after rootfs_install" claudius.heine.ext 2019-05-17 10:58 ` Maxim Yu. Osipov 2019-05-20 7:19 ` Claudius Heine 2019-05-20 19:47 ` Baurzhan Ismagulov 2019-05-21 8:06 ` Claudius Heine 2019-05-18 11:35 ` [PATCH 0/2] Fix of #56 Maxim Yu. Osipov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox