# HG changeset patch # User "Yann E. MORIN" # Date 1350413864 -7200 # Node ID 37831a33e07e0aa865586d3b13b5b7824f35b4c1 # Parent 2a616dab6531ad82876c3252cd2e1cb873375c3f 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 -r 2a616dab6531 -r 37831a33e07e scripts/build/kernel/linux.sh --- a/scripts/build/kernel/linux.sh Mon Oct 15 16:59:11 2012 +1000 +++ b/scripts/build/kernel/linux.sh Tue Oct 16 20:57:44 2012 +0200 @@ -59,13 +59,25 @@ # 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}" }