aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2013-01-24 00:30:31 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-04 13:18:28 +0000
commitaa653b9354e4a414f7a00aa69ec957c47cbb0dcc (patch)
tree64bec2fedb7d9a638b8a52ac6c369bd9e65f05f2 /meta/classes/kernel-yocto.bbclass
parentde2211133f157c3ca8086f318c842e985185f624 (diff)
downloadopenembedded-core-contrib-aa653b9354e4a414f7a00aa69ec957c47cbb0dcc.tar.gz
kernel-yocto/linux-yocto-custom: support low bandwidth options
To support configurations where active development is not being done within the oe/bitbake build environment and restricted bandwidth situations, this commit allows the SRC_URI to point to a kernel tgz instead of a full git repository. Outside of the upstream tgz instead of a kernel git repository, the restrictions, config and patch process is the same as any linux-yocto-custom recipe. An example linux-yocto-custom based recipe would have a configuration like this to build the 3.7 kernel, using an externally supplied config, from the 3.7 tgz: SRC_URI = "http://kernel.org/pub/linux/kernel/v3.0/linux-3.7.tar.bz2" PV = "3.7" S = "${WORKDIR}/linux-3.7" SRC_URI[md5sum] = "5323f3faadd051e83af605a63be5ea2e" SRC_URI[sha256sum] = "dc08d87a579fe2918362e6666e503a95a76296419195cb499aa9dd4dbe171a9e" [YOCTO #2686] (From OE-Core rev: 08b3a282ce75a9972694f0c4379179505b9ec91f) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass34
1 files changed, 21 insertions, 13 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 92ede6a3aa..8494c16787 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -158,22 +158,10 @@ do_kernel_checkout() {
mkdir -p ${S}
# We can fix up the kernel repository even if it wasn't a bare clone.
- # If KMETA is defined, the branch must exist, but a machine branch
- # can be missing since it may be created later by the tools.
mv ${WORKDIR}/git/.git ${S}
rm -rf ${WORKDIR}/git/
cd ${S}
- if [ -n "${KMETA}" ]; then
- git branch -a | grep -q ${KMETA}
- if [ $? -ne 0 ]; then
- echo "ERROR. The branch '${KMETA}' is required and was not"
- echo "found. Ensure that the SRC_URI points to a valid linux-yocto"
- echo "kernel repository"
- exit 1
- fi
- fi
- fi
- if [ -d "${WORKDIR}/git/" ] && [ ! -d "${WORKDIR}/git/.git" ]; then
+ elif [ -d "${WORKDIR}/git/" ] && [ ! -d "${WORKDIR}/git/.git" ]; then
# we build out of {S}, so ensure that ${S} is clean and present
rm -rf ${S}
mkdir -p ${S}/.git
@@ -182,9 +170,29 @@ do_kernel_checkout() {
rm -rf ${WORKDIR}/git/
cd ${S}
git config core.bare false
+ else
+ # We have no git repository at all. To support low bandwidth options
+ # for building the kernel, we'll just convert the tree to a git repo
+ # and let the rest of the process work unchanged
+ cd ${S}
+ git init
+ git add .
+ git commit -q -m "baseline commit: creating repo for ${PN}-${PV}"
fi
# end debare
+ # If KMETA is defined, the branch must exist, but a machine branch
+ # can be missing since it may be created later by the tools.
+ if [ -n "${KMETA}" ]; then
+ git branch -a | grep -q ${KMETA}
+ if [ $? -ne 0 ]; then
+ echo "ERROR. The branch '${KMETA}' is required and was not"
+ echo "found. Ensure that the SRC_URI points to a valid linux-yocto"
+ echo "kernel repository"
+ exit 1
+ fi
+ fi
+
# convert any remote branches to local tracking ones
for i in `git branch -a | grep remotes | grep -v HEAD`; do
b=`echo $i | cut -d' ' -f2 | sed 's%remotes/origin/%%'`;