From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28767 invoked from network); 4 Dec 2004 22:05:02 +0000 Received: from smtp.gentoo.org (156.56.111.197) by lists.gentoo.org with AES256-SHA encrypted SMTP; 4 Dec 2004 22:05:02 +0000 Received: from lists.gentoo.org ([156.56.111.196] helo=parrot.gentoo.org) by smtp.gentoo.org with esmtp (Exim 4.41) id 1Cai1V-0002sE-PO for arch-gentoo-kernel@lists.gentoo.org; Sat, 04 Dec 2004 22:05:01 +0000 Received: (qmail 12577 invoked by uid 89); 4 Dec 2004 22:05:00 +0000 Mailing-List: contact gentoo-kernel-help@gentoo.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail Reply-To: gentoo-kernel@lists.gentoo.org X-BeenThere: gentoo-kernel@gentoo.org Received: (qmail 29993 invoked from network); 4 Dec 2004 22:05:00 +0000 Message-ID: <41B250E3.5010806@gentoo.org> Date: Sun, 05 Dec 2004 00:05:55 +0000 From: Daniel Drake User-Agent: Mozilla Thunderbird 0.9 (X11/20041118) X-Accept-Language: en-us, en MIME-Version: 1.0 To: gentoo-kernel@lists.gentoo.org References: <41B24E34.6030208@gentoo.org> In-Reply-To: <41B24E34.6030208@gentoo.org> X-Enigmail-Version: 0.89.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------070004060106030200010201" X-Spam-Score: -5.9 (-----) X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1Cai1S-000DyQ-CA*fm49cVv61m.* Subject: Re: [gentoo-kernel] linux-mod / linux-info changes X-Archives-Salt: 51ae40b5-87cf-429b-af1a-fc4879522a3a X-Archives-Hash: a08b51ec52101199783fa3c7b9886750 --------------070004060106030200010201 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Forgot to fix up check_extra_config, lets try again.. --------------070004060106030200010201 Content-Type: text/plain; name="eclass-diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="eclass-diff" Index: linux-info.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v retrieving revision 1.6 diff -u -b -B -r1.6 linux-info.eclass --- linux-info.eclass 1 Dec 2004 23:26:43 -0000 1.6 +++ linux-info.eclass 4 Dec 2004 22:04:20 -0000 @@ -47,24 +47,28 @@ fi } -getfilevar_isset() { +linux_chkconfig_present() { local RESULT - RESULT="$(getfilevar ${1} ${2})" + RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)" [ "${RESULT}" = "m" -o "${RESULT}" = "y" ] && return 0 || return 1 } -getfilevar_ismodule() { +linux_chkconfig_module() { local RESULT - RESULT="$(getfilevar ${1} ${2})" + RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)" [ "${RESULT}" = "m" ] && return 0 || return 1 } -getfilevar_isbuiltin() { +linux_chkconfig_builtin() { local RESULT - RESULT="$(getfilevar ${1} ${2})" + RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)" [ "${RESULT}" = "y" ] && return 0 || return 1 } +linux_chkconfig_string() { + getfilevar "CONFIG_${1}" "${KV_OUT_DIR}/.config" +} + # Versioning Functions # --------------------------------------- @@ -124,7 +128,32 @@ if [ -z "${KV_DIR}" ] then eerror "Unable to find kernel sources at ${KERNEL_DIR}" - die + einfo "This package requires Linux sources." + if [ "${KERNEL_DIR}" == "/usr/src/linux" ] ; then + einfo "Please make sure that ${KERNEL_DIR} points at your running kernel, " + einfo "(or the kernel you wish to build against)." + einfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location" + else + einfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against." + fi + die "Cannot locate Linux sources at ${KERNEL_DIR}" + fi + + einfo "Found kernel source directory:" + einfo " ${KV_DIR}" + + if [ ! -s "${KV_DIR}/Makefile" ] + then + eerror "Could not find a Makefile in the kernel source directory." + einfo "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources" + die "Makefile not found in ${KV_DIR}" + fi + + if [ ! -s "${KV_DIR}/.config" ] + then + eerror "Could not find a usable .config in the kernel source directory." + einfo "Please ensure that ${KERNEL_DIR} points to a user-configured set of Linux sources" + die ".config not found in ${KV_DIR}" fi # OK so now we know our sources directory, but they might be using @@ -145,6 +174,13 @@ KV_PATCH="$(getfilevar SUBLEVEL ${KV_DIR}/Makefile)" KV_EXTRA="$(getfilevar EXTRAVERSION ${KV_DIR}/Makefile)" + if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ] + then + eerror "Could not detect kernel version." + einfo "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources" + die "Could not parse version info from ${KV_DIR}/Makefile" + fi + # and in newer versions we can also pull LOCALVERSION if it is set. # but before we do this, we need to find if we use a different object directory. # This *WILL* break if the user is using localversions, but we assume it was @@ -165,22 +201,13 @@ KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}" KV_LOCAL="${KV_LOCAL}$(cat ${KV_DIR}/localversion* 2>/dev/null)" - KV_LOCAL="${KV_LOCAL}$(getfilevar CONFIG_LOCALVERSION ${KV_OUT_DIR}/.config | sed 's:"::g')" + KV_LOCAL="${KV_LOCAL}$(linux_chkconfig_string LOCALVERSION | sed 's:"::g')" # And we should set KV_FULL to the full expanded version KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}" - if [ -z "${KV_FULL}" ] - then - eerror "We are unable to find a usable kernel source tree in ${KV_DIR}" - eerror "Please check a kernel source exists in this directory." - die - else - einfo "Found kernel source directory:" - einfo " ${KV_DIR}" - einfo "with sources for kernel version:" + einfo "Found sources for kernel version:" einfo " ${KV_FULL}" - fi } @@ -212,13 +239,12 @@ # if we haven't determined the version yet, we need too. get_version; - getfilevar_isset CONFIG_MODULES ${KV_OUT_DIR}/.config - if [ "$?" != 0 ] + if ! linux_chkconfig_builtin "MODULES" then eerror "These sources do not support loading external modules." eerror "to be able to use this module please enable \"Loadable modules support\"" eerror "in your kernel, recompile and then try merging this module again." - die No support for external modules in ${KV_FULL} config + die "No support for external modules in ${KV_FULL} config" fi } @@ -235,15 +261,15 @@ if [ "${negate}" == "!" ]; then config="${config:1}" - if getfilevar_isset ${config} ${KV_OUT_DIR}/.config ; + if linux_chkconfig_present ${config} then - eerror " ${config}:\tshould not be set in the kernel configuration, but it is." + eerror " CONFIG_${config}:\tshould not be set in the kernel configuration, but it is." error=1 fi else - if ! getfilevar_isset ${config} ${KV_OUT_DIR}/.config ; + if ! linux_chkconfig_present ${config} then - eerror " ${config}:\tshould be set in the kernel configuration, but isn't" + eerror " CONFIG_${config}:\tshould be set in the kernel configuration, but isn't" error=1 fi fi @@ -254,7 +280,7 @@ eerror "Please check to make sure these options are set correctly." eerror "Once you have satisfied these options, please try merging" eerror "this package again." - die Incorrect kernel configuration options + die "Incorrect kernel configuration options" fi } --------------070004060106030200010201 Content-Type: text/plain; charset=us-ascii -- gentoo-kernel@gentoo.org mailing list --------------070004060106030200010201--