summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorScott Garman <scott.a.garman@intel.com>2010-09-28 18:58:33 -0700
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-07 19:52:32 +0100
commit62625d0ca006153169efc3378ad2d30c30e12612 (patch)
treed557f7fff2b59438544552a21c77eed7544cdc75 /scripts
parentfcbd67c047f02052cc87f2d0dcbfde83a23921bd (diff)
downloadpoky-62625d0ca006153169efc3378ad2d30c30e12612.tar.gz
poky-qemu-internal: use lockfile-progs for network interface locking
The 'lockfile' utility originally used comes from the procmail package, which users shouldn't have to install. This uses the more general lockfile-progs utilities to acheive the same end. This fixes [BUGID #389] Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/poky-qemu-internal25
1 files changed, 20 insertions, 5 deletions
diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal
index c65e0f1de2..c3720d9ce2 100755
--- a/scripts/poky-qemu-internal
+++ b/scripts/poky-qemu-internal
@@ -55,6 +55,13 @@ QEMUIFDOWN=`which poky-qemu-ifdown`
55 55
56NFSRUNNING="false" 56NFSRUNNING="false"
57 57
58LOCKUTIL=`which lockfile-create`
59if [ -z "$LOCKUTIL" ]; then
60 echo "Error: Unable to find the lockfile-create utility"
61 echo "On Ubuntu systems this is included in the lockfile-progs package"
62 return
63fi
64
58LOCKDIR="/tmp/qemu-tap-locks" 65LOCKDIR="/tmp/qemu-tap-locks"
59[ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR 66[ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR
60 67
@@ -63,10 +70,14 @@ TAP=""
63LOCKFILE="" 70LOCKFILE=""
64for tap in $POSSIBLE; do 71for tap in $POSSIBLE; do
65 LOCKFILE="$LOCKDIR/$tap" 72 LOCKFILE="$LOCKDIR/$tap"
66 if lockfile -2 -r 1 $LOCKFILE; then 73 echo "Acquiring lockfile for $tap..."
74 if lockfile-create --use-pid -r 1 $LOCKFILE; then
75 # the --use-pid option to lockfile-create will give use
76 # the subshell's pid, so override it with the shell's pid:
77 echo $$ > $LOCKFILE.lock
67 TAP=$tap 78 TAP=$tap
68 break; 79 break
69 fi 80 fi
70done 81done
71 82
72if [ "$TAP" = "" ]; then 83if [ "$TAP" = "" ]; then
@@ -79,7 +90,11 @@ if [ "$TAP" = "" ]; then
79 return 90 return
80 fi 91 fi
81 LOCKFILE="$LOCKDIR/$tap" 92 LOCKFILE="$LOCKDIR/$tap"
82 if lockfile $LOCKFILE; then 93 echo "Acquiring lockfile for $tap..."
94 if lockfile-create --use-pid -r 1 $LOCKFILE; then
95 # the --use-pid option to lockfile-create will give us
96 # the subshell's pid, so override it with the shell's pid:
97 echo $$ > $LOCKFILE.lock
83 TAP=$tap 98 TAP=$tap
84 fi 99 fi
85else 100else
@@ -91,7 +106,7 @@ release_lock() {
91 $QEMUIFDOWN $TAP $POKY_NATIVE_SYSROOT 106 $QEMUIFDOWN $TAP $POKY_NATIVE_SYSROOT
92 else 107 else
93 echo "Releasing lockfile of preconfigured tap device '$TAP'" 108 echo "Releasing lockfile of preconfigured tap device '$TAP'"
94 rm -f $LOCKFILE 109 lockfile-remove $LOCKFILE
95 fi 110 fi
96 111
97 if [ "$NFSRUNNING" = "true" ]; then 112 if [ "$NFSRUNNING" = "true" ]; then