summaryrefslogtreecommitdiffstats
path: root/scripts/devtool
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-09-06 21:55:01 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-18 11:07:29 +0100
commit3fde63363ab90672d6baf204c2b2dca98320fe7d (patch)
tree17bd84f02a82e57ce9068aafc28338bf282de835 /scripts/devtool
parent10af6d86b3effc523cfa0ec49741c5b02ee2cf86 (diff)
downloadpoky-3fde63363ab90672d6baf204c2b2dca98320fe7d.tar.gz
devtool: ensure recipes devtool is working on are unlocked within the eSDK
Alongside reworking the way devtool extracts source, we now need to ensure that within the extensible SDK where task signatures are locked, the signatures of the tasks for the recipes being worked on get unlocked at the right time or otherwise we'll now get taskhash mismatches when running devtool modify on a recipe that was included in the eSDK such as the kernel (due to a separate bug). The existing mechanism for auto-unlocking recipes was a little weak and was happening too late, so I've reimplemented it so that: (a) it gets triggered immediately when the recipe/append is created (b) we avoid writing to the unlocked signatures file unnecessarily (since it's a global configuration file) and (c) within the eSDK configuration we whitelist SIGGEN_UNLOCKED_RECIPES to avoid unnecessary reparses every time we perform one of the devtool operations that does need to change this list. Fixes [YOCTO #11883] (not the underlying cause, but this manifestation of the issue). (From OE-Core rev: 4e9a0be32fc30fb87d65da7cd1a4015c99533aff) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/devtool')
-rwxr-xr-xscripts/devtool20
1 files changed, 0 insertions, 20 deletions
diff --git a/scripts/devtool b/scripts/devtool
index c9ad9ddb95..5292f187e5 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -130,25 +130,6 @@ def read_workspace():
130 'recipefile': recipefile} 130 'recipefile': recipefile}
131 logger.debug('Found recipe %s' % workspace[pn]) 131 logger.debug('Found recipe %s' % workspace[pn])
132 132
133def create_unlockedsigs():
134 """ This function will make unlocked-sigs.inc match the recipes in the
135 workspace. This runs on every run of devtool, but it lets us ensure
136 the unlocked items are in sync with the workspace. """
137
138 confdir = os.path.join(basepath, 'conf')
139 unlockedsigs = os.path.join(confdir, 'unlocked-sigs.inc')
140 bb.utils.mkdirhier(confdir)
141 with open(os.path.join(confdir, 'unlocked-sigs.inc'), 'w') as f:
142 f.write("# DO NOT MODIFY! YOUR CHANGES WILL BE LOST.\n" +
143 "# This layer was created by the OpenEmbedded devtool" +
144 " utility in order to\n" +
145 "# contain recipes that are unlocked.\n")
146
147 f.write('SIGGEN_UNLOCKED_RECIPES += "\\\n')
148 for pn in workspace:
149 f.write(' ' + pn)
150 f.write('"')
151
152def create_workspace(args, config, basepath, workspace): 133def create_workspace(args, config, basepath, workspace):
153 if args.layerpath: 134 if args.layerpath:
154 workspacedir = os.path.abspath(args.layerpath) 135 workspacedir = os.path.abspath(args.layerpath)
@@ -332,7 +313,6 @@ def main():
332 313
333 if not getattr(args, 'no_workspace', False): 314 if not getattr(args, 'no_workspace', False):
334 read_workspace() 315 read_workspace()
335 create_unlockedsigs()
336 316
337 try: 317 try:
338 ret = args.func(args, config, basepath, workspace) 318 ret = args.func(args, config, basepath, workspace)