From e1806b1d221d12eb4e151cec1e9a4573300f2b0b Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Tue, 16 Oct 2012 20:57:44 +0200 Subject: kernel/linux: fix using custom location Currently, extract and patch are skipped as thus: - using a custom directory of pre-installed headers - a correctly named directory already exists Otherwise, extract and patch are done. The current second condition is wrong, because it allows the following sequence to happen: - a non-custom kernel is used - a previous build only partially extracted the non-custom sources - that p[revious build broke during extraction (eg. incomplete tarball...) - a subsequent build will find a properly named directory, and will thus skip extract and patch, which is wrong Fix that by following the conditions in this table: Type | Extract | Patch ----------------------+---------+------- Pre-installed headers | N | N custom directory | N | N custom tarball | Y | N mainstream tarball | Y | Y Signed-off-by: "Yann E. MORIN" Cc: David Holsgrove diff --git a/scripts/build/kernel/linux.sh b/scripts/build/kernel/linux.sh index dad85c4..c1c4e62 100644 --- a/scripts/build/kernel/linux.sh +++ b/scripts/build/kernel/linux.sh @@ -59,13 +59,25 @@ do_kernel_get() { # Extract kernel do_kernel_extract() { - # If using custom headers, or custom directory location, nothing to do - if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" \ - -o -d "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" ]; then + # If using a custom headers tree, nothing to do + if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ] return 0 fi - + + # If using a custom directory location, nothing to do + if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" \ + -a -d "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" ]; then + return 0 + fi + + # Otherwise, we're using either a mainstream tarball, or a custom + # tarball; in either case, we need to extract CT_Extract "linux-${CT_KERNEL_VERSION}" + + # If using a custom tarball, no need to patch + if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" ]; then + return 0 + fi CT_Patch "linux" "${CT_KERNEL_VERSION}" } -- cgit v0.10.2-6-g49f6