All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] runqemu: Use OE_TMPDIR
@ 2012-05-03 17:12 Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 2/6] runqemu: use modern, single-char name of test(1) Bernhard Reutner-Fischer
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

The error message erroneously talked about TMPDIR.
Just use OE_TMPDIR everywhere to make the name of the variable obvious.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu |   27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index caabf61..7c2c4b3 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -55,11 +55,6 @@ SCRIPT_QEMU_OPT=""
 SCRIPT_QEMU_EXTRA_OPT=""
 SCRIPT_KERNEL_OPT=""
 
-# Don't use TMPDIR from the external environment, it may be a distro
-# variable pointing to /tmp (e.g. within X on OpenSUSE)
-# Instead, use OE_TMPDIR for passing this in externally.
-TMPDIR="$OE_TMPDIR"
-
 # Determine whether the file is a kernel or QEMU image, and set the
 # appropriate variables
 process_filename() {
@@ -273,8 +268,8 @@ SPITZ_DEFAULT_KERNEL=zImage-spitz.bin
 SPITZ_DEFAULT_FSTYPE=ext3
 
 setup_tmpdir() {
-    if [ -z "$TMPDIR" ]; then
-        # Try to get TMPDIR from bitbake
+    if [ -z "$OE_TMPDIR" ]; then
+        # Try to get OE_TMPDIR from bitbake
         type -P bitbake &>/dev/null || {
             echo "In order for this script to dynamically infer paths";
             echo "to kernels or filesystem images, you either need";
@@ -282,11 +277,11 @@ setup_tmpdir() {
             echo "before running this script" >&2;
             exit 1; }
 
-        # We have bitbake in PATH, get TMPDIR from bitbake
-        TMPDIR=`bitbake -e | grep ^TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
-        if [ -z "$TMPDIR" ]; then
+        # We have bitbake in PATH, get OE_TMPDIR from bitbake
+        OE_TMPDIR=`bitbake -e | grep ^TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
+        if [ -z "$OE_TMPDIR" ]; then
             echo "Error: this script needs to be run from your build directory,"
-            echo "or you need to explicitly set TMPDIR in your environment"
+            echo "or you need to explicitly set OE_TMPDIR in your environment"
             exit 1
         fi
     fi
@@ -303,7 +298,7 @@ setup_sysroot() {
         BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
         BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
 
-        OECORE_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
+        OECORE_NATIVE_SYSROOT=$OE_TMPDIR/sysroots/$BUILD_SYS
     fi 
 }
 
@@ -348,7 +343,7 @@ fi
 if [ -z "$KERNEL" ]; then
     setup_tmpdir
     eval kernel_file=\$${machine2}_DEFAULT_KERNEL
-    KERNEL=$TMPDIR/deploy/images/$kernel_file
+    KERNEL=$OE_TMPDIR/deploy/images/$kernel_file
 
     if [ -z "$KERNEL" ]; then
         echo "Error: Unable to determine default kernel for MACHINE [$MACHINE]"
@@ -372,13 +367,13 @@ fi
 # core-image-sato
 if [ "$LAZY_ROOTFS" = "true" ]; then
     setup_tmpdir
-    echo "Assuming $ROOTFS really means $TMPDIR/deploy/images/$ROOTFS-$MACHINE.$FSTYPE"
-    ROOTFS=$TMPDIR/deploy/images/$ROOTFS-$MACHINE.$FSTYPE
+    echo "Assuming $ROOTFS really means $OE_TMPDIR/deploy/images/$ROOTFS-$MACHINE.$FSTYPE"
+    ROOTFS=$OE_TMPDIR/deploy/images/$ROOTFS-$MACHINE.$FSTYPE
 fi
 
 if [ -z "$ROOTFS" ]; then
     setup_tmpdir
-    T=$TMPDIR/deploy/images
+    T=$OE_TMPDIR/deploy/images
     eval rootfs_list=\$${machine2}_DEFAULT_ROOTFS
     findimage $T $MACHINE $FSTYPE
 
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/6] runqemu: use modern, single-char name of test(1)
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
@ 2012-05-03 17:12 ` Bernhard Reutner-Fischer
  2012-05-07 23:25   ` Joshua Lock
  2012-05-03 17:12 ` [PATCH 3/6] runqemu: simplify process_filename() Bernhard Reutner-Fischer
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

I do not have "[[", just "[". Be gentle to users of legacy-free setups,
also by using '=' instead of the double notation.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu |   46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 7c2c4b3..18fd691 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -70,10 +70,10 @@ process_filename() {
             echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
             usage
         fi
-    elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
-            "x$EXT" == "xjffs2" || "x$EXT" == "xbtrfs" ]]; then
+    elif [ "x$EXT" = "xext2" -o "x$EXT" = "xext3" -o \
+            "x$EXT" = "xjffs2" -o "x$EXT" = "xbtrfs" ]; then
         # A file ending in a supportted fs type is a rootfs image
-        if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then
+        if [ -z "$FSTYPE" -o "$FSTYPE" = "$EXT" ]; then
             FSTYPE=$EXT
             ROOTFS=$filename
         else
@@ -102,7 +102,7 @@ while [ $i -le $# ]; do
             fi
             ;;
         "ext2" | "ext3" | "jffs2" | "nfs" | "btrfs")
-            if [[ -z "$FSTYPE" || "$FSTYPE" == "$arg" ]]; then
+            if [ -z "$FSTYPE" -o "$FSTYPE" = "$arg" ]; then
                 FSTYPE=$arg
             else
                 echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
@@ -143,7 +143,7 @@ while [ $i -le $# ]; do
             # to use simplified options instead
             serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'`
             kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'`
-            if [[ ! -z "$serial_option" || ! -z "$kvm_option" ]]; then
+            if [ ! -z "$serial_option" -o ! -z "$kvm_option" ]; then
                 echo "Error: Please use simplified serial or kvm options instead"
                 usage
             fi
@@ -152,7 +152,7 @@ while [ $i -le $# ]; do
             SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT ${arg##bootparams=}"
             ;;
         "audio")
-            if [[ "x$MACHINE" == "xqemux86" || "x$MACHINE" == "xqemux86-64" ]]; then
+            if [ "x$MACHINE" = "xqemux86" -o "x$MACHINE" = "xqemux86-64" ]; then
                 echo "Enable audio on qemu. Pls. install snd_intel8x0 or snd_ens1370 driver in linux guest.";
                 QEMU_AUDIO_DRV="alsa"
                 SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -soundhw ac97,es1370"
@@ -166,7 +166,7 @@ while [ $i -le $# ]; do
             # A directory name is an nfs rootfs
             if [ -d "$arg" ]; then
                 echo "Assuming $arg is an nfs rootfs"
-                if [[ -z "$FSTYPE" || "$FSTYPE" == "nfs" ]]; then
+                if [ -z "$FSTYPE" -o "$FSTYPE" = "nfs" ]; then
                     FSTYPE=nfs
                 else
                     echo "Error: conflicting FSTYPE types [$arg] and nfs"
@@ -200,13 +200,13 @@ fi
 
 YOCTO_KVM_WIKI="https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu"
 # Detect KVM configuration
-if [[ "x$KVM_ENABLED" == "xyes" ]]; then
-    if [[ -z "$KVM_CAPABLE" ]]; then
+if [ "x$KVM_ENABLED" = "xyes" ]; then
+    if [ -z "$KVM_CAPABLE" ]; then
         echo "You are tring to enable KVM on cpu without VT support. Remove kvm from the command-line, or refer";
         echo "$YOCTO_KVM_WIKI";
         exit 1;
     fi
-    if [[ "x$MACHINE" != "xqemux86" && "x$MACHINE" != "xqemux86-64" ]]; then
+    if [ "x$MACHINE" != "xqemux86" -a "x$MACHINE" != "xqemux86-64" ]; then
         echo "KVM only support x86 & x86-64. Remove kvm from the command-line";
         exit 1;
     fi
@@ -225,11 +225,11 @@ if [[ "x$KVM_ENABLED" == "xyes" ]]; then
 fi
 
 # Report errors for missing combinations of options
-if [[ -z "$MACHINE" && -z "$KERNEL" ]]; then
+if [ -z "$MACHINE" -a -z "$KERNEL" ]; then
     echo "Error: you must specify at least a MACHINE or KERNEL argument"
     usage
 fi
-if [[ "$FSTYPE" == "nfs" && -z "$ROOTFS" ]]; then
+if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
     echo "Error: NFS booting without an explicit ROOTFS path is not yet supported"
     usage
 fi
@@ -313,11 +313,11 @@ findimage() {
     # recently created one is the one we most likely want to boot.
     filenames=`ls -t $where/*-image*$machine.$extension 2>/dev/null | xargs`
     for name in $filenames; do
-        if [[ "$name" =~ core-image-sato-sdk ||
-              "$name" =~ core-image-sato     ||
-              "$name" =~ core-image-lsb      ||
-              "$name" =~ core-image-basic    ||
-              "$name" =~ core-image-minimal ]]; then
+        if [ "$name" =~ core-image-sato-sdk -o \
+              "$name" =~ core-image-sato     -o \
+              "$name" =~ core-image-lsb      -o \
+              "$name" =~ core-image-basic    -o \
+              "$name" =~ core-image-minimal ]; then
             ROOTFS=$name
             return
         fi	
@@ -327,11 +327,11 @@ findimage() {
     exit 1
 }
 
-if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
+if [ -e "$ROOTFS" -a -z "$FSTYPE" ]; then
     # Extract the filename extension
     EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
-    if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" || 
-          "x$EXT" == "xjffs2" || "x$EXT" == "xbtrfs" ]]; then
+    if [ "x$EXT" = "xext2" -o "x$EXT" = "xext3" -o \
+          "x$EXT" = "xjffs2" -o "x$EXT" = "xbtrfs" ]; then
         FSTYPE=$EXT
     else
         echo "Note: Unable to determine filesystem extension for $ROOTFS"
@@ -396,9 +396,9 @@ setup_sysroot
 # We can't run without a libGL.so
 libgl='no'
 
-test -e /usr/lib/libGL.so -a -e /usr/lib/libGLU.so && libgl='yes'
-test -e /usr/lib64/libGL.so -a -e /usr/lib64/libGLU.so && libgl='yes'
-test -e /usr/lib/*-linux-gnu/libGL.so -a -e /usr/lib/*-linux-gnu/libGLU.so && libgl='yes'
+[ -e /usr/lib/libGL.so -a -e /usr/lib/libGLU.so ] && libgl='yes'
+[ -e /usr/lib64/libGL.so -a -e /usr/lib64/libGLU.so ] && libgl='yes'
+[ -e /usr/lib/*-linux-gnu/libGL.so -a -e /usr/lib/*-linux-gnu/libGLU.so ] && libgl='yes'
 
 if [ "$libgl" != 'yes' ]; then
     echo "You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator.
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/6] runqemu: simplify process_filename()
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 2/6] runqemu: use modern, single-char name of test(1) Bernhard Reutner-Fischer
@ 2012-05-03 17:12 ` Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 4/6] runqemu: add and use error() Bernhard Reutner-Fischer
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu |   47 +++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 18fd691..dfa7f4b 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -62,28 +62,31 @@ process_filename() {
 
     # Extract the filename extension
     EXT=`echo $filename | awk -F . '{ print \$NF }'`
-    # A file ending in .bin is a kernel
-    if [ "x$EXT" = "xbin" ]; then
-        if [ -z "$KERNEL" ]; then
-            KERNEL=$filename
-        else
-            echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
-            usage
-        fi
-    elif [ "x$EXT" = "xext2" -o "x$EXT" = "xext3" -o \
-            "x$EXT" = "xjffs2" -o "x$EXT" = "xbtrfs" ]; then
-        # A file ending in a supportted fs type is a rootfs image
-        if [ -z "$FSTYPE" -o "$FSTYPE" = "$EXT" ]; then
-            FSTYPE=$EXT
-            ROOTFS=$filename
-        else
-            echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]"
-            usage
-        fi
-    else
-       echo "Error: unknown file arg [$filename]"
-       usage
-    fi
+    case /$EXT/ in
+	/bin/)
+		# A file ending in .bin is a kernel
+		if [ -z "$KERNEL" ]; then
+		    KERNEL=$filename
+		else
+		    echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
+		    usage
+		fi
+		;;
+	/ext[234]/|/jffs2/|/btrfs/)
+		# A file ending in a supportted fs type is a rootfs image
+		if [ -z "$FSTYPE" -o "$FSTYPE" = "$EXT" ]; then
+		    FSTYPE=$EXT
+		    ROOTFS=$filename
+		else
+		    echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]"
+		    usage
+		fi
+		;;
+	*)
+		echo "Error: unknown file arg [$filename]"
+		usage
+		;;
+    esac
 }
 
 # Parse command line args without requiring specific ordering. It's a
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/6] runqemu: add and use error()
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 2/6] runqemu: use modern, single-char name of test(1) Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 3/6] runqemu: simplify process_filename() Bernhard Reutner-Fischer
@ 2012-05-03 17:12 ` Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 5/6] runqemu: minor tweaks Bernhard Reutner-Fischer
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu |   71 ++++++++++++++++++++-----------------------------------
 1 file changed, 25 insertions(+), 46 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index dfa7f4b..231b1bf 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -46,6 +46,11 @@ if [ "x$1" = "x" ]; then
     usage
 fi
 
+error() {
+    echo "Error: "$*
+    usage
+}
+
 MACHINE=${MACHINE:=""}
 KERNEL=""
 FSTYPE=""
@@ -65,12 +70,8 @@ process_filename() {
     case /$EXT/ in
 	/bin/)
 		# A file ending in .bin is a kernel
-		if [ -z "$KERNEL" ]; then
-		    KERNEL=$filename
-		else
-		    echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
-		    usage
-		fi
+		[ -z "$KERNEL" ] && KERNEL=$filename || \
+		    error "conflicting KERNEL args [$KERNEL] and [$filename]"
 		;;
 	/ext[234]/|/jffs2/|/btrfs/)
 		# A file ending in a supportted fs type is a rootfs image
@@ -78,13 +79,11 @@ process_filename() {
 		    FSTYPE=$EXT
 		    ROOTFS=$filename
 		else
-		    echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]"
-		    usage
+		    error "conflicting FSTYPE types [$FSTYPE] and [$EXT]"
 		fi
 		;;
 	*)
-		echo "Error: unknown file arg [$filename]"
-		usage
+		error "unknown file arg [$filename]"
 		;;
     esac
 }
@@ -97,20 +96,12 @@ while [ $i -le $# ]; do
     arg=${!i}
     case $arg in
         "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc")
-            if [ -z "$MACHINE" ]; then
-                MACHINE=$arg
-            else
-                echo "Error: conflicting MACHINE types [$MACHINE] and [$arg]"
-                usage
-            fi
+            [ -z "$MACHINE" ] && MACHINE=$arg || \
+                error "conflicting MACHINE types [$MACHINE] and [$arg]"
             ;;
         "ext2" | "ext3" | "jffs2" | "nfs" | "btrfs")
-            if [ -z "$FSTYPE" -o "$FSTYPE" = "$arg" ]; then
-                FSTYPE=$arg
-            else
-                echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
-                usage
-            fi
+            [ -z "$FSTYPE" -o "$FSTYPE" = "$arg" ] && FSTYPE=$arg || \
+                error "conflicting FSTYPE types [$FSTYPE] and [$arg]"
             ;;
         *-image*)
             if [ -z "$ROOTFS" ]; then
@@ -127,8 +118,7 @@ while [ $i -le $# ]; do
                     LAZY_ROOTFS="true"
                 fi
             else
-                echo "Error: conflicting ROOTFS args [$ROOTFS] and [$arg]"
-                usage
+                error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
             fi
             ;;
         "nographic")
@@ -146,10 +136,8 @@ while [ $i -le $# ]; do
             # to use simplified options instead
             serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'`
             kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'`
-            if [ ! -z "$serial_option" -o ! -z "$kvm_option" ]; then
-                echo "Error: Please use simplified serial or kvm options instead"
-                usage
-            fi
+            [ ! -z "$serial_option" -o ! -z "$kvm_option" ] && \
+                error "Please use simplified serial or kvm options instead"
             ;;
         "bootparams="*)
             SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT ${arg##bootparams=}"
@@ -172,21 +160,18 @@ while [ $i -le $# ]; do
                 if [ -z "$FSTYPE" -o "$FSTYPE" = "nfs" ]; then
                     FSTYPE=nfs
                 else
-                    echo "Error: conflicting FSTYPE types [$arg] and nfs"
-                    usage
+                    error "conflicting FSTYPE types [$arg] and nfs"
                 fi
 
                 if [ -z "$ROOTFS" ]; then
                     ROOTFS=$arg
                 else
-                    echo "Error: conflicting ROOTFS args [$ROOTFS] and [$arg]"
-                    usage
+                    error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
                 fi
             elif [ -f "$arg" ]; then
                 process_filename $arg
             else
-                echo "Error: unable to classify arg [$arg]"
-                usage
+                error "unable to classify arg [$arg]"
             fi
             ;;
     esac
@@ -229,19 +214,16 @@ fi
 
 # Report errors for missing combinations of options
 if [ -z "$MACHINE" -a -z "$KERNEL" ]; then
-    echo "Error: you must specify at least a MACHINE or KERNEL argument"
-    usage
+    error "you must specify at least a MACHINE or KERNEL argument"
 fi
 if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
-    echo "Error: NFS booting without an explicit ROOTFS path is not yet supported"
-    usage
+    error "NFS booting without an explicit ROOTFS path is not yet supported"
 fi
 
 if [ -z "$MACHINE" ]; then
     MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'`
     if [ -z "$MACHINE" ]; then
-        echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]"
-        usage
+        error "Unable to set MACHINE from kernel filename [$KERNEL]"
     fi
     echo "Set MACHINE to [$MACHINE] based on kernel [$KERNEL]"
 fi
@@ -349,8 +331,7 @@ if [ -z "$KERNEL" ]; then
     KERNEL=$OE_TMPDIR/deploy/images/$kernel_file
 
     if [ -z "$KERNEL" ]; then
-        echo "Error: Unable to determine default kernel for MACHINE [$MACHINE]"
-        usage
+        error "Unable to determine default kernel for MACHINE [$MACHINE]"
     fi
 fi
 # KERNEL is now set for all cases
@@ -359,8 +340,7 @@ if [ -z "$FSTYPE" ]; then
     eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
 
     if [ -z "$FSTYPE" ]; then
-        echo "Error: Unable to determine default fstype for MACHINE [$MACHINE]"
-        usage
+        error "Unable to determine default fstype for MACHINE [$MACHINE]"
     fi
 fi
 
@@ -381,8 +361,7 @@ if [ -z "$ROOTFS" ]; then
     findimage $T $MACHINE $FSTYPE
 
     if [ -z "$ROOTFS" ]; then
-        echo "Error: Unable to determine default rootfs for MACHINE [$MACHINE]"
-        usage
+        error "Unable to determine default rootfs for MACHINE [$MACHINE]"
     fi
 fi
 # ROOTFS is now set for all cases
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/6] runqemu: minor tweaks
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
                   ` (2 preceding siblings ...)
  2012-05-03 17:12 ` [PATCH 4/6] runqemu: add and use error() Bernhard Reutner-Fischer
@ 2012-05-03 17:12 ` Bernhard Reutner-Fischer
  2012-05-03 17:12 ` [PATCH 6/6] runqemu: be sh neutral Bernhard Reutner-Fischer
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu |   40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 231b1bf..000d93a 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -104,21 +104,19 @@ while [ $i -le $# ]; do
                 error "conflicting FSTYPE types [$FSTYPE] and [$arg]"
             ;;
         *-image*)
-            if [ -z "$ROOTFS" ]; then
-                if [ -f "$arg" ]; then
-                    process_filename $arg
-                elif [ -d "$arg" ]; then
-                    # Handle the case where the nfsroot dir has -image-
-                    # in the pathname
-                    echo "Assuming $arg is an nfs rootfs"
-                    FSTYPE=nfs
-                    ROOTFS=$arg
-                else
-                    ROOTFS=$arg
-                    LAZY_ROOTFS="true"
-                fi
+            [ -z "$ROOTFS" ] || \
+		error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
+            if [ -f "$arg" ]; then
+                process_filename $arg
+            elif [ -d "$arg" ]; then
+                # Handle the case where the nfsroot dir has -image-
+                # in the pathname
+                echo "Assuming $arg is an nfs rootfs"
+                FSTYPE=nfs
+                ROOTFS=$arg
             else
-                error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
+                ROOTFS=$arg
+                LAZY_ROOTFS="true"
             fi
             ;;
         "nographic")
@@ -144,14 +142,15 @@ while [ $i -le $# ]; do
             ;;
         "audio")
             if [ "x$MACHINE" = "xqemux86" -o "x$MACHINE" = "xqemux86-64" ]; then
-                echo "Enable audio on qemu. Pls. install snd_intel8x0 or snd_ens1370 driver in linux guest.";
+                echo "Enabling audio in qemu."
+                echo "Please install snd_intel8x0 or snd_ens1370 driver in linux guest."
                 QEMU_AUDIO_DRV="alsa"
                 SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -soundhw ac97,es1370"
             fi
             ;;
         "kvm")
             KVM_ENABLED="yes"
-            KVM_CAPABLE=`grep 'vmx\|smx' /proc/cpuinfo`
+            KVM_CAPABLE=`grep -q 'vmx\|smx' /proc/cpuinfo && echo 1`
             ;;
         *)
             # A directory name is an nfs rootfs
@@ -190,7 +189,8 @@ YOCTO_KVM_WIKI="https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qe
 # Detect KVM configuration
 if [ "x$KVM_ENABLED" = "xyes" ]; then
     if [ -z "$KVM_CAPABLE" ]; then
-        echo "You are tring to enable KVM on cpu without VT support. Remove kvm from the command-line, or refer";
+        echo "You are trying to enable KVM on a cpu without VT support."
+        echo "Remove kvm from the command-line, or refer"
         echo "$YOCTO_KVM_WIKI";
         exit 1;
     fi
@@ -199,14 +199,16 @@ if [ "x$KVM_ENABLED" = "xyes" ]; then
         exit 1;
     fi
     if [ ! -e /dev/kvm ]; then
-        echo "Missing KVM device. Have you inserted kvm modules? Pls. refer";
+        echo "Missing KVM device. Have you inserted kvm modules?"
+        echo "For further help see"
         echo "$YOCTO_KVM_WIKI";
         exit 1;
     fi
     if 9<>/dev/kvm ; then
         SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm"
     else
-        echo "You have no rights on /dev/kvm. Pls. change the owndership as described at";
+        echo "You have no rights on /dev/kvm."
+        echo "Please change the ownership of this file as described at"
         echo "$YOCTO_KVM_WIKI";
         exit 1;
     fi
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 6/6] runqemu: be sh neutral
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
                   ` (3 preceding siblings ...)
  2012-05-03 17:12 ` [PATCH 5/6] runqemu: minor tweaks Bernhard Reutner-Fischer
@ 2012-05-03 17:12 ` Bernhard Reutner-Fischer
  2012-05-04 21:18 ` [PATCH 1/6] runqemu: Use OE_TMPDIR Scott Garman
  2012-05-07 23:56 ` Scott Garman
  6 siblings, 0 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-03 17:12 UTC (permalink / raw)
  To: openembedded-core

Now runs with dash and busybox' ash as well as with bash

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu          |   13 ++++++++-----
 scripts/runqemu-internal |   16 ++++++++--------
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 000d93a..305e46a 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -91,10 +91,9 @@ process_filename() {
 # Parse command line args without requiring specific ordering. It's a
 # bit more complex, but offers a great user experience.
 KVM_ENABLED="no"
-i=1
-while [ $i -le $# ]; do
-    arg=${!i}
-    case $arg in
+while true; do
+    arg=${1}
+    case "$arg" in
         "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc")
             [ -z "$MACHINE" ] && MACHINE=$arg || \
                 error "conflicting MACHINE types [$MACHINE] and [$arg]"
@@ -152,6 +151,7 @@ while [ $i -le $# ]; do
             KVM_ENABLED="yes"
             KVM_CAPABLE=`grep -q 'vmx\|smx' /proc/cpuinfo && echo 1`
             ;;
+        "") break ;;
         *)
             # A directory name is an nfs rootfs
             if [ -d "$arg" ]; then
@@ -174,7 +174,7 @@ while [ $i -le $# ]; do
             fi
             ;;
     esac
-    i=$((i + 1))
+    shift
 done
 
 if [ ! -c /dev/net/tun ] ; then
@@ -391,6 +391,9 @@ if [ "$libgl" != 'yes' ]; then
     exit 1;
 fi
 
+INTERNAL_SCRIPT="$0-internal"
+if [ ! -f "$INTERNAL_SCRIPT" -o ! -r "$INTERNAL_SCRIPT" ]; then
 INTERNAL_SCRIPT=`which runqemu-internal`
+fi
 
 . $INTERNAL_SCRIPT
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 1831a09..80a6d3c 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -69,7 +69,7 @@ QEMU_MEMORY="$mem_size"M
 
 # Bug 433: qemuarm cannot use > 256 MB RAM
 if [ "$MACHINE" = "qemuarm" ]; then
-    if [[ -z "$mem_size" || $mem_size -gt 256 ]]; then
+    if [ -z "$mem_size" -o $mem_size -gt 256 ]; then
         echo "WARNING: qemuarm does not support > 256M of RAM."
         echo "Changing QEMU_MEMORY to default of 256M."
         QEMU_MEMORY="256M"
@@ -111,7 +111,7 @@ acquire_lock() {
 
     if [ -e "$lockfile.lock" ]; then
         # Check that the lockfile is not stale
-        ps=`ps -ewwo pid | grep $(cat $lockfile.lock)`
+        ps=`ps -eo pid | grep $(cat $lockfile.lock)`
         if [ -z "$ps" ]; then
             echo "WARNING: Stale lock file detected, deleting $lockfile.lock."
             rm -f $lockfile.lock
@@ -211,8 +211,9 @@ cleanup() {
     stty sane
 }
 
-n1=$[ (`echo $TAP | sed 's/tap//'` * 2) + 1 ]
-n2=$[ (`echo $TAP | sed 's/tap//'` * 2) + 2 ]
+n0=$(echo $TAP | sed 's/tap//')
+n1=$(($n0 * 2 + 1))
+n2=$(($n1 + 1))
 
 KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0"
 QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no"
@@ -436,7 +437,7 @@ if [ ! -x "$QEMUBIN" ]; then
     return
 fi
 
-function _quit() {
+do_quit() {
     if [ -n "$PIDFILE" ]; then
         #echo kill `cat $PIDFILE`
         kill `cat $PIDFILE`
@@ -448,7 +449,7 @@ function _quit() {
 DISTCCD=`which distccd 2> /dev/null`
 PIDFILE=""
 
-trap _quit INT TERM QUIT
+trap do_quit INT TERM QUIT
 
 if [ -x "$DISTCCD" ]; then
     echo "Starting distccd..."
@@ -475,7 +476,7 @@ if grep -i ubuntu /etc/lsb-release &> /dev/null
 then
     # precede nvidia's driver on Ubuntu 10
     UBUNTU_MAIN_VERSION=`cat /etc/lsb-release |grep DISTRIB_RELEASE |cut -d=  -f 2| cut -d. -f 1`
-    if [ $UBUNTU_MAIN_VERSION -eq 10 ];
+    if [ "$UBUNTU_MAIN_VERSION" = "10" ];
     then
         GL_PATH=""
         if test -e /usr/lib/libGL.so
@@ -501,4 +502,3 @@ LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -n
 cleanup
 
 trap - INT TERM QUIT
-return
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
                   ` (4 preceding siblings ...)
  2012-05-03 17:12 ` [PATCH 6/6] runqemu: be sh neutral Bernhard Reutner-Fischer
@ 2012-05-04 21:18 ` Scott Garman
  2012-05-07 23:56 ` Scott Garman
  6 siblings, 0 replies; 17+ messages in thread
From: Scott Garman @ 2012-05-04 21:18 UTC (permalink / raw)
  To: openembedded-core

On 05/03/2012 10:12 AM, Bernhard Reutner-Fischer wrote:
> The error message erroneously talked about TMPDIR.
> Just use OE_TMPDIR everywhere to make the name of the variable obvious.
>
> Signed-off-by: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>

Bernhard, these are great improvements - thanks for refactoring this!

Full series Acked-by: Scott Garman <scott.a.garman@intel.com>

Scott

-- 
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] runqemu: use modern, single-char name of test(1)
  2012-05-03 17:12 ` [PATCH 2/6] runqemu: use modern, single-char name of test(1) Bernhard Reutner-Fischer
@ 2012-05-07 23:25   ` Joshua Lock
  2012-05-15 19:59     ` Bernhard Reutner-Fischer
  0 siblings, 1 reply; 17+ messages in thread
From: Joshua Lock @ 2012-05-07 23:25 UTC (permalink / raw)
  To: openembedded-core

On 03/05/12 10:12, Bernhard Reutner-Fischer wrote:
> @@ -313,11 +313,11 @@ findimage() {
>       # recently created one is the one we most likely want to boot.
>       filenames=`ls -t $where/*-image*$machine.$extension 2>/dev/null | xargs`
>       for name in $filenames; do
> -        if [[ "$name" =~ core-image-sato-sdk ||
> -              "$name" =~ core-image-sato     ||
> -              "$name" =~ core-image-lsb      ||
> -              "$name" =~ core-image-basic    ||
> -              "$name" =~ core-image-minimal ]]; then
> +        if [ "$name" =~ core-image-sato-sdk -o \
> +              "$name" =~ core-image-sato     -o \
> +              "$name" =~ core-image-lsb      -o \
> +              "$name" =~ core-image-basic    -o \
> +              "$name" =~ core-image-minimal ]; then
>               ROOTFS=$name
>               return
>           fi	

This change broke findimage() for me on both bash and dash. Reproducer 
is 'runqemu qemux86'.

Under bash I get:

/srv/yocto/poky/scripts/runqemu: line 303: [: too many arguments

Undoing this change fixes things for me. Note: this change doesn't 
revert cleanly.

I've filed this as Yocto #2433:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=2433

As an aside, when trying (unsuccessfully) to figure out a fix for this I 
ran across Ubuntu's page on dash[1] which indicates changing || for -o 
isn't right. Anyone have a strong opinion on that?

Cheers,
Joshua

1. https://wiki.ubuntu.com/DashAsBinSh
-- 
Joshua Lock
         Yocto Project
         Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
                   ` (5 preceding siblings ...)
  2012-05-04 21:18 ` [PATCH 1/6] runqemu: Use OE_TMPDIR Scott Garman
@ 2012-05-07 23:56 ` Scott Garman
  2012-05-08  7:07   ` Peter Seebach
  2012-05-14 22:51   ` Marko Lindqvist
  6 siblings, 2 replies; 17+ messages in thread
From: Scott Garman @ 2012-05-07 23:56 UTC (permalink / raw)
  To: openembedded-core

On 05/03/2012 10:12 AM, Bernhard Reutner-Fischer wrote:
> The error message erroneously talked about TMPDIR.
> Just use OE_TMPDIR everywhere to make the name of the variable obvious.
>
> Signed-off-by: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>

Bernhard,

This change wasn't well-tested and has broken the runqemu script for 
both bash and dash. :(

 From what I can tell, the =~ regex operator is a bashism. It's also one 
that helps a lot with the code readability. So now that we're faced with 
re-writing the script to avoid using that operator, I'm having second 
thoughts about whether the runqemu script really needs to be 
shell-agnostic. The alternative of invoking grep or other commands to 
process the name patterns does not appeal to me.

I can understand why we're trying to ensure our build system doesn't 
require /bin/sh to be bash, but I think support scripts like runqemu 
might be a special case.

What do other people in the community think of this? The runqemu script 
isn't trivial, and it has to run in a lot of different contexts. Should 
we put the time in to make it shell-agnostic, or allow it to require bash?

Scott

-- 
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-07 23:56 ` Scott Garman
@ 2012-05-08  7:07   ` Peter Seebach
  2012-05-14 22:34     ` Mark Hatle
  2012-05-14 22:51   ` Marko Lindqvist
  1 sibling, 1 reply; 17+ messages in thread
From: Peter Seebach @ 2012-05-08  7:07 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer; +Cc: scott.a.garman

On Mon, 7 May 2012 16:56:11 -0700
Scott Garman <scott.a.garman@intel.com> wrote:

>  From what I can tell, the =~ regex operator is a bashism. It's also
> one that helps a lot with the code readability. So now that we're
> faced with re-writing the script to avoid using that operator, I'm
> having second thoughts about whether the runqemu script really needs
> to be shell-agnostic. The alternative of invoking grep or other
> commands to process the name patterns does not appeal to me.
> 
> I can understand why we're trying to ensure our build system doesn't 
> require /bin/sh to be bash, but I think support scripts like runqemu 
> might be a special case.
> 
> What do other people in the community think of this? The runqemu
> script isn't trivial, and it has to run in a lot of different
> contexts. Should we put the time in to make it shell-agnostic, or
> allow it to require bash?

Hmm.  I am honestly not a big fan of the =~, simply because I almost
never remember it, and I can never think whether it's like perl's ~=
or Lua's ~=.  (One is "matches", the other is "is not".)

I tend to write stuff like this as

case $name in
*pat1* | *pat2* | ... )
  # code goes here
  ;;
esac

because that's the natural shell idiom.  It can't do full regex
processing, but we really don't need that here; we just want an
unanchored pattern match.  (And I'm not even sure we *want* a
fully-unanchored match.)  I think the bash [[ ]] thing is one of the
kshisms, but "bash or ksh" is not much better.  :P

From a maintenance standpoint, I like the case construct better
than [[]].  My interest in reading the bash man page to figure out what
some unfamiliar bit of punctuation means this week has declined over
the years.

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-08  7:07   ` Peter Seebach
@ 2012-05-14 22:34     ` Mark Hatle
  2012-05-14 22:40       ` Khem Raj
  0 siblings, 1 reply; 17+ messages in thread
From: Mark Hatle @ 2012-05-14 22:34 UTC (permalink / raw)
  To: openembedded-core

On 5/8/12 2:07 AM, Peter Seebach wrote:
> On Mon, 7 May 2012 16:56:11 -0700
> Scott Garman<scott.a.garman@intel.com>  wrote:
>
>>    From what I can tell, the =~ regex operator is a bashism. It's also
>> one that helps a lot with the code readability. So now that we're
>> faced with re-writing the script to avoid using that operator, I'm
>> having second thoughts about whether the runqemu script really needs
>> to be shell-agnostic. The alternative of invoking grep or other
>> commands to process the name patterns does not appeal to me.
>>
>> I can understand why we're trying to ensure our build system doesn't
>> require /bin/sh to be bash, but I think support scripts like runqemu
>> might be a special case.
>>
>> What do other people in the community think of this? The runqemu
>> script isn't trivial, and it has to run in a lot of different
>> contexts. Should we put the time in to make it shell-agnostic, or
>> allow it to require bash?
>
> Hmm.  I am honestly not a big fan of the =~, simply because I almost
> never remember it, and I can never think whether it's like perl's ~=
> or Lua's ~=.  (One is "matches", the other is "is not".)

It's actually worse then =~ is a bashism, it's a specific version of bash.  I'm 
using bash as my shell, and it simply doesn't work my system.

The following works for me:

--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -300,14 +300,16 @@ findimage() {
      # recently created one is the one we most likely want to boot.
      filenames=`ls -t $where/*-image*$machine.$extension 2>/dev/null | xargs`
      for name in $filenames; do
-        if [ "$name" =~ core-image-sato-sdk -o \
-              "$name" =~ core-image-sato     -o \
-              "$name" =~ core-image-lsb      -o \
-              "$name" =~ core-image-basic    -o \
-              "$name" =~ core-image-minimal ]; then
+       case $name in
+          *core-image-sato-sdk* | \
+          *core-image-sato* | \
+          *core-image-lsb* | \
+          *core-image-basic* | \
+          *core-image-minimal*)
              ROOTFS=$name
              return
-        fi
+           ;;
+       esac
      done

      echo "Couldn't find a $machine rootfs image in $where."


> I tend to write stuff like this as
>
> case $name in
> *pat1* | *pat2* | ... )
>    # code goes here
>    ;;
> esac
>
> because that's the natural shell idiom.  It can't do full regex
> processing, but we really don't need that here; we just want an
> unanchored pattern match.  (And I'm not even sure we *want* a
> fully-unanchored match.)  I think the bash [[ ]] thing is one of the
> kshisms, but "bash or ksh" is not much better.  :P
>
>  From a maintenance standpoint, I like the case construct better
> than [[]].  My interest in reading the bash man page to figure out what
> some unfamiliar bit of punctuation means this week has declined over
> the years.

I agree, besides the =~ doesn't work at all of me..

[mhatle@msp-mhatle-lx2 build-ia32-4]$ bash --version
GNU bash, version 4.1.7(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

that is on FC-13.  (ya, I know it's old.. but it's intentional we support older 
machines.)

--Mark

> -s




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-14 22:34     ` Mark Hatle
@ 2012-05-14 22:40       ` Khem Raj
  0 siblings, 0 replies; 17+ messages in thread
From: Khem Raj @ 2012-05-14 22:40 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, May 14, 2012 at 3:34 PM, Mark Hatle <mark.hatle@windriver.com> wrote:
> --- a/scripts/runqemu
> +++ b/scripts/runqemu
> @@ -300,14 +300,16 @@ findimage() {
>     # recently created one is the one we most likely want to boot.
>     filenames=`ls -t $where/*-image*$machine.$extension 2>/dev/null | xargs`
>     for name in $filenames; do
> -        if [ "$name" =~ core-image-sato-sdk -o \
> -              "$name" =~ core-image-sato     -o \
> -              "$name" =~ core-image-lsb      -o \
> -              "$name" =~ core-image-basic    -o \
> -              "$name" =~ core-image-minimal ]; then
> +       case $name in
> +          *core-image-sato-sdk* | \
> +          *core-image-sato* | \
> +          *core-image-lsb* | \
> +          *core-image-basic* | \
> +          *core-image-minimal*)
>             ROOTFS=$name
>             return
> -        fi
> +           ;;
> +       esac
>     done
>
>     echo "Couldn't find a $machine rootfs image in $where."

thats a better thing can you formulate it into a patch please.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-07 23:56 ` Scott Garman
  2012-05-08  7:07   ` Peter Seebach
@ 2012-05-14 22:51   ` Marko Lindqvist
  2012-05-14 23:15     ` Mark Hatle
  1 sibling, 1 reply; 17+ messages in thread
From: Marko Lindqvist @ 2012-05-14 22:51 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 8 May 2012 02:56, Scott Garman <scott.a.garman@intel.com> wrote:
>
> I can understand why we're trying to ensure our build system doesn't require
> /bin/sh to be bash, but I think support scripts like runqemu might be a
> special case.
>
> What do other people in the community think of this? The runqemu script
> isn't trivial, and it has to run in a lot of different contexts. Should we
> put the time in to make it shell-agnostic, or allow it to require bash?

 1) Do not require /bin/sh to be bash
 2) It's ok, and for "right tool for the job" -reasons often prefered,
to require that development machine has also bash installed.

 So I'm happy with how runqemu currently has #!/bin/bash shebang. It
requires bash to be present, but not necessarily as /bin/sh


 - ML



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] runqemu: Use OE_TMPDIR
  2012-05-14 22:51   ` Marko Lindqvist
@ 2012-05-14 23:15     ` Mark Hatle
  0 siblings, 0 replies; 17+ messages in thread
From: Mark Hatle @ 2012-05-14 23:15 UTC (permalink / raw)
  To: openembedded-core

On 5/14/12 5:51 PM, Marko Lindqvist wrote:
> On 8 May 2012 02:56, Scott Garman<scott.a.garman@intel.com>  wrote:
>>
>> I can understand why we're trying to ensure our build system doesn't require
>> /bin/sh to be bash, but I think support scripts like runqemu might be a
>> special case.
>>
>> What do other people in the community think of this? The runqemu script
>> isn't trivial, and it has to run in a lot of different contexts. Should we
>> put the time in to make it shell-agnostic, or allow it to require bash?
>
>   1) Do not require /bin/sh to be bash
>   2) It's ok, and for "right tool for the job" -reasons often prefered,
> to require that development machine has also bash installed.
>
>   So I'm happy with how runqemu currently has #!/bin/bash shebang. It
> requires bash to be present, but not necessarily as /bin/sh

I don't mind it using bash as long as it has bash-isms.  Note, the recent =~ 
stuff didn't work on my machine, even with bash.

--Mark

>
>   - ML
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] runqemu: use modern, single-char name of test(1)
  2012-05-07 23:25   ` Joshua Lock
@ 2012-05-15 19:59     ` Bernhard Reutner-Fischer
  2012-05-15 20:58       ` Khem Raj
  2012-05-15 22:03       ` Peter Seebach
  0 siblings, 2 replies; 17+ messages in thread
From: Bernhard Reutner-Fischer @ 2012-05-15 19:59 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, May 07, 2012 at 04:25:25PM -0700, Joshua Lock wrote:
>On 03/05/12 10:12, Bernhard Reutner-Fischer wrote:
>>@@ -313,11 +313,11 @@ findimage() {
>>      # recently created one is the one we most likely want to boot.
>>      filenames=`ls -t $where/*-image*$machine.$extension 2>/dev/null | xargs`
>>      for name in $filenames; do
>>-        if [[ "$name" =~ core-image-sato-sdk ||
>>-              "$name" =~ core-image-sato     ||
>>-              "$name" =~ core-image-lsb      ||
>>-              "$name" =~ core-image-basic    ||
>>-              "$name" =~ core-image-minimal ]]; then
>>+        if [ "$name" =~ core-image-sato-sdk -o \
>>+              "$name" =~ core-image-sato     -o \
>>+              "$name" =~ core-image-lsb      -o \
>>+              "$name" =~ core-image-basic    -o \
>>+              "$name" =~ core-image-minimal ]; then
>>              ROOTFS=$name
>>              return
>>          fi	
>
>This change broke findimage() for me on both bash and dash.
>Reproducer is 'runqemu qemux86'.
>
>Under bash I get:
>
>/srv/yocto/poky/scripts/runqemu: line 303: [: too many arguments
>
>Undoing this change fixes things for me. Note: this change doesn't
>revert cleanly.
>
>I've filed this as Yocto #2433:
>https://bugzilla.yoctoproject.org/show_bug.cgi?id=2433
>
>As an aside, when trying (unsuccessfully) to figure out a fix for
>this I ran across Ubuntu's page on dash[1] which indicates changing
>|| for -o isn't right. Anyone have a strong opinion on that?

just a weak. That whole style is utterly broken.
case "$name" in
core-image-sato-sdk*|blah)
esac

Really that whole name hardcoding is plain stupid and over-engineered.
If the darn image exists then, heck, just use it.

But that's politics i fear -- not even sure if that intel-guy ment to
imply that, though. Somehow doubt it |-/

Any sane way out of that mess?
>
>Cheers,
>Joshua
>
>1. https://wiki.ubuntu.com/DashAsBinSh



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] runqemu: use modern, single-char name of test(1)
  2012-05-15 19:59     ` Bernhard Reutner-Fischer
@ 2012-05-15 20:58       ` Khem Raj
  2012-05-15 22:03       ` Peter Seebach
  1 sibling, 0 replies; 17+ messages in thread
From: Khem Raj @ 2012-05-15 20:58 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, May 15, 2012 at 12:59 PM, Bernhard Reutner-Fischer
<rep.dot.nop@gmail.com> wrote:
>
> Any sane way out of that mess?

there is a patch to fix it differently on ml.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] runqemu: use modern, single-char name of test(1)
  2012-05-15 19:59     ` Bernhard Reutner-Fischer
  2012-05-15 20:58       ` Khem Raj
@ 2012-05-15 22:03       ` Peter Seebach
  1 sibling, 0 replies; 17+ messages in thread
From: Peter Seebach @ 2012-05-15 22:03 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 15 May 2012 21:59:15 +0200
Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote:

> Really that whole name hardcoding is plain stupid and over-engineered.
> If the darn image exists then, heck, just use it.

This may not be a bad idea, but it's a larger change than I wanted to
make, which is why I didn't change the effect as a whole in the
proposed patch.

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-05-15 22:14 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-03 17:12 [PATCH 1/6] runqemu: Use OE_TMPDIR Bernhard Reutner-Fischer
2012-05-03 17:12 ` [PATCH 2/6] runqemu: use modern, single-char name of test(1) Bernhard Reutner-Fischer
2012-05-07 23:25   ` Joshua Lock
2012-05-15 19:59     ` Bernhard Reutner-Fischer
2012-05-15 20:58       ` Khem Raj
2012-05-15 22:03       ` Peter Seebach
2012-05-03 17:12 ` [PATCH 3/6] runqemu: simplify process_filename() Bernhard Reutner-Fischer
2012-05-03 17:12 ` [PATCH 4/6] runqemu: add and use error() Bernhard Reutner-Fischer
2012-05-03 17:12 ` [PATCH 5/6] runqemu: minor tweaks Bernhard Reutner-Fischer
2012-05-03 17:12 ` [PATCH 6/6] runqemu: be sh neutral Bernhard Reutner-Fischer
2012-05-04 21:18 ` [PATCH 1/6] runqemu: Use OE_TMPDIR Scott Garman
2012-05-07 23:56 ` Scott Garman
2012-05-08  7:07   ` Peter Seebach
2012-05-14 22:34     ` Mark Hatle
2012-05-14 22:40       ` Khem Raj
2012-05-14 22:51   ` Marko Lindqvist
2012-05-14 23:15     ` Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.