prevent zombies from occuring when stdou/stdout are held open
[openwrt.git] / openwrt / target / default / target_skeleton / bin / ipkg
index 1945419..dd44dd6 100755 (executable)
@@ -20,16 +20,17 @@ set -e
 set -o noglob
 
 ipkg_is_upgrade () {
-  local A B a b
-  A=$(echo $1 | sed "s/[0-9]*/ & /g")
-  B=$(echo $2 | sed "s/[0-9]*/ & /g")
-  while [ \! -z "$A" ] && [ \! -z "$B" ]; do {
+  local A B a b     
+  A=$(echo $1 | sed -r "s/([0-9]+)[^[:alnum:]]*/ \1 /g").
+  B=$(echo $2 | sed -r "s/([0-9]+)[^[:alnum:]]*/ \1 /g").
+  while [ \! -z "$A" ] && [ \! -z "$B" ]; do {        
     set $A; a=$1; shift; A=$*
     set $B; b=$1; shift; B=$*
-    { [ "$a" -gt "$b" ] 2>&- || [ "$a" ">" "$b" ]; } && { return 0; }
-  }; done
-  return 1;
-}
+      [ "$a" -lt "$b" ] 2>&- && return 1
+    { [ "$a" -gt "$b" ] 2>&- || [ "$a" ">" "$b" ]; } && return
+  }; done                                                     
+  return 1
+}         
 
 ipkg_srcs() {
        local srcre="$1"
@@ -873,6 +874,7 @@ diff -u $dest/$conffile $IPKG_TMP/$pkg/data/$conffile"
        (cd $IPKG_TMP/$pkg/data/; tar cf - . | (cd $owd; cd $dest; tar xf -))
        rm -rf $IPKG_TMP/$pkg/data
        rmdir $IPKG_TMP/$pkg
+       rm -f $info_dir/$pkg.list
        $pkg_extract_stdout $filename ./data.tar.gz | tar tzf - | sed -e 's/^\.//' > $info_dir/$pkg.list
 
        if [ -x "$info_dir/$pkg.postinst" ]; then
This page took 0.02407 seconds and 4 git commands to generate.