hide some non-critical error messages; prevent newbie bug reports
[openwrt-10.03/.git] / target / default / target_skeleton / bin / ipkg
index bf275d842d168dcb8415c1214835efb8f1543d83..dd44dd609e8abae3b7af03980dc423af55e88201 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
@@ -882,7 +884,8 @@ diff -u $dest/$conffile $IPKG_TMP/$pkg/data/$conffile"
        if [ -n "$new_conffiles" ]; then
                new_conffiles='Conffiles: '`echo $new_conffiles | ipkg_protect_slashes`
        fi
-       local sed_safe_root="`echo $dest | sed -e "s/^${IPKG_OFFLINE_ROOT}//" | ipkg_protect_slashes`"
+       local sed_safe_offline_root="`echo ${IPKG_OFFLINE_ROOT} | ipkg_protect_slashes`"
+       local sed_safe_root="`echo $dest | sed -e "s/^${sed_safe_offline_root}//" | ipkg_protect_slashes`"
        sed -e "s/\(Package:.*\)/\1\\
 Status: install ok installed\\
 Root: ${sed_safe_root}\\