mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] ptxd_ipkg_rev_smaller: fix compare with empty micro
@ 2011-10-17 23:21 Jon Ringle
  2011-10-18  8:42 ` Jon Ringle
  0 siblings, 1 reply; 6+ messages in thread
From: Jon Ringle @ 2011-10-17 23:21 UTC (permalink / raw)
  To: ptxdist

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 <jon@ringle.org>
---
 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
ptxdist@pengutronix.de

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

end of thread, other threads:[~2011-10-20  6:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-17 23:21 [ptxdist] [PATCH] ptxd_ipkg_rev_smaller: fix compare with empty micro Jon Ringle
2011-10-18  8:42 ` Jon Ringle
2011-10-19 17:46   ` Robert Schwebel
2011-10-19 18:52     ` Bernhard Walle
2011-10-19 19:55       ` Jon Ringle
2011-10-20  6:10         ` Bernhard Walle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox