r2483 - trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian

Simon Horman horms@costa.debian.org
Mon, 14 Feb 2005 06:36:11 +0100


Author: horms
Date: 2005-02-14 06:36:09 +0100 (Mon, 14 Feb 2005)
New Revision: 2483

Modified:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
Log:
Updated apply script so it can handle point versions

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply	2005-02-13 07:27:52 UTC (rev 2482)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply	2005-02-14 05:36:09 UTC (rev 2483)
@@ -103,6 +103,39 @@
 	echo "--> $(basename $series) fully applied."
 }
 
+bubble_sort ()
+{
+	SORTED=$@
+
+	SWAPED=1
+	while [ $SWAPED = 1 ]; do
+		X=0
+		A=""
+		SWAPED=0
+		NEW=""
+		for i in $SORTED; do
+			if [ -z "$A" ]; then
+				A="$i"
+				continue
+			fi
+			B="$i"
+		
+			if dpkg --compare-versions $A "lt" $B; then
+				SWAPED=1
+				NEW="$NEW $B"
+			else
+				NEW="$NEW $A"
+				A="$B"
+			fi
+
+			X=$(($X + 1))
+		done
+		SORTED="$NEW $A"
+	done
+
+	echo $SORTED
+}
+
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -135,10 +168,12 @@
 target_up=${target%-*}
 
 # Sanity checks
-if [ "$target_up" != "$upstream" ]; then
+if dpkg --compare-versions "$target_up" ne "$upstream"; then
 	die "Upstream $target_up doesn't match $upstream!"
 # We don't have that version out yet!
-elif [ ! -n "$target_rev" ] || ( [ "$target_rev" != "$target" ] && [ $target_rev -gt $revision ] ); then
+elif [ ! -n "$target_rev" ] || 
+		( dpkg --compare-versions "$target_rev" ne "$target" && 
+			dpkg --compare-versions "$target_rev" gt "$revision" ); then
 	year=$(($(date +%Y) + 1))
 	die "Can't patch to nonexistent revision $target_rev (wait until $year)"
 fi
@@ -157,39 +192,42 @@
 		exit 0
 	fi
 
-	for sver in $(ls -d $home/series/* | sort -r); do
+	for sver in $(bubble_sort $(ls -d $home/series/*) ); do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			if [ $srev -le $current_rev ]; then
+			if dpkg --compare-versions $srev "<=" $current_rev; then
 				unpatch_series $sver
 			fi
 		else
 			die "Series doesn't have a revision!"
 		fi
 	done
-elif [ "$current_rev" = "$upstream" ] || [ $target_rev -gt $current_rev ]; then
+elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
+		dpkg --compare-versions "$target_rev" gt "$current_rev"; then
 	for sver in $home/series/*; do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			if [ $srev -gt $current_rev ] && [ $srev -le $target_rev ]; then
+			if dpkg --compare-versions "$srev" gt "$current_rev" && 
+						dpkg --compare-versions "$srev" le "$target_rev"; then
 				patch_series $sver
 			fi
 		else
 			die "Series doesn't have a revision!"
 		fi
 	done
-elif [ $target_rev -eq $current_rev ]; then
+elif dpkg --compare-versions "$target_rev" eq "$current_rev"; then
 	echo "Nothing to do, exiting."
 	exit 0
-elif [ $target_rev -lt $current_rev ]; then
-	for sver in $(ls -d $home/series/* | sort -r); do
+elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
+	for sver in $(bubble_sort $(ls -d $home/series/*) ); do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			# -gt because you don't want to unapply the target series
-			if [ $srev -le $current_rev ] && [ $srev -gt $target_rev ]; then
+			# gt because you don't want to unapply the target series
+			if dpkg --compare-versions "$srev" le "$current_rev" && 
+						dpkg --compare-versions "$srev" gt "$target_rev"; then
 				unpatch_series $sver
 			fi
 		else

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-02-13 07:27:52 UTC (rev 2482)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-02-14 05:36:09 UTC (rev 2483)
@@ -6,8 +6,11 @@
   * Updated kernel-tree description from Martin F Krafft
     (Simon Horman)
 
- -- Simon Horman <horms@debian.org>  Fri, 11 Feb 2005 16:17:49 +0900
+  * Updated apply script so it can handle point versions
+    (Simon Horman)
 
+ -- Simon Horman <horms@debian.org>  Mon, 14 Feb 2005 14:34:54 +0900
+
 kernel-source-2.4.27 (2.4.27-8) unstable; urgency=high
 
   * add dh_fixperms to the build targets to kernel-patch-debian-2.4.27