From 0db56cdc9d5166abaaaf0b23406cf06d775e2bca Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Sun, 1 Jul 2012 14:03:51 +0200 Subject: [PATCH] Support --kernel-config=/proc/config.gz (bug #421027) --- ChangeLog | 4 ++++ gen_configkernel.sh | 8 +++++++- gen_package.sh | 19 +++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d5ad59..7b90ca8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,10 @@ # Distributed under the GPL v2 # $Id$ + 01 Jul 2012; Sebastian Pipping gen_configkernel.sh, + gen_package.sh: + Support --kernel-config=/proc/config.gz (bug #421027) + 11 Jun 2012; Sebastian Pipping genkernel: Bump version to 3.4.36 diff --git a/gen_configkernel.sh b/gen_configkernel.sh index 5d619fa..b0837dd 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -56,7 +56,13 @@ config_kernel() { # or we might remove configurations someone is trying to test. if isTrue "${MRPROPER}" || [ ! -f "${KERNEL_DIR}/.config" ] then - cp "${KERNEL_CONFIG}" "${KERNEL_DIR}/.config" || gen_die 'Could not copy configuration file!' + local message='Could not copy configuration file!' + if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then + # Support --kernel-config=/proc/config.gz, mainly + zcat "${KERNEL_CONFIG}" > "${KERNEL_DIR}/.config" || gen_die "${message}" + else + cp "${KERNEL_CONFIG}" "${KERNEL_DIR}/.config" || gen_die "${message}" + fi fi if isTrue "${OLDCONFIG}" diff --git a/gen_package.sh b/gen_package.sh index e7c6142..b83ccc1 100755 --- a/gen_package.sh +++ b/gen_package.sh @@ -78,7 +78,13 @@ gen_kerncache() cd "${KERNEL_DIR}" cp "${tmp_kernel_binary}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" || gen_die 'Could not the copy kernel for the kernel package!' cp "${KERNEL_DIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}" - cp "${KERNEL_CONFIG}" "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" + + if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then + # Support --kernel-config=/proc/config.gz, mainly + zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" + else + cp "${KERNEL_CONFIG}" "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" + fi cp "${KERNEL_DIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}" if isTrue "${GENZIMAGE}" then @@ -180,7 +186,16 @@ gen_kerncache_is_valid() else test1=$(grep -v "^#" ${TEMP}/config-${ARCH}-${KV} | md5sum | cut -d " " -f 1) fi - test2=$(grep -v "^#" ${KERNEL_CONFIG} | md5sum | cut -d " " -f 1) + + if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then + # Support --kernel-config=/proc/config.gz, mainly + local CONFGREP=zgrep + else + local CONFGREP=grep + fi + test2=$("${CONFGREP}" -v "^#" ${KERNEL_CONFIG} | md5sum | cut -d " " -f 1) + + if [ "${test1}" == "${test2}" ] then echo -- 2.26.2