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 | |
| 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')
| -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 = [] |
