ptxd_ipkg_rev_smaller will return the wrong value if the version number
does not include a $micro component.
For example:
pkgd_ipkg_rev_smaller foo_1.0-2_armel.ipk foo_1.0-1_armel.ipk
will incorrectly return 0
Increased the number of parts of rev_upstream that is compared since any
extra parts will be filled in with 0 for comparison purposes
Signed-off-by: Jon Ringle <[email protected]>
---
scripts/libptxdist.sh | 28 ++++++++++++++++++----------
1 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/scripts/libptxdist.sh b/scripts/libptxdist.sh
index 48dbd64..adf2e12 100644
--- a/scripts/libptxdist.sh
+++ b/scripts/libptxdist.sh
@@ -743,23 +743,31 @@ ptxd_ipkg_rev_smaller() {
local first=`ptxd_ipkg_split $1`
local first_rev_upstream=`ptxd_ipkg_rev_upstream $first`
- local first_rev_packet=`ptxd_ipkg_rev_package $first`
+ local first_rev_packet=$((`ptxd_ipkg_rev_package $first` + 0))
local second=`ptxd_ipkg_split $2`
local second_rev_upstream=`ptxd_ipkg_rev_upstream $second`
- local second_rev_packet=`ptxd_ipkg_rev_package $second`
- local first_major=`echo $first_rev_upstream | awk -F. '{print $1}'`
- local first_minor=`echo $first_rev_upstream | awk -F. '{print $2}'`
- local first_micro=`echo $first_rev_upstream | awk -F. '{print $3}'`
- local second_major=`echo $second_rev_upstream | awk -F. '{print $1}'`
- local second_minor=`echo $second_rev_upstream | awk -F. '{print $2}'`
- local second_micro=`echo $second_rev_upstream | awk -F. '{print $3}'`
+ local second_rev_packet=$((`ptxd_ipkg_rev_package $second` + 0))
+ local first_major=$((`echo $first_rev_upstream | awk -F. '{print $1}'`
+ 0))
+ local first_minor=$((`echo $first_rev_upstream | awk -F. '{print $2}'`
+ 0))
+ local first_micro1=$((`echo $first_rev_upstream | awk -F. '{print $3}'`
+ 0))
+ local first_micro2=$((`echo $first_rev_upstream | awk -F. '{print $4}'`
+ 0))
+ local first_micro3=$((`echo $first_rev_upstream | awk -F. '{print $5}'`
+ 0))
+ local second_major=$((`echo $second_rev_upstream | awk -F. '{print
$1}'` + 0))
+ local second_minor=$((`echo $second_rev_upstream | awk -F. '{print
$2}'` + 0))
+ local second_micro1=$((`echo $second_rev_upstream | awk -F. '{print
$3}'` + 0))
+ local second_micro2=$((`echo $second_rev_upstream | awk -F. '{print
$4}'` + 0))
+ local second_micro3=$((`echo $second_rev_upstream | awk -F. '{print
$5}'` + 0))
[ $first_major -lt $second_major ] && return 0
[ $first_major -gt $second_major ] && return 1
[ $first_minor -lt $second_minor ] && return 0
[ $first_minor -gt $second_minor ] && return 1
- [ $first_micro -lt $second_micro ] && return 0
- [ $first_micro -gt $second_micro ] && return 1
+ [ $first_micro1 -lt $second_micro1 ] && return 0
+ [ $first_micro1 -gt $second_micro1 ] && return 1
+ [ $first_micro2 -lt $second_micro2 ] && return 0
+ [ $first_micro2 -gt $second_micro2 ] && return 1
+ [ $first_micro3 -lt $second_micro3 ] && return 0
+ [ $first_micro3 -gt $second_micro3 ] && return 1
[ $first_rev_packet -lt $second_rev_packet ] && return 0
[ $first_rev_packet -gt $second_rev_packet ] && return 1
--
1.7.0.4
--
ptxdist mailing list
[email protected]