summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/populate_sdk_ext.bbclass5
-rwxr-xr-xscripts/devtool20
2 files changed, 25 insertions, 0 deletions
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index d1977a760a..87518d1767 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -140,6 +140,10 @@ python copy_buildsystem () {
140 with open(os.path.join(baseoutpath, 'conf', 'devtool.conf'), 'w') as f: 140 with open(os.path.join(baseoutpath, 'conf', 'devtool.conf'), 'w') as f:
141 config.write(f) 141 config.write(f)
142 142
143 unlockedsigs = os.path.join(baseoutpath, 'conf', 'unlocked-sigs.inc')
144 with open(unlockedsigs, 'w') as f:
145 pass
146
143 # Create a layer for new recipes / appends 147 # Create a layer for new recipes / appends
144 bbpath = d.getVar('BBPATH', True) 148 bbpath = d.getVar('BBPATH', True)
145 bb.process.run(['devtool', '--bbpath', bbpath, '--basepath', baseoutpath, 'create-workspace', '--create-only', os.path.join(baseoutpath, 'workspace')]) 149 bb.process.run(['devtool', '--bbpath', bbpath, '--basepath', baseoutpath, 'create-workspace', '--create-only', os.path.join(baseoutpath, 'workspace')])
@@ -238,6 +242,7 @@ python copy_buildsystem () {
238 f.write(line.strip() + '\n') 242 f.write(line.strip() + '\n')
239 243
240 f.write('require conf/locked-sigs.inc\n') 244 f.write('require conf/locked-sigs.inc\n')
245 f.write('require conf/unlocked-sigs.inc\n')
241 246
242 if os.path.exists(builddir + '/conf/auto.conf'): 247 if os.path.exists(builddir + '/conf/auto.conf'):
243 if derivative: 248 if derivative:
diff --git a/scripts/devtool b/scripts/devtool
index e1198b1369..4780390654 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -125,6 +125,25 @@ def read_workspace():
125 'recipefile': recipefile} 125 'recipefile': recipefile}
126 logger.debug('Found recipe %s' % workspace[pn]) 126 logger.debug('Found recipe %s' % workspace[pn])
127 127
128def create_unlockedsigs():
129 """ This function will make unlocked-sigs.inc match the recipes in the
130 workspace. This runs on every run of devtool, but it lets us ensure
131 the unlocked items are in sync with the workspace. """
132
133 confdir = os.path.join(basepath, 'conf')
134 unlockedsigs = os.path.join(confdir, 'unlocked-sigs.inc')
135 bb.utils.mkdirhier(confdir)
136 with open(os.path.join(confdir, 'unlocked-sigs.inc'), 'w') as f:
137 f.write("# DO NOT MODIFY! YOUR CHANGES WILL BE LOST.\n" +
138 "# This layer was created by the OpenEmbedded devtool" +
139 " utility in order to\n" +
140 "# contain recipes that are unlocked.\n")
141
142 f.write('SIGGEN_UNLOCKED_RECIPES += "\\\n')
143 for pn in workspace:
144 f.write(' ' + pn)
145 f.write('"')
146
128def create_workspace(args, config, basepath, workspace): 147def create_workspace(args, config, basepath, workspace):
129 if args.layerpath: 148 if args.layerpath:
130 workspacedir = os.path.abspath(args.layerpath) 149 workspacedir = os.path.abspath(args.layerpath)
@@ -299,6 +318,7 @@ def main():
299 318
300 if not getattr(args, 'no_workspace', False): 319 if not getattr(args, 'no_workspace', False):
301 read_workspace() 320 read_workspace()
321 create_unlockedsigs()
302 322
303 try: 323 try:
304 ret = args.func(args, config, basepath, workspace) 324 ret = args.func(args, config, basepath, workspace)