[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#325802: libc6: glibc.sh uses dpkg



Hi,

Please find attached a patch to fix a part of this bug, ie to remove the
calls to dpkg --compare-versions. It uses sed to convert the kernel
version to a number, and then compare the two resulting numbers.

The calls to dpkg --print-architecture have still to be replaced, but 
that does not concerns all architectures, so this patch will already
improve some things.

Bye,
Aurelien

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian GNU/Linux developer | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net
Index: debian/script.in/kernelcheck.sh
===================================================================
--- debian/script.in/kernelcheck.sh	(révision 1164)
+++ debian/script.in/kernelcheck.sh	(copie de travail)
@@ -1,3 +1,10 @@
+kernel_compare_versions () {
+    ver1=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))
+    ver2=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/')))
+    
+    test $ver1 $2 $ver2
+}
+
 exit_check () {
     EXIT_CHECK
     exit 1
@@ -32,7 +39,7 @@
     if [ "$realarch" = i386 ]
     then
 	# From glibc 2.3.5-7 and linux-2.6 2.6.12-1, real-i386 is dropped.
-	#if dpkg --compare-versions "$kernel_ver" lt 2.4.24
+	#if kernel_compare_versions "$kernel_ver" lt 2.4.24
 	#then
 	    echo WARNING: This machine has real i386 class processor.
 	    echo Debian etch and later does not support such old hardware
@@ -52,7 +59,7 @@
 
 	if [ "$cputype" != "" ]
 	then
-	    if dpkg --compare-versions "$kernel_ver" lt 2.4.21
+	    if kernel_compare_versions "$kernel_ver" lt 2.4.21
 	    then
 		echo WARNING: You have a cpu which requires kernel 2.4.21
 		echo or greater in order to install this version of glibc.
@@ -65,7 +72,7 @@
 		exit_check
 	    fi
 	else
-	    if dpkg --compare-versions "$kernel_ver" lt 2.2.0 #should be safe
+	    if kernel_compare_versions "$kernel_ver" lt 2.2.0 #should be safe
 	    then
 		echo WARNING: This version of glibc suggests atleast a
 		echo 2.2.0 kernel in order to work properly. 2.0.x kernels
@@ -82,7 +89,7 @@
     # HPPA boxes require latest fixes in the kernel to function properly.
     if [ "$realarch" = parisc ]
     then
-	if dpkg --compare-versions "$kernel_ver" lt 2.4.17
+	if kernel_compare_versions "$kernel_ver" lt 2.4.17
 	then
 		echo WARNING: This version of glibc requires that you be running
 		echo atleast a 2.4.17 kernel in order to work properly. Earlier
@@ -99,7 +106,7 @@
 	kernel_ver_pa=$(echo "$kernel_ver" | sed 's/pa//')
 	if [ "$kernel_ver" = "$kernel_ver_pa" ]
 	then
-	    if dpkg --compare-versions "$kernel_ver" lt 2.4.19-64
+	    if kernel_compare_versions "$kernel_ver" lt 2.4.19-64
 	    then
 		echo WARNING: This version of glibc requires that you be
 		echo running at least a 2.4.19-64 to work properly.
@@ -108,7 +115,7 @@
 		exit_check
 	    fi
 	else
-	    if dpkg --compare-versions "$kernel_ver" lt 2.4.19-pa17
+	    if kernel_compare_versions "$kernel_ver" lt 2.4.19-pa17
 	    then
 		echo WARNING: This version of glibc requires that you be
 		echo running at least a 2.4.19-pa17 in \(2.4\) or 2.5.53-pa3 
@@ -124,7 +131,7 @@
 	&& [ "`dpkg --print-architecture`" = mips ]
     then
 	# MIPS (but not mipsel) require a kernel update for the msq fixes.
-	if dpkg --compare-versions "$kernel_ver" lt 2.4.22
+	if kernel_compare_versions "$kernel_ver" lt 2.4.22
 	then
 		echo WARNING: System V message queues require kernel 2.4.22 to
 		echo work correctly on this architecture.  Some programs
@@ -137,7 +144,7 @@
     if [ "$realarch" = x86_64 ] \
 	&& [ "`dpkg --print-architecture`" = amd64 ]
     then
-	if dpkg --compare-versions "$kernel_ver" lt 2.6.0
+	if kernel_compare_versions "$kernel_ver" lt 2.6.0
 	then
 	    echo WARNING: POSIX threads library NPTL requires 2.6 and
 	    echo later kernel on amd64.  If you use 2.4 kernel, please
@@ -151,7 +158,7 @@
     if [ "$realarch" = arm ] \
 	&& [ "`dpkg --print-architecture`" = arm ]
     then
-	if dpkg --compare-versions "$kernel_ver" lt 2.4.0
+	if kernel_compare_versions "$kernel_ver" lt 2.4.0
 	then
 	    echo WARNING: This version of glibc requires that you be running
 	    echo kernel version 2.4.0 or later.  Earlier kernels contained

Reply to: