diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-12-04 10:42:13 +1300 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-12-05 14:39:24 +1300 |
commit | 9c274bc8a5d622ab3cdf3b8439bdb0503cfbf7ad (patch) | |
tree | 9b9d73bf736ca538a6fd00225c7882f75922ceca /meta | |
parent | 854119e59af55a565f24d5d069dc29eb48d00dab (diff) | |
download | openembedded-core-contrib-9c274bc8a5d622ab3cdf3b8439bdb0503cfbf7ad.tar.gz |
devtool: fix handling of linux-yocto after multisrc changes
devtool now handles multiple source trees for any recipe that includes
them in SRC_URI, extracting them all side-by-side so that you can make
changes in any of them. As a result, when running devtool modify on a
linux-yocto kernel recipe under the source path you will get a "source"
subdirectory containing the kernel source and a "kernel-meta"
subdirectory next to it containing the kernel metadata. (Previously you
just got the source tree and the kernel metadata remained in the work
directory). We create a symlink automatically at do_unpack from the work
directory so that it can still be found there, however
kernel_feature_dirs() expects to find the kernel-meta repository and
we also now need to make externalsrc remove that so that it doesn't
unpack and overwrite the one we've already extracted. Change
kernel_feature_dirs() so that if there are no kmeta entries in SRC_URI,
it will fall back to a directory named ${KMETA} if it happens to be
present in the work directory, ignoring how it got there.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/externalsrc.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/kernel-yocto.bbclass | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index 65dd13ddc1..1ce53ee2d6 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -65,7 +65,7 @@ python () { url_data = fetch.ud[url] parm = url_data.parm if (url_data.type == 'file' or - 'type' in parm and parm['type'] == 'kmeta'): + (parm.get('type', None) == 'kmeta' and d.getVar('EXTERNALSRC_KMETA') != "1")): local_srcuri.append(url) d.setVar('SRC_URI', ' '.join(local_srcuri)) diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 1d447951c4..18a7113227 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass @@ -42,7 +42,12 @@ def find_kernel_feature_dirs(d): destdir = parm["destsuffix"] if type == "kmeta": feature_dirs.append(destdir) - + if not feature_dirs: + # If the kernel-meta directory already exists (e.g from externalsrc) + # with EXTERNALSRC_KMETA = "1" then use it + kmetadir = d.getVar('KMETA') + if os.path.isdir(os.path.join(d.getVar('WORKDIR'), kmetadir)): + feature_dirs.append(kmetadir) return feature_dirs # find the master/machine source branch. In the same way that the fetcher proceses |