Do not query generated files (like include/config/kernel.release) for kernel version...
authorSebastian Pipping <sebastian@pipping.org>
Fri, 21 Jan 2011 23:46:57 +0000 (00:46 +0100)
committerSebastian Pipping <sebastian@pipping.org>
Fri, 21 Jan 2011 23:46:57 +0000 (00:46 +0100)
ChangeLog
gen_determineargs.sh

index 1a0a907..b4edb34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@
 # Distributed under the GPL v2
 # $Id$
 
+  21 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_determineargs.sh:
+  Do not query generated files (like include/config/kernel.release) for kernel
+  version, as they may be out of sync (bug #263927)
+
   20 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
   Add proper mdadm support (bug #282100)
 
index a55ccec..9cd4be8 100755 (executable)
@@ -39,29 +39,20 @@ get_KV() {
                        EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_SOURCE_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
                fi
 
-               cd ${KERNEL_DIR}
-               #compile_generic prepare kernel > /dev/null 2>&1
-               cd - > /dev/null 2>&1
-               [ -f "${KERNEL_DIR}/include/linux/version.h" ] && \
-                       VERSION_SOURCE="${KERNEL_DIR}/include/linux/version.h"
-               [ -f "${KERNEL_DIR}/include/linux/utsrelease.h" ] && \
-                       VERSION_SOURCE="${KERNEL_DIR}/include/linux/utsrelease.h"
-               # Handle new-style releases where version.h doesn't have UTS_RELEASE
-               if [ -f ${KERNEL_DIR}/include/config/kernel.release ]
+               # Extract local version suffix from .config
+               # Not, that we explicitly do not look at generated files like
+               # - include/config/kernel.release
+               # - include/linux/version.h
+               # - include/linux/utsrelease.h
+               # as they require "make prepare" to be up to date (bug #263927)
+               local future_config="${KERNEL_DIR}"/.config
+               if isTrue "${MRPROPER}" || [ ! -f "${future_config}" ]
                then
-                       UTS_RELEASE=`cat ${KERNEL_DIR}/include/config/kernel.release`
-                       LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
-                       KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
-               elif [ -n "${VERSION_SOURCE}" ]
-               then
-                       UTS_RELEASE=`grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
-                       LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
-                       KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
-               else
                        determine_config_file
-                       LCV=`grep ^CONFIG_LOCALVERSION= "${KERNEL_CONFIG}" | sed -r -e "s/.*=\"(.*)\"/\1/"`
-                       KV=${VER}.${PAT}.${SUB}${EXV}${LCV}
+                       future_config=${KERNEL_CONFIG}
                fi
+               LOV=`grep ^CONFIG_LOCALVERSION= "${future_config}" | sed -r -e "s/.*=\"(.*)\"/\1/"`
+               KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
        fi
 }