diff options
Diffstat (limited to 'yocto-poky/meta/classes/kernel-yocto.bbclass')
-rw-r--r-- | yocto-poky/meta/classes/kernel-yocto.bbclass | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/yocto-poky/meta/classes/kernel-yocto.bbclass b/yocto-poky/meta/classes/kernel-yocto.bbclass index 325f94c73..c2d0d3076 100644 --- a/yocto-poky/meta/classes/kernel-yocto.bbclass +++ b/yocto-poky/meta/classes/kernel-yocto.bbclass @@ -52,7 +52,9 @@ def get_machine_branch(d, default): parm = urldata.parm if "branch" in parm: branches = urldata.parm.get("branch").split(',') - return branches[0] + btype = urldata.parm.get("type") + if btype != "kmeta": + return branches[0] return default @@ -182,11 +184,18 @@ do_kernel_checkout() { source_dir=`echo ${S} | sed 's%/$%%'` source_workdir="${WORKDIR}/git" if [ -d "${WORKDIR}/git/" ]; then - # case: git repository (bare or non-bare) + # case: git repository # if S is WORKDIR/git, then we shouldn't be moving or deleting the tree. if [ "${source_dir}" != "${source_workdir}" ]; then - rm -rf ${S} - mv ${WORKDIR}/git ${S} + if [ -d "${source_workdir}/.git" ]; then + # regular git repository with .git + rm -rf ${S} + mv ${WORKDIR}/git ${S} + else + # create source for bare cloned git repository + git clone ${WORKDIR}/git ${S} + rm -rf ${WORKDIR}/git + fi fi cd ${S} else |