--- dkms-2.0.13/dkms.mdkize 2006-08-11 05:19:21.000000000 -0400 +++ dkms-2.0.13/dkms 2006-08-11 05:19:21.000000000 -0400 @@ -811,6 +811,7 @@ function prepare_kernel() if [[ (! ( $(VER $1) < $(VER 2.6.5) ) || (-d /etc/SuSEconfig)) && \ -d "$kernel_source_dir" && \ + ! -L "$kernel_source_dir" && \ -z "$ksourcedir_fromcli" ]]; then echo $"" echo $"Kernel preparation unnecessary for this kernel. Skipping..." @@ -827,14 +828,19 @@ function prepare_kernel() [ -n "$config_contents" ] && echo $"Storing current .config to be restored when complete" # Set kernel_config - if [ -e /etc/redhat-release ] || [ -e /etc/fedora-release ]; then - if [ -z "$kernel_config" ] && [ -d "$kernel_source_dir/configs" ]; then + if [ -e /etc/mandriva-release ]; then + if [ -z "$kernel_config" ] && [ -d "$kernel_source_dir/arch" ]; then local kernel_trunc=`echo $1 | sed 's/-.*//'` - for config_type in debug summit smp enterprise bigmem hugemem BOOT; do - [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/configs/kernel-$kernel_trunc-$2-$config_type.config" + if [ "$2" == "i586" ] || [ "$2" == "i686" ]; then + config_arch="i386" + else + config_arch=$2 + fi + for config_type in BOOT smp enterprise secure i586-up-1GB i686-up-4GB p3-smp-64GB desktop586 desktop laptop server; 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/configs/kernel-$kernel_trunc-$2.config" + [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig" [ ! -e "$kernel_config" ] && kernel_config="" fi elif [ -e /etc/SuSE-release ] || [ -d /etc/SuSEconfig ]; then @@ -852,8 +858,18 @@ function prepare_kernel() [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig.default" [ ! -e "$kernel_config" ] && kernel_config="" fi + elif [ -e /etc/redhat-release ] || [ -e /etc/fedora-release ]; then + if [ -z "$kernel_config" ] && [ -d "$kernel_source_dir/configs" ]; then + local kernel_trunc=`echo $1 | sed 's/-.*//'` + for config_type in debug summit smp enterprise bigmem hugemem BOOT; do + [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/configs/kernel-$kernel_trunc-$2-$config_type.config" + [ ! -e $kernel_config ] && kernel_config="" + done + [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/configs/kernel-$kernel_trunc-$2.config" + [ ! -e $kernel_config ] && kernel_config="" + fi fi - + # Do preparation if [ -e /boot/vmlinuz.version.h ]; then echo $"Running UnitedLinux preparation routine" @@ -865,7 +881,11 @@ function prepare_kernel() invoke_command "make KERNELRELEASE=$1 cloneconfig" "make cloneconfig" background invoke_command "make CONFIG_MODVERSIONS=1 KERNELRELEASE=$1 dep" "make CONFIG_MODVERSIONS=1 dep" background elif grep -q rhconfig.h $kernel_source_dir/include/linux/{modversions,version}.h 2>/dev/null; then - echo $"Running Red Hat style preparation routine" + if [ -e /etc/mandriva-release ]; then + echo $"Running Mandriva Linux style preparation routine" + else + echo $"Running Red Hat style preparation routine" + fi invoke_command "make clean" "make clean" background [ -n "$config_contents" ] && echo "$config_contents" > .config --- dkms-2.0.13/dkms_mkkerneldoth.mdkize 2006-06-29 10:31:25.000000000 -0400 +++ dkms-2.0.13/dkms_mkkerneldoth 2006-08-11 05:19:36.000000000 -0400 @@ -44,8 +44,8 @@ while [ $# -gt 0 ]; do done -KERNEL_TYPE=`echo ${kernel_version} | sed 's_^.*\(BOOT\|smp\|enterprise\|bigmem\|hugemem\|debug\|vmnix\)$_-\1_;t;s_.*__;'` -KERNEL_RELEASE=`echo ${kernel_version} | sed 's|BOOT\|smp\|enterprise\|bigmem\|hugemem\|debug||g'` +KERNEL_TYPE=`echo ${kernel_version} | sed 's_^.*\(desktop586\|desktop\|laptop\|server\|BOOT\|smp\|xen0\|legacy\|enterprise\|i586-up-1GB\|i686-up-4GB\|p3-smp-64GB\|secure\|bigmem\|hugemem\|debug\|vmnix\)$_-\1_;t;s_.*__;'` +KERNEL_RELEASE=`echo ${kernel_version} | sed 's|desktop586\|desktop\|laptop\|server\|BOOT\|smp\|xen0\|legacy\|enterprise\|i586-up-1GB\|i686-up-4GB\|p3-smp-64GB\|secure\|bigmem\|hugemem\|debug||g'` if [ -n "${target_arch}" ]; then KERNEL_ARCH="${target_arch}" @@ -60,8 +60,15 @@ if [ -n "$KERNEL_ARCH" ]; then BIGMEM='0' HUGEMEM='0' BOOT='0' + I586_UP_1GB='0' + I686_UP_4GB='0' + P3_SMP_64GB='0' + SECURE='0' DEBUG='0' VMNIX='0' + XEN0='0' + LEGACY='0' + DEFAULT='0' case "$KERNEL_TYPE" in -BOOT) BOOT='1' @@ -70,13 +77,86 @@ if [ -n "$KERNEL_ARCH" ]; then fi ;; -smp) SMP='1';; + -xen0) XEN0='1';; + -legacy) LEGACY='1';; -enterprise) ENTERPRISE='1';; + -i586-up-1GB) I586_UP_1GB='1';; + -i686-up-4GB) I686_UP_4GB='1';; + -p3-smp-64GB) P3_UP_64GB='1';; + -secure) SECURE='1';; -bigmem) BIGMEM='1';; -hugemem) HUGEMEM='1';; -vmnix) VMNIX='1';; *) UP='1';; esac - cat > ${output_file} << EOF + + # since 2.6.17-2mdv, default kernels can be SMP enabled by + # default, hence a new name + mdk="md[kv]" + echo "$UP:${kernel_version}" | grep -q "^1:.*$mdk" && { + case ${kernel_version} in + # XXX simpler to maintain a skip list + [01].*|2.[0-5].*|2.6.[0-9]-*|2.6.1[0-6]-*|2.6.17-1mdk);; + *) UP=0; DEFAULT=1;; + esac + } + + if [ -e /etc/mandriva-release ]; then + cat > ${output_file} << EOF +/* This file is automatically generated at boot time. */ +#ifndef __BOOT_KERNEL_H_ +#define __BOOT_KERNEL_H_ + +/* Kernel type $KERNEL_TYPE */ + +#ifndef __BOOT_KERNEL_ENTERPRISE +#define __BOOT_KERNEL_ENTERPRISE $ENTERPRISE +#endif + +#ifndef __BOOT_KERNEL_SECURE +#define __BOOT_KERNEL_SECURE $SECURE +#endif + +#ifndef __BOOT_KERNEL_I586_UP_1GB +#define __BOOT_KERNEL_I586_UP_1GB $I586_UP_1GB +#endif + +#ifndef __BOOT_KERNEL_I686_UP_4GB +#define __BOOT_KERNEL_I686_UP_4GB $I686_UP_4GB +#endif + +#ifndef __BOOT_KERNEL_P3_SMP_4GB +#define __BOOT_KERNEL_P3_SMP_4GB $P3_SMP_4GB +#endif + +#ifndef __BOOT_KERNEL_SMP +#define __BOOT_KERNEL_SMP $SMP +#endif + +#ifndef __BOOT_KERNEL_UP +#define __BOOT_KERNEL_UP $UP +#endif + +#ifndef __BOOT_KERNEL_BOOT +#define __BOOT_KERNEL_BOOT $BOOT +#endif + +#ifndef __BOOT_KERNEL_LEGACY +#define __BOOT_KERNEL_LEGACY $LEGACY +#endif + +#ifndef __BOOT_KERNEL_DEFAULT +#define __BOOT_KERNEL_DEFAULT $DEFAULT +#endif + +#ifndef __BOOT_KERNEL_XEN0 +#define __BOOT_KERNEL_XEN0 $XEN0 +#endif + +#endif +EOF + elif [ -e /etc/redhat-release ] || [ -e /etc/fedora-release ]; then + cat > ${output_file} << EOF /* This file is automatically generated at boot time. */ #ifndef __BOOT_KERNEL_H_ #define __BOOT_KERNEL_H_ @@ -120,4 +200,5 @@ if [ -n "$KERNEL_ARCH" ]; then #endif #endif EOF + fi fi