From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 3D2851391DB for ; Sat, 22 Mar 2014 17:04:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B1F15E0CA9; Sat, 22 Mar 2014 17:03:49 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A0C0AE0C8F for ; Sat, 22 Mar 2014 17:03:48 +0000 (UTC) Received: from big_daddy.dol-sen.ca (S010600222de111ff.vc.shawcable.net [96.49.5.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: dolsen) by smtp.gentoo.org (Postfix) with ESMTPSA id C778E33FCE9 for ; Sat, 22 Mar 2014 17:03:47 +0000 (UTC) From: Brian Dolbec To: gentoo-catalyst@lists.gentoo.org Subject: [gentoo-catalyst] [PATCH 09/17] Fix and improve kernel build when kerncache is enabled. Date: Sat, 22 Mar 2014 10:03:07 -0700 Message-Id: <1395507795-13754-10-git-send-email-dolsen@gentoo.org> X-Mailer: git-send-email 1.8.5.3 In-Reply-To: <1395507795-13754-1-git-send-email-dolsen@gentoo.org> References: <1395507795-13754-1-git-send-email-dolsen@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-catalyst@lists.gentoo.org Reply-to: gentoo-catalyst@lists.gentoo.org X-Archives-Salt: 11474b1b-b77f-491b-bbea-484503b1688c X-Archives-Hash: f88713e6ee5581ace95080227852c2ba From: Guy Martin This patch gets rid of setting ROOT for merging kernel sources. Instead, the sources are moved manually to the kerncache directory. A new file is created containing the kernel version and it is fed into package.provided to prevent merging the kernel sources again. Brian Dolbec: fix whitespace error. Conflicts: targets/support/kmerge.sh --- targets/support/kmerge.sh | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/targets/support/kmerge.sh b/targets/support/kmerge.sh index fac6e9c..c1b6a35 100644 --- a/targets/support/kmerge.sh +++ b/targets/support/kmerge.sh @@ -197,8 +197,17 @@ then # Create the kerncache directory if it doesn't exists mkdir -p /tmp/kerncache/${clst_kname} - clst_root_path=/tmp/kerncache/${clst_kname} PKGDIR=${PKGDIR} clst_myemergeopts="--quiet --update --newuse" run_merge "${clst_ksource}" || exit 1 - KERNELVERSION=`portageq best_visible / "${clst_ksource}"` + + + if [ -e /tmp/kerncache/${clst_kname}/${clst_kname}-${clst_version_stamp}.KERNELVERSION ] + then + KERNELVERSION=$( /etc/portage/profile/package.provided + else + rm -f /etc/portage/profile/package.provided + fi + if [ ! -e /etc/portage/profile/package.provided ] then mkdir -p /etc/portage/profile @@ -209,8 +218,26 @@ then echo "${KERNELVERSION}" >> /etc/portage/profile/package.provided fi fi + [ -L /usr/src/linux ] && rm -f /usr/src/linux - ln -s /tmp/kerncache/${clst_kname}/usr/src/linux /usr/src/linux + + PKGDIR=${PKGDIR} clst_myemergeopts="--quiet --nodeps --update --newuse" run_merge "${clst_ksource}" || exit 1 + + SOURCESDIR="/tmp/kerncache/${clst_kname}/sources" + if [ -L /usr/src/linux ] + then + + # A kernel was merged, move it to $SOURCESDIR + [ -e ${SOURCESDIR} ] && rm -Rf ${SOURCESDIR} + + KERNELVERSION=`portageq best_visible / "${clst_ksource}"` + echo "${KERNELVERSION}" > /tmp/kerncache/${clst_kname}/${clst_kname}-${clst_version_stamp}.KERNELVERSION + + echo "Moving kernel sources to ${SOURCESDIR} ..." + mv `readlink -f /usr/src/linux` ${SOURCESDIR} + + fi + ln -sf ${SOURCESDIR} /usr/src/linux # If catalyst has set to a empty string, extraversion wasn't specified so we # skip this part @@ -259,9 +286,4 @@ unset USE if [ -n "${clst_KERNCACHE}" ] then echo ${clst_kernel_use} > /tmp/kerncache/${clst_kname}/${clst_kname}-${clst_version_stamp}.USE - - if [ -e /etc/portage/profile/package.provided ] - then - sed -i "/^$(echo "${KERNELVERSION}" | sed -e 's|/|\\/|g')\$/d" /etc/portage/profile/package.provided - fi fi -- 1.8.5.3