summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/devtool/standard.py48
1 files changed, 35 insertions, 13 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index f9369eeef0..54920b26f8 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -87,6 +87,38 @@ def add(args, config, basepath, workspace):
87 return 0 87 return 0
88 88
89 89
90def _check_compatible_recipe(pn, d):
91 if pn == 'perf':
92 logger.error("The perf recipe does not actually check out source and thus cannot be supported by this tool")
93 return False
94
95 if pn in ['gcc-source', 'kernel-devsrc', 'package-index']:
96 logger.error("The %s recipe is not supported by this tool" % pn)
97 return False
98
99 if bb.data.inherits_class('image', d):
100 logger.error("The %s recipe is an image, and therefore is not supported by this tool" % pn)
101 return False
102
103 if bb.data.inherits_class('populate_sdk', d):
104 logger.error("The %s recipe is an SDK, and therefore is not supported by this tool" % pn)
105 return False
106
107 if bb.data.inherits_class('packagegroup', d):
108 logger.error("The %s recipe is a packagegroup, and therefore is not supported by this tool" % pn)
109 return False
110
111 if bb.data.inherits_class('meta', d):
112 logger.error("The %s recipe is a meta-recipe, and therefore is not supported by this tool" % pn)
113 return False
114
115 if bb.data.inherits_class('externalsrc', d) and d.getVar('EXTERNALSRC', True):
116 logger.error("externalsrc is currently enabled for the %s recipe. This prevents the normal do_patch task from working. You will need to disable this first." % pn)
117 return False
118
119 return True
120
121
90def _get_recipe_file(cooker, pn): 122def _get_recipe_file(cooker, pn):
91 import oe.recipeutils 123 import oe.recipeutils
92 recipefile = oe.recipeutils.pn_to_recipe(cooker, pn) 124 recipefile = oe.recipeutils.pn_to_recipe(cooker, pn)
@@ -133,16 +165,7 @@ def _extract_source(srctree, keep_temp, devbranch, d):
133 165
134 pn = d.getVar('PN', True) 166 pn = d.getVar('PN', True)
135 167
136 if pn == 'perf': 168 if not _check_compatible_recipe(pn, d):
137 logger.error("The perf recipe does not actually check out source and thus cannot be supported by this tool")
138 return None
139
140 if bb.data.inherits_class('image', d):
141 logger.error("The %s recipe is an image, and therefore is not supported by this tool" % pn)
142 return None
143
144 if bb.data.inherits_class('externalsrc', d) and d.getVar('EXTERNALSRC', True):
145 logger.error("externalsrc is currently enabled for the %s recipe. This prevents the normal do_patch task from working. You will need to disable this first." % pn)
146 return None 169 return None
147 170
148 if os.path.exists(srctree): 171 if os.path.exists(srctree):
@@ -310,9 +333,8 @@ def modify(args, config, basepath, workspace):
310 return -1 333 return -1
311 rd = oe.recipeutils.parse_recipe(recipefile, tinfoil.config_data) 334 rd = oe.recipeutils.parse_recipe(recipefile, tinfoil.config_data)
312 335
313 if bb.data.inherits_class('image', rd): 336 if not _check_compatible_recipe(args.recipename, rd):
314 logger.error("The %s recipe is an image, and therefore is not supported by this tool" % args.recipename) 337 return -1
315 return None
316 338
317 initial_rev = None 339 initial_rev = None
318 commits = [] 340 commits = []