Files
poky/scripts/bitbake
Richard Purdie 577dd4b3e5 tar-replacement-native: Add a target to replace the default tar
tar < 1.24 has symlink issues where extracting a tar archive containing a symlink
to a directory where that symlink already exists will cause the symlink to be
dereferenced. If that target doesn't exist tar can fail with a permissions error.

Since we need to be able to do this for packages containing symlinks like
xorg-minimal-fonts and eglibc, we have to ensure a tar 1.25 is available early
in the build process.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-21 16:36:51 +00:00

1.5 KiB
Executable File

#!/bin/sh NO_BUILD_OPTS="--version -h --help -p --parse-only -s --show-versions -e --environment" needpseudo="1" for opt in $@; do for key in $NO_BUILD_OPTS; do if [ $opt = $key ] then needpseudo="0" break fi done [ $needpseudo = "0" ] && break done

buildpseudo="1" if [ $needpseudo = "1" ] && [ -e "$BUILDDIR/pseudodone" ]; then PSEUDOBINDIR=cat $BUILDDIR/pseudodone if [ -e "$PSEUDOBINDIR/pseudo" -a -e "$PSEUDOBINDIR/tar" ]; then buildpseudo="0" fi fi if [ $needpseudo = "0" ]; then buildpseudo="0" fi

OLDPATH=$PATH export PATH=echo $PATH | sed s#[^:]*/scripts:## if [ $buildpseudo = "1" ]; then echo "Pseudo is not present but is required, building this first before the main build" bitbake pseudo-native tar-replacement-native -c populate_sysroot ret=$? if [ "$ret" != "0" ]; then exit 1 fi PSEUDOBINDIR=bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2 ret=$? if [ "$ret" != "0" ]; then exit 1 fi echo $PSEUDOBINDIR > $BUILDDIR/pseudodone # This needs to exist in case pseudo has to log somewhere mkdir -p $PSEUDOBINDIR/../../var/pseudo fi BITBAKE=which bitbake export PATH=$OLDPATH if [ $needpseudo = "1" ]; then PSEUDOBINDIR=cat $BUILDDIR/pseudodone PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@ else $BITBAKE $@ fi ret=$? exit $ret