diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-03-05 10:51:20 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-03-20 11:27:45 +0000 |
commit | cb4b07838c267a09ebedba6c30ec25bda2cd11be (patch) | |
tree | d3c2826f27d23f885631c53dcd6fba4634b4c557 /scripts/lib/devtool | |
parent | 221705f0143c9ba4c11180dc9ff1bf29966b23bc (diff) | |
download | poky-cb4b07838c267a09ebedba6c30ec25bda2cd11be.tar.gz |
devtool: modify/extract: prevent usage with incompatible recipes
Consolidate code for checking compatible recipes and consider meta and
packagegroup recipes as well as package-index and gcc-source to be
incompatible.
(From OE-Core rev: 4be9bf637583b341a89af1b9924752abc7d49c94)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/devtool')
-rw-r--r-- | scripts/lib/devtool/standard.py | 48 |
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 | ||
90 | def _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 | |||
90 | def _get_recipe_file(cooker, pn): | 122 | def _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 = [] |