From: "Matt Turner" <mattst88@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/catalyst:wip/mattst88 commit in: targets/support/
Date: Thu, 29 Oct 2020 21:00:40 +0000 (UTC) [thread overview]
Message-ID: <1603236395.97060f608afd21e1463115f46cf2fbc3cee73b5c.mattst88@gentoo> (raw)
Message-ID: <20201029210040.ET08SBJQhr-qNXLKIxQpu3F2QyaSYhxgUcZKYdlxhik@z> (raw)
commit: 97060f608afd21e1463115f46cf2fbc3cee73b5c
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 20 02:38:39 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Oct 20 23:26:35 2020 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=97060f60
targets: Reimplement kerncache support
I cannot see how the code added in commit fed3b45b could have possibly
worked, and in practice it did not.
An earlier commit (beb92087) deleted most or all of the uses of the
*_MATCH variables but left the code that set them in place.
Fixes: beb92087 ("Added patches from Joshua Kinard <kumba <AT> gentoo.org>")
Fixes: fed3b45b ("Fix and improve kernel build when kerncache is enabled.")
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
targets/support/kmerge.sh | 147 +++++++++++++++-------------------------------
1 file changed, 47 insertions(+), 100 deletions(-)
diff --git a/targets/support/kmerge.sh b/targets/support/kmerge.sh
index 6a0137d7..972feb99 100755
--- a/targets/support/kmerge.sh
+++ b/targets/support/kmerge.sh
@@ -85,11 +85,6 @@ genkernel_compile() {
else
genkernel "${GK_ARGS[@]}" || exit 1
fi
- if [ -n "${clst_KERNCACHE}" -a -e /var/tmp/${kname}.config ]
- then
- md5sum /var/tmp/${kname}.config | awk '{print $1}' > \
- /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.CONFIG
- fi
}
[ -n "${clst_ENVSCRIPT}" ] && source /tmp/envscript
@@ -106,117 +101,69 @@ eval eval kernel_gk_kernargs=( \$clst_boot_kernel_${kname}_gk_kernargs )
eval "ksource=\$clst_boot_kernel_${kname}_sources"
[[ -z ${ksource} ]] && ksource="sys-kernel/gentoo-sources"
-# Check if we have a match in kerncach
-
-if [ -n "${clst_KERNCACHE}" ]
-then
- USE_MATCH=0
- if [ -e /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.USE ]
- then
- STR1=$(for i in `cat /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.USE`; do echo $i; done|sort)
- STR2=$(for i in ${kernel_use}; do echo $i; done|sort)
- if [ "${STR1}" = "${STR2}" ]
- then
- USE_MATCH=1
- else
- [ -e /tmp/kerncache/${kname}/usr/src/linux/.config ] && \
- rm /tmp/kerncache/${kname}/usr/src/linux/.config
- fi
- fi
-
- EXTRAVERSION_MATCH=0
- if [ -e /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.EXTRAVERSION ]
- then
- STR1=`cat /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.EXTRAVERSION`
- STR2=${clst_kextraversion}
- if [ "${STR1}" = "${STR2}" ]
- then
- EXTRAVERSION_MATCH=1
- fi
- fi
-
- CONFIG_MATCH=0
- if [ -e /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.CONFIG ]
- then
- if [ ! -e /var/tmp/${kname}.config ]
- then
- CONFIG_MATCH=1
- else
- STR1=`cat /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.CONFIG`
- STR2=`md5sum /var/tmp/${kname}.config|awk '{print $1}'`
- if [ "${STR1}" = "${STR2}" ]
- then
- CONFIG_MATCH=1
- fi
- fi
- fi
+kernel_version=$(portageq best_visible / "${ksource}")
- # install dependencies of kernel sources ahead of time in case
- # package.provided generated below causes them not to be (re)installed
- run_merge --onlydeps "${ksource}"
+if [[ -n ${clst_KERNCACHE} ]]; then
+ mkdir -p "/tmp/kerncache/${kname}"
+ pushd "/tmp/kerncache/${kname}" >/dev/null
- # Create the kerncache directory if it doesn't exists
- mkdir -p /tmp/kerncache/${kname}
+ echo "${kernel_use}" > /tmp/USE
+ echo "${kernel_version}" > /tmp/VERSION
+ echo "${clst_kextraversion}" > /tmp/EXTRAVERSION
- if [ -e /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.KERNELVERSION ]
- then
- KERNELVERSION=$(</tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.KERNELVERSION)
- mkdir -p ${clst_port_conf}/profile
- echo "${KERNELVERSION}" > ${clst_port_conf}/profile/package.provided
- else
- rm -f ${clst_port_conf}/profile/package.provided
+ if cmp -s {/tmp/,}USE && \
+ cmp -s {/tmp/,}VERSION && \
+ cmp -s {/tmp/,}EXTRAVERSION && \
+ cmp -s /var/tmp/${kname}.config CONFIG; then
+ cached_kernel_found="true"
fi
- # Don't use package.provided if there's a pending up/downgrade
- if [[ "$(portageq best_visible / ${ksource})" == "${KERNELVERSION}" ]]; then
- echo "No pending updates for ${ksource}"
- else
- echo "Pending updates for ${ksource}, removing package.provided"
- rm -f ${clst_port_conf}/profile/package.provided
- fi
+ rm -f /tmp/{USE,VERSION,EXTRAVERSION}
+ popd >/dev/null
+fi
+if [[ ! ${cached_kernel_found} ]]; then
USE=symlink run_merge --update "${ksource}"
+fi
+if [[ -n ${clst_KERNCACHE} ]]; then
SOURCESDIR="/tmp/kerncache/${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 / "${ksource}"`
- echo "${KERNELVERSION}" > /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.KERNELVERSION
-
+ if [[ ! ${cached_kernel_found} ]]; then
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
- if [ "${EXTRAVERSION_MATCH}" = "0" ]
- then
- if [ ! "${clst_kextraversion}" = "" ]
- then
- echo "Setting extraversion to ${clst_kextraversion}"
- sed -i -e "s:EXTRAVERSION \(=.*\):EXTRAVERSION \1-${clst_kextraversion}:" /usr/src/linux/Makefile
- echo ${clst_kextraversion} > /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.EXTRAVERSION
- else
- touch /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.EXTRAVERSION
- fi
+ rm -rf "${SOURCESDIR}"
+ mv $(readlink -f /usr/src/linux) "${SOURCESDIR}"
fi
-else
- USE=symlink run_merge --update "${ksource}"
+ ln -snf "${SOURCESDIR}" /usr/src/linux
+fi
- if [ ! "${clst_kextraversion}" = "" ]
- then
- echo "Setting extraversion to ${clst_kextraversion}"
- sed -i -e "s:EXTRAVERSION \(=.*\):EXTRAVERSION \1-${clst_kextraversion}:" /usr/src/linux/Makefile
+if [[ -n ${clst_kextraversion} ]]; then
+ echo "Setting EXTRAVERSION to ${clst_kextraversion}"
+
+ if [[ -e /usr/src/linux/Makefile.bak ]]; then
+ cp /usr/src/linux/Makefile{.bak,}
+ else
+ cp /usr/src/linux/Makefile{,.bak}
fi
+ sed -i -e "s:EXTRAVERSION \(=.*\):EXTRAVERSION \1-${clst_kextraversion}:" \
+ /usr/src/linux/Makefile
fi
genkernel_compile
-if [ -n "${clst_KERNCACHE}" ]
-then
- echo ${kernel_use} > /tmp/kerncache/${kname}/${kname}-${clst_version_stamp}.USE
+# Write out CONFIG, USE, VERSION, and EXTRAVERSION files
+if [[ -n ${clst_KERNCACHE} && ! ${cached_kernel_found} ]]; then
+ pushd "/tmp/kerncache/${kname}" >/dev/null
+
+ cp /var/tmp/${kname}.config CONFIG
+ echo "${kernel_use}" > USE
+ echo "${kernel_version}" > VERSION
+ echo "${clst_kextraversion}" > EXTRAVERSION
+
+ popd >/dev/null
+fi
+
+if [[ ! ${cached_kernel_found} ]]; then
+ run_merge -C "${ksource}"
+ rm /usr/src/linux
fi
next reply other threads:[~2020-10-29 21:00 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-22 18:06 Matt Turner [this message]
2020-10-21 17:58 ` [gentoo-commits] proj/catalyst:master commit in: targets/support/ Matt Turner
2020-10-29 21:00 ` [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
-- strict thread matches above, loose matches on Subject: below --
2020-12-19 19:56 Matt Turner
2021-01-18 19:53 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-29 21:00 [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
2020-10-22 18:06 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-29 21:00 [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
2020-10-22 18:06 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-29 21:00 [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
2020-10-22 18:06 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-29 21:00 [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
2020-10-22 18:06 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-29 21:00 [gentoo-commits] proj/catalyst:wip/mattst88 " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-28 20:51 Matt Turner
2020-10-28 20:51 Matt Turner
2020-10-22 18:06 Matt Turner
2020-10-22 18:06 Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-21 17:58 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-10-20 8:30 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-10-20 23:20 Matt Turner
2020-10-20 23:20 Matt Turner
2020-10-20 23:20 Matt Turner
2020-10-20 23:20 Matt Turner
2020-10-20 19:59 Matt Turner
2020-10-20 19:59 Matt Turner
2020-10-20 19:59 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 8:30 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 4:31 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-10-20 2:50 Matt Turner
2020-05-21 20:25 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-05-20 3:39 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-05-20 3:39 Matt Turner
2020-05-17 3:26 [gentoo-commits] proj/catalyst:master " Matt Turner
2020-05-16 6:54 ` [gentoo-commits] proj/catalyst:pending/mattst88 " Matt Turner
2020-05-16 6:54 Matt Turner
2020-05-03 22:58 Matt Turner
2020-05-03 22:58 Matt Turner
2020-05-03 22:58 Matt Turner
2020-05-03 22:04 Matt Turner
2020-05-03 22:04 Matt Turner
2020-05-03 22:04 Matt Turner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1603236395.97060f608afd21e1463115f46cf2fbc3cee73b5c.mattst88@gentoo \
--to=mattst88@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox