Patchwork [1/1] image.bbclass:specify the order of do_rootfs

login
register
mail settings
Submitter Hongxu Jia
Date Jan. 5, 2013, 12:45 a.m.
Message ID <c7eeaf9b46dd9c854603f2c5e3157799390ab76d.1357290320.git.hongxu.jia@windriver.com>
Download mbox | patch
Permalink /patch/42011/
State New
Headers show

Comments

Hongxu Jia - Jan. 5, 2013, 12:45 a.m.
The task of do_populate_lic use "bb.build.exec_func" to execute shell function
"sstate_create_package", and "bb.build.exec_func" use ${B} as default dir to cd
and execute the shell function. At this place, B = "${WORKDIR}/${BPN}-${PV}/",
and "${WORKDIR}/${BPN}-${PV}/" is removed by task do_rootfs.

When we use more than one bitabke to run tasks, there is a chance that do_rootfs
and do_populate_lic are being executed at the same time. So we should explicity
specify the order of do_populate_lic and do_rootfs to let "${WORKDIR}/${BPN}-${PV}/"
could be correctly used and removed.

[YOCTO #3674]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta/classes/image.bbclass |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Richard Purdie - Jan. 7, 2013, 2:06 p.m.
On Sat, 2013-01-05 at 08:45 +0800, Hongxu Jia wrote:
> The task of do_populate_lic use "bb.build.exec_func" to execute shell function
> "sstate_create_package", and "bb.build.exec_func" use ${B} as default dir to cd
> and execute the shell function. At this place, B = "${WORKDIR}/${BPN}-${PV}/",
> and "${WORKDIR}/${BPN}-${PV}/" is removed by task do_rootfs.
> 
> When we use more than one bitabke to run tasks, there is a chance that do_rootfs
> and do_populate_lic are being executed at the same time. So we should explicity
> specify the order of do_populate_lic and do_rootfs to let "${WORKDIR}/${BPN}-${PV}/"
> could be correctly used and removed.
> 
> [YOCTO #3674]
> 
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  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 d3a416d..c2dab36 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -472,4 +472,4 @@ do_package_write_ipk[noexec] = "1"
>  do_package_write_deb[noexec] = "1"
>  do_package_write_rpm[noexec] = "1"
>  
> -addtask rootfs before do_build
> +addtask rootfs before do_build after do_populate_lic

Lets not add pointless ordering constraints.

sstate_create_package[dirs] = "${SSTATE_BUILDDIR}"
sstate_unpack_package[dirs] = "${SSTATE_INSTDIR}"

in sstate.bbclass should resolve this and another similar possible race.

Cheers,

Richard

Patch

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index d3a416d..c2dab36 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -472,4 +472,4 @@  do_package_write_ipk[noexec] = "1"
 do_package_write_deb[noexec] = "1"
 do_package_write_rpm[noexec] = "1"
 
-addtask rootfs before do_build
+addtask rootfs before do_build after do_populate_lic