diff options
author | Guy Martin <gmsoft@gentoo.org> | 2014-02-05 11:40:03 +0100 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2014-03-24 09:07:07 -0700 |
commit | 0b579e881548e7e5d2fac8b47a36f8d513053c76 (patch) | |
tree | 272eb800f01a4c0e96e2471e6ca2e49f5e75cf35 | |
parent | Make use of _kernelopts for hppa. (diff) | |
download | catalyst-0b579e881548e7e5d2fac8b47a36f8d513053c76.tar.gz catalyst-0b579e881548e7e5d2fac8b47a36f8d513053c76.tar.bz2 catalyst-0b579e881548e7e5d2fac8b47a36f8d513053c76.zip |
Fix and improve kernel build when kerncache is enabled.
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
-rw-r--r-- | targets/support/kmerge.sh | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/targets/support/kmerge.sh b/targets/support/kmerge.sh index fac6e9c4..c1b6a359 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=$(</tmp/kerncache/${clst_kname}/${clst_kname}-${clst_version_stamp}.KERNELVERSION) + mkdir -p /etc/portage/profile + echo "${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 |