Use actual kernel config for check of available compression methods (bug #436820)
authorSebastian Pipping <sebastian@pipping.org>
Wed, 3 Oct 2012 16:47:00 +0000 (18:47 +0200)
committerSebastian Pipping <sebastian@pipping.org>
Wed, 3 Oct 2012 16:50:16 +0000 (18:50 +0200)
ChangeLog
gen_initramfs.sh

index d4530803c38ec32bbd001d0d393fd98707d63d77..96bb1b9b39f40818893bdcdcc554945f1507a571 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@
 # Distributed under the GPL v2
 # $Id$
 
+  03 Oct 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
+  Use actual kernel config for check of available compression methods (bug
+  #436820)
+
   03 Oct 2012; Dustin Frisch <dustin.frisch@gmail.com> defaults/linuxrc:
   With boot parameter real_init=/foo look for ${NEW_ROOT}/foo, not
   ${NEW_ROOT}/sbin/init (bug #437080)
index 9d070f58dfe817b1571204411ea55a37531554d7..29fa65246de39fd26275b7ecd60f28724b24face 100755 (executable)
@@ -809,7 +809,15 @@ create_initramfs() {
        else
                if isTrue "${COMPRESS_INITRD}"
                then
-                       if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then
+                       # NOTE:  We do not work with ${KERNEL_CONFIG} here, since things like
+                       #        "make oldconfig" or --noclean could be in effect.
+                       if [ -f "${KERNEL_DIR}"/.config ]; then
+                               local ACTUAL_KERNEL_CONFIG="${KERNEL_DIR}"/.config
+                       else
+                               local ACTUAL_KERNEL_CONFIG="${KERNEL_CONFIG}"
+                       fi
+
+                       if [[ "$(file --brief --mime-type "${ACTUAL_KERNEL_CONFIG}")" == application/x-gzip ]]; then
                                # Support --kernel-config=/proc/config.gz, mainly
                                local CONFGREP=zgrep
                        else
@@ -840,12 +848,12 @@ create_initramfs() {
                                                set -- ${tuple}
                                                kernel_option=$1
                                                cmd_variable_name=$2
-                                               if ${CONFGREP} -q "^${kernel_option}=y" "${KERNEL_CONFIG}" && test -n "${!cmd_variable_name}" ; then
+                                               if ${CONFGREP} -q "^${kernel_option}=y" "${ACTUAL_KERNEL_CONFIG}" && test -n "${!cmd_variable_name}" ; then
                                                        compression=$3
                                                        [[ ${COMPRESS_INITRD_TYPE} == best ]] && break
                                                fi
                                        done
-                                       [[ -z "${compression}" ]] && gen_die "None of the initramfs we tried are supported by your kernel (config file \"${KERNEL_CONFIG}\"), strange!?"
+                                       [[ -z "${compression}" ]] && gen_die "None of the initramfs compression methods we tried are supported by your kernel (config file \"${ACTUAL_KERNEL_CONFIG}\"), strange!?"
                                        ;;
                                *)
                                        gen_die "Compression '${COMPRESS_INITRD_TYPE}' unknown"