From 92e40ec8599d567f3907837c616b83e089c2b544 Mon Sep 17 00:00:00 2001 From: Peter Seebach Date: Mon, 27 Aug 2012 13:32:30 -0500 Subject: runqemu-export-rootfs and friends: don't put pseudo db in target fs In a few places, we have scripts which use /var/pseudo for the pseudo state directory controlling a given filesystem. This seems possibly risky because it means that stuff running under qemu or whatnot could wipe out the data being used to handle that rootfs. Move this to: /../$(basename_rootfs).pseudo_state to avoid problems. This also solves at least one case (not directly hit by yocto's tree) wherein you could end up trying to remove a rootfs while pseudo was using a database inside that rootfs, and thus the remove would fail. (From OE-Core rev: aa5d6bd006d3b4eede21d8987451876ed3385ab8) Signed-off-by: Peter Seebach Signed-off-by: Richard Purdie --- scripts/runqemu-export-rootfs | 2 +- scripts/runqemu-extract-sdk | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'scripts') diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs index f8213ba4ef..3c77dd74cd 100755 --- a/scripts/runqemu-export-rootfs +++ b/scripts/runqemu-export-rootfs @@ -68,7 +68,7 @@ NFSPID=~/.runqemu-sdk/nfs$NFS_INSTANCE.pid MOUNTPID=~/.runqemu-sdk/mount$NFS_INSTANCE.pid PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr" -PSEUDO_LOCALSTATEDIR="$NFS_EXPORT_DIR/var/pseudo" +PSEUDO_LOCALSTATEDIR="$NFS_EXPORT_DIR/../$(basename $NFS_EXPORT_DIR).pseudo_state" export PSEUDO_LOCALSTATEDIR if [ ! -d "$PSEUDO_LOCALSTATEDIR" ]; then diff --git a/scripts/runqemu-extract-sdk b/scripts/runqemu-extract-sdk index 4b5247597f..509af66216 100755 --- a/scripts/runqemu-extract-sdk +++ b/scripts/runqemu-extract-sdk @@ -73,15 +73,18 @@ if [ ! -d "$SDK_ROOTFS_DIR" ]; then mkdir -p "$SDK_ROOTFS_DIR" fi -if [ -e "$SDK_ROOTFS_DIR/var/pseudo" ]; then - echo "Error: $SDK_ROOTFS_DIR/var/pseudo already exists!" - echo "Please delete the entire rootfs tree manually if this is really what you want" +pseudo_state_dir="$SDK_ROOTFS_DIR/../$(basename "$SDK_ROOTFS_DIR").pseudo_state" + +if [ -e "$pseudo_state_dir" ]; then + echo "Error: $pseudo_state_dir already exists!" + echo "Please delete the rootfs tree and pseudo directory manually" + echo "if this is really what you want." exit 1 fi -mkdir -p "$SDK_ROOTFS_DIR/var/pseudo" -touch "$SDK_ROOTFS_DIR/var/pseudo/pseudo.pid" -PSEUDO_LOCALSTATEDIR="$SDK_ROOTFS_DIR/var/pseudo" +mkdir -p "$pseudo_state_dir" +touch "$pseudo_state_dir/pseudo.pid" +PSEUDO_LOCALSTATEDIR="$pseudo_state_dir" export PSEUDO_LOCALSTATEDIR echo "Extracting rootfs tarball using pseudo..." -- cgit v1.2.3-54-g00ecf