Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > 85831a6478e14c4a8ac6452958c6e526 > files > 20

dkms-2.0.19-40.mga7.src.rpm


 dkms |   40 +++++++++++++++++++++++++++-------------
 1 file changed, 27 insertions(+), 13 deletions(-)

diff -Nurp dkms-2.0.19.orig/dkms dkms-2.0.19/dkms
--- dkms-2.0.19.orig/dkms	2011-12-25 16:52:20.000000000 +0200
+++ dkms-2.0.19/dkms	2011-12-25 17:10:54.050287439 +0200
@@ -895,18 +895,24 @@ function prepare_kernel()
             else
                 config_arch=$2
             fi
-	    # x86
-	    for config_type in desktop586 desktop netbook server xen-pvops; do
-		[ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/x86/configs/$config_arch_defconfig-$config_type"
+	    if [ "$1" == `uname -r` ] && [ -e "/proc/config.gz" ]; then
+		kernel_config="/proc/config.gz"
+	    elif [ -e "/boot/config-$1" ]; then
+		kernel_config="/boot/config-$1"
+	    else
+		# x86
+		for config_type in desktop586 desktop netbook server xen-pvops; do
+		    [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/x86/configs/$config_arch_defconfig-$config_type"
+		    [ ! -e "$kernel_config" ] && kernel_config=""
+		done
+		# arm
+		for config_type in iop32x kirkwood versatile; do
+		    [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig-$config_type"
+		    [ ! -e "$kernel_config" ] && kernel_config=""
+		done
+		[ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/configs/defconfig"
 		[ ! -e "$kernel_config" ] && kernel_config=""
-	    done
-	    # arm
-	    for config_type in iop32x kirkwood versatile; do
-		[ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig-$config_type"
-		[ ! -e "$kernel_config" ] && kernel_config=""
-	    done
-	    [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/configs/defconfig"
-	    [ ! -e "$kernel_config" ] && kernel_config=""
+	    fi
 	fi
     elif [ -e /etc/redhat-release ] || [ -e /etc/fedora-release ]; then
 	if [ -z "$kernel_config" ] && [ -d "$kernel_source_dir/configs" ]; then
@@ -956,7 +962,11 @@ function prepare_kernel()
 
 	if [ -n "$kernel_config" ]; then
 	    echo $"using $kernel_config"
-	    cp -f "$kernel_config" .config
+	    if file -b -i "$kernel_config" | grep -q "application/x-gzip"; then
+		    zcat "$kernel_config" > .config
+	    else
+		    cp -f "$kernel_config" .config
+	    fi
 	elif [ -e .config ]; then
 	    echo $"using $kernel_source_dir/.config"
 	    echo $"(I hope this is the correct config for this kernel)"
@@ -983,7 +993,11 @@ function prepare_kernel()
 
 	if [ -n "$kernel_config" ]; then
 	    echo $"using $kernel_config"
-	    cp -f "$kernel_config" .config
+	    if file -b -i "$kernel_config" | grep -q "application/x-gzip"; then
+		    zcat "$kernel_config" > .config
+	    else
+		    cp -f "$kernel_config" .config
+	    fi
 	elif [ -e .config ]; then
 	    echo $"using $kernel_source_dir/.config"
 	    echo $"(I hope this is the correct config for this kernel)"