]> code.ossystems Code Review - openembedded-core.git/commitdiff
linux-yocto: apply meta data to external repos
authorBruce Ashfield <bruce.ashfield@windriver.com>
Mon, 4 Apr 2011 03:50:19 +0000 (23:50 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 5 May 2011 10:54:47 +0000 (11:54 +0100)
To support quick uprev and testing, it is desireable to build
repositories that do not have embedded meta data. In this scenario
the meta data can be automatically created or provided externally.
This commit supports the first situation by detecting the lack
of meta data and then automatically creating a base set of meta
files.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
meta/classes/kernel-yocto.bbclass
meta/recipes-kernel/kern-tools/kern-tools-native_git.bb

index fc9f3a76c086a3b28032b46b305f9a8feca2c063..78a13099eef3af74f029454f9e31aea5e58b03a2 100644 (file)
@@ -66,8 +66,15 @@ IFS='
        fi
        cd ${S}
 
-       # checkout and clobber and unimportant files
-       git checkout -f ${KBRANCH}
+       set +e
+       git show-ref --quiet --verify -- "refs/heads/${KBRANCH}"
+       if [ $? -eq 0 ]; then
+               # checkout and clobber and unimportant files
+               git checkout -f ${KBRANCH}
+       else
+               echo "Not checking out ${KBRANCH}, it will be created later"
+               git checkout -f master
+       fi
 }
 do_kernel_checkout[dirs] = "${S}"
 
@@ -105,21 +112,29 @@ python do_kernel_configcheck() {
     bb.plain( "%s" % result )
 }
 
+# overrides the base kernel_do_configure, since we don't want all the
+# defconfig processing in there
+kernel_do_configure() {
+        yes '' | oe_runmake oldconfig
+}
+
+
 # Ensure that the branches (BSP and meta) are on the locatios specified by
 # their SRCREV values. If they are NOT on the right commits, the branches
 # are reset to the correct commit.
 do_validate_branches() {
        cd ${S}
-       branch_head=`git show-ref -s --heads ${KBRANCH}`
-       meta_head=`git show-ref -s --heads ${KMETA}`
-       target_branch_head="${SRCREV_machine}"
-       target_meta_head="${SRCREV_meta}"
 
        # nothing to do if bootstrapping
        if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
                return
        fi
 
+       branch_head=`git show-ref -s --heads ${KBRANCH}`
+       meta_head=`git show-ref -s --heads ${KMETA}`
+       target_branch_head="${SRCREV_machine}"
+       target_meta_head="${SRCREV_meta}"
+
        current=`git branch |grep \*|sed 's/^\* //'`
        if [ -n "$target_branch_head" ] && [ "$branch_head" != "$target_branch_head" ]; then
                if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
index 00cc666018898451b92ecad45f013ad37657658b..cc711790a151618bf4cb64fdf88084b05f137f3b 100644 (file)
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=e2bf4415f3d8
 
 DEPENDS = "git-native guilt-native"
 
-SRCREV = "8f61abb6344e78677450994e8930cabc86102d78"
+SRCREV = "92b965b02e3ac32badde3ee71a1e7d3a85cedeb8"
 PR = r10
 PV = "0.1+git${SRCPV}"