r2485 - in trunk/kernel/source: kernel-source-2.6.10-2.6.10/debian kernel-source-2.6.8-2.6.8/debian kernel-source-2.6.9-2.6.9/debian

Simon Horman horms@costa.debian.org
Mon, 14 Feb 2005 08:30:46 +0100


Author: horms
Date: 2005-02-14 08:30:44 +0100 (Mon, 14 Feb 2005)
New Revision: 2485

Modified:
   trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/apply
   trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/apply
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
   trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/apply
   trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog
Log:
Updated apply script so it can handle point versions

Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/apply
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/apply	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/apply	2005-02-14 07:30:44 UTC (rev 2485)
@@ -103,6 +103,52 @@
 	echo "--> $(basename $series) fully applied."
 }
 
+bubble_sort ()
+{
+	DIR=$1
+	shift
+	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" "$DIR" "$B"; then
+				SWAPED=1
+				NEW="$NEW $B"
+			else
+				NEW="$NEW $A"
+				A="$B"
+			fi
+
+			X=$(($X + 1))
+		done
+		SORTED="$NEW $A"
+	done
+
+	echo $SORTED
+}
+
+bubble_sort_fwd ()
+{
+	bubble_sort "lt" $@
+}
+
+bubble_sort_rev ()
+{
+	bubble_sort "gt" $@
+}
+
+
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -135,10 +181,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,36 +205,39 @@
 		exit 0
 	fi
 
-	for base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			if [ $srev -le $current_rev ]; then
+			if dpkg --compare-versions $srev "<=" $current_rev; then
 				unpatch_series $home/series/$base
 			fi
 		else
 			die "Series doesn't have a revision!"
 		fi
 	done
-elif [ "$current_rev" = "$upstream" ] || [ $target_rev -gt $current_rev ]; then
-	for base in $( (cd $home/series/ && ls -d *) | sort -nt- -k 2); do
+elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
+              dpkg --compare-versions "$target_rev" gt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *)); do
 		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 $home/series/$base
 			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 base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		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
+			if dpkg --compare-versions "$srev" le "$current_rev" && 
+			            dpkg --compare-versions "$srev" gt "$target_rev"; then
 				unpatch_series $home/series/$base
 			fi
 		else

Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog	2005-02-14 07:30:44 UTC (rev 2485)
@@ -3,8 +3,11 @@
   * Updated kernel-tree description from Martin F Krafft
     (Simon Horman)
 
- -- Simon Horman <horms@debian.org>  Fri, 11 Feb 2005 16:11:29 +0900
+  * Updated apply script so it can handle point versions
+    (Simon Horman)
 
+ -- Simon Horman <horms@debian.org>  Mon, 14 Feb 2005 15:47:44 +0900
+
 kernel-source-2.6.10 (2.6.10-5) unstable; urgency=low
 
   * Change $((exp) | exp) to $( (exp) | exp), so things work with dash

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/apply
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/apply	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/apply	2005-02-14 07:30:44 UTC (rev 2485)
@@ -103,6 +103,52 @@
 	echo "--> $(basename $series) fully applied."
 }
 
+bubble_sort ()
+{
+	DIR=$1
+	shift
+	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" "$DIR" "$B"; then
+				SWAPED=1
+				NEW="$NEW $B"
+			else
+				NEW="$NEW $A"
+				A="$B"
+			fi
+
+			X=$(($X + 1))
+		done
+		SORTED="$NEW $A"
+	done
+
+	echo $SORTED
+}
+
+bubble_sort_fwd ()
+{
+	bubble_sort "lt" $@
+}
+
+bubble_sort_rev ()
+{
+	bubble_sort "gt" $@
+}
+
+
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -135,10 +181,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,36 +205,39 @@
 		exit 0
 	fi
 
-	for base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			if [ $srev -le $current_rev ]; then
+			if dpkg --compare-versions $srev "<=" $current_rev; then
 				unpatch_series $home/series/$base
 			fi
 		else
 			die "Series doesn't have a revision!"
 		fi
 	done
-elif [ "$current_rev" = "$upstream" ] || [ $target_rev -gt $current_rev ]; then
-	for base in $( (cd $home/series/ && ls -d *) | sort -nt- -k 2); do
+elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
+              dpkg --compare-versions "$target_rev" gt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *)); do
 		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 $home/series/$base
 			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 base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		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
+			if dpkg --compare-versions "$srev" le "$current_rev" && 
+			            dpkg --compare-versions "$srev" gt "$target_rev"; then
 				unpatch_series $home/series/$base
 			fi
 		else

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-02-14 07:30:44 UTC (rev 2485)
@@ -18,8 +18,11 @@
   * Updated kernel-tree description from Martin F Krafft
     (Simon Horman)
 
- -- Simon Horman <horms@debian.org>  Fri, 11 Feb 2005 16:15:24 +0900
+  * Updated apply script so it can handle point versions
+    (Simon Horman)
 
+ -- Simon Horman <horms@debian.org>  Mon, 14 Feb 2005 15:42:56 +0900
+
 kernel-source-2.6.8 (2.6.8-13) unstable; urgency=high
 
   * add more USB card reader blacklist entries.  Patch from Fedora via

Modified: trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/apply
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/apply	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/apply	2005-02-14 07:30:44 UTC (rev 2485)
@@ -103,6 +103,52 @@
 	echo "--> $(basename $series) fully applied."
 }
 
+bubble_sort ()
+{
+	DIR=$1
+	shift
+	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" "$DIR" "$B"; then
+				SWAPED=1
+				NEW="$NEW $B"
+			else
+				NEW="$NEW $A"
+				A="$B"
+			fi
+
+			X=$(($X + 1))
+		done
+		SORTED="$NEW $A"
+	done
+
+	echo $SORTED
+}
+
+bubble_sort_fwd ()
+{
+	bubble_sort "lt" $@
+}
+
+bubble_sort_rev ()
+{
+	bubble_sort "gt" $@
+}
+
+
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -135,10 +181,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,36 +205,39 @@
 		exit 0
 	fi
 
-	for base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
-			if [ $srev -le $current_rev ]; then
+			if dpkg --compare-versions $srev "<=" $current_rev; then
 				unpatch_series $home/series/$base
 			fi
 		else
 			die "Series doesn't have a revision!"
 		fi
 	done
-elif [ "$current_rev" = "$upstream" ] || [ $target_rev -gt $current_rev ]; then
-	for base in $( (cd $home/series/ && ls -d *) | sort -nt- -k 2); do
+elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
+              dpkg --compare-versions "$target_rev" gt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *)); do
 		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 $home/series/$base
 			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 base in $( (cd $home/series/ && ls -d *) | sort -rnt- -k 2); do
+elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
+	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
 		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
+			if dpkg --compare-versions "$srev" le "$current_rev" && 
+			            dpkg --compare-versions "$srev" gt "$target_rev"; then
 				unpatch_series $home/series/$base
 			fi
 		else

Modified: trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog	2005-02-14 06:42:03 UTC (rev 2484)
+++ trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog	2005-02-14 07:30:44 UTC (rev 2485)
@@ -21,12 +21,15 @@
 
   * Change $((exp) | exp) to $( (exp) | exp) in apply so things work
     with dash (Simon Horman) (closes: #291107)
-    
+
   * Updated kernel-tree description from Martin F Krafft
     (Simon Horman)
 
- -- Simon Horman <horms@debian.org>  Fri, 11 Feb 2005 16:13:56 +0900
+  * Updated apply script so it can handle point versions
+    (Simon Horman)
 
+ -- Simon Horman <horms@debian.org>  Mon, 14 Feb 2005 15:47:10 +0900
+
 kernel-source-2.6.9 (2.6.9-5) unstable; urgency=low
 
   * [powerpc] Added a couple of powermac patches from Benjamin Herrenschmidt :