summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJoshua Lock via Openembedded-core <openembedded-core@lists.openembedded.org>2019-07-30 13:16:08 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-07-31 23:03:01 +0100
commit75698648c0fd45acf03d677e0fa0cd74e258cfc0 (patch)
tree1846b69feb48dac140f3619b2a97bcaaff88f4ee /meta
parent57d702ed5de571751517568872eda2b5ba9fa8df (diff)
downloadpoky-75698648c0fd45acf03d677e0fa0cd74e258cfc0.tar.gz
classes/sstate: regenerate sstate when signing enabled
This change ensures that the task signatures changes, and therefore sstate tasks are rerun, when signing is enabled. This has the positive outcome that if signing is enabled new signed shared state objects will be produced, rather than just signing shared state objects for tasks where no work has been performed yet. The downside of this change is that enabling/disabling sstate object signing alters the taskhash and results in rebuilding the world. (From OE-Core rev: ef60c65e3856682b90b17ae06a1b675756fd4496) Signed-off-by: Joshua Lock <jlock@vmware.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/sstate.bbclass20
1 files changed, 12 insertions, 8 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 3342c5ef50..ee029196da 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -659,8 +659,12 @@ def sstate_package(ss, d):
659 if d.getVar('SSTATE_SKIP_CREATION') == '1': 659 if d.getVar('SSTATE_SKIP_CREATION') == '1':
660 return 660 return
661 661
662 sstate_create_package = ['sstate_report_unihash', 'sstate_create_package']
663 if d.getVar('SSTATE_SIG_KEY'):
664 sstate_create_package.append('sstate_sign_package')
665
662 for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \ 666 for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \
663 ['sstate_report_unihash', 'sstate_create_package', 'sstate_sign_package'] + \ 667 sstate_create_package + \
664 (d.getVar('SSTATEPOSTCREATEFUNCS') or '').split(): 668 (d.getVar('SSTATEPOSTCREATEFUNCS') or '').split():
665 # All hooks should run in SSTATE_BUILDDIR. 669 # All hooks should run in SSTATE_BUILDDIR.
666 bb.build.exec_func(f, d, (sstatebuild,)) 670 bb.build.exec_func(f, d, (sstatebuild,))
@@ -776,13 +780,13 @@ sstate_create_package () {
776python sstate_sign_package () { 780python sstate_sign_package () {
777 from oe.gpg_sign import get_signer 781 from oe.gpg_sign import get_signer
778 782
779 if d.getVar('SSTATE_SIG_KEY'): 783
780 signer = get_signer(d, 'local') 784 signer = get_signer(d, 'local')
781 sstate_pkg = d.getVar('SSTATE_PKG') 785 sstate_pkg = d.getVar('SSTATE_PKG')
782 if os.path.exists(sstate_pkg + '.sig'): 786 if os.path.exists(sstate_pkg + '.sig'):
783 os.unlink(sstate_pkg + '.sig') 787 os.unlink(sstate_pkg + '.sig')
784 signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None, 788 signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None,
785 d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False) 789 d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False)
786} 790}
787 791
788python sstate_report_unihash() { 792python sstate_report_unihash() {