bitbake: compile tar-replacement firstly

Submitted by rongqing.li@windriver.com on Aug. 8, 2012, 1:44 a.m.

Details

Message ID 1344390266-11878-1-git-send-email-rongqing.li@windriver.com
State Accepted
Commit 3c1c4719fc96f6f1fbb257413d6baf3d91fdf4e8
Headers show

Commit Message

rongqing.li@windriver.com Aug. 8, 2012, 1:44 a.m.
From: Roy.Li <rongqing.li@windriver.com>

Compiling tar-replacement or not is decided by version of host tar,
if the host tar version is lower than 1.23, Compiling tar-replacement
is needed.

When doing popoluate tar-replacement sysroot to write the tar to
sysroot, but writing is not finished. other packages probably
use the being written tar to unzip file, which will lead to failure
and report the below error:
"bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text file busy"

Now we compile tar-replacement firstly to ensure that a being written
tar command will not be used.

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
---
 scripts/bitbake |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

Patch hide | download patch | download mbox

diff --git a/scripts/bitbake b/scripts/bitbake
index 09f8a86..79a81ea 100755
--- a/scripts/bitbake
+++ b/scripts/bitbake
@@ -152,7 +152,12 @@  if [ $buildpseudo -gt 0 ]; then
             fi
         done
     done
-    bitbake pseudo-native $TARTARGET $GITTARGET $additionalopts -c populate_sysroot
+
+    if [ $needtar = "1" ]; then
+	bitbake $TARTARGET -c populate_sysroot
+    fi
+
+    bitbake pseudo-native $GITTARGET $additionalopts -c populate_sysroot
     ret=$?
     if [ "$ret" != "0" ]; then
         exit 1

Comments

Saul Wold Aug. 29, 2012, 10:25 p.m.
On 08/07/2012 06:44 PM, rongqing.li@windriver.com wrote:
> From: Roy.Li <rongqing.li@windriver.com>
>
> Compiling tar-replacement or not is decided by version of host tar,
> if the host tar version is lower than 1.23, Compiling tar-replacement
> is needed.
>
> When doing popoluate tar-replacement sysroot to write the tar to
> sysroot, but writing is not finished. other packages probably
> use the being written tar to unzip file, which will lead to failure
> and report the below error:
> "bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text file busy"
>
> Now we compile tar-replacement firstly to ensure that a being written
> tar command will not be used.
>
> Signed-off-by: Roy.Li <rongqing.li@windriver.com>
> ---
>   scripts/bitbake |    7 ++++++-
>   1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/bitbake b/scripts/bitbake
> index 09f8a86..79a81ea 100755
> --- a/scripts/bitbake
> +++ b/scripts/bitbake
> @@ -152,7 +152,12 @@ if [ $buildpseudo -gt 0 ]; then
>               fi
>           done
>       done
> -    bitbake pseudo-native $TARTARGET $GITTARGET $additionalopts -c populate_sysroot
> +
> +    if [ $needtar = "1" ]; then
> +	bitbake $TARTARGET -c populate_sysroot
> +    fi
> +
> +    bitbake pseudo-native $GITTARGET $additionalopts -c populate_sysroot
>       ret=$?
>       if [ "$ret" != "0" ]; then
>           exit 1
>

Merged into OE-Core

Thanks
	Sau!