aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/externalsrc.bbclass2
-rw-r--r--meta/classes/kernel-yocto.bbclass7
-rw-r--r--scripts/lib/devtool/standard.py4
3 files changed, 10 insertions, 3 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
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index cadd038bf6..fe33c7e1be 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -909,7 +909,9 @@ def modify(args, config, basepath, workspace):
if bb.data.inherits_class('kernel', rd):
f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout '
- 'do_fetch do_unpack do_kernel_configme do_kernel_configcheck"\n')
+ 'do_fetch do_kernel_configme do_kernel_configcheck"\n')
+ if bb.data.inherits_class('kernel-yocto', rd):
+ f.write('EXTERNALSRC_KMETA = "1"\n')
f.write('\ndo_patch() {\n'
' :\n'
'}\n')