* [PATCHv3] sstate.bbclass: Fetch non-existing local .sig files if needed
@ 2023-01-30 14:20 Tobias Hagelborn
2023-02-02 12:49 ` [OE-core] " Peter Kjellerstedt
0 siblings, 1 reply; 2+ messages in thread
From: Tobias Hagelborn @ 2023-01-30 14:20 UTC (permalink / raw)
To: openembedded-core
For the case of a global shared state cache and a local sstate cache
with a mix of signed and un-signed entries, there is a case where
a .sig is missing locally, but may exist in the global sstate cache.
For this case, do not just fail sstate fetch, but rather backfill
the .sig file from the global sstate cache.
If this case is detected, re-run the fetch operation to get the
global .sig file (if it exists).
Signed-off-by: Tobias Hagelborn <tobias.hagelborn@axis.com>
---
New in v3:
* Use exists
* Consolidate into previously existing fetch block (with new condition)
meta/classes-global/sstate.bbclass | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 77e3ea34e1..567de4aba4 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -365,8 +365,9 @@ def sstate_installpkg(ss, d):
d.setVar("SSTATE_CURRTASK", ss['task'])
sstatefetch = d.getVar('SSTATE_PKGNAME')
sstatepkg = d.getVar('SSTATE_PKG')
+ verify_sig = bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False)
- if not os.path.exists(sstatepkg):
+ if not os.path.exists(sstatepkg) or (verify_sig and not os.path.exists(sstatepkg + '.sig')):
pstaging_fetch(sstatefetch, d)
if not os.path.isfile(sstatepkg):
@@ -377,7 +378,7 @@ def sstate_installpkg(ss, d):
d.setVar('SSTATE_INSTDIR', sstateinst)
- if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
+ if verify_sig:
if not os.path.isfile(sstatepkg + '.sig'):
bb.warn("No signature file for sstate package %s, skipping acceleration..." % sstatepkg)
return False
--
2.30.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* RE: [OE-core] [PATCHv3] sstate.bbclass: Fetch non-existing local .sig files if needed
2023-01-30 14:20 [PATCHv3] sstate.bbclass: Fetch non-existing local .sig files if needed Tobias Hagelborn
@ 2023-02-02 12:49 ` Peter Kjellerstedt
0 siblings, 0 replies; 2+ messages in thread
From: Peter Kjellerstedt @ 2023-02-02 12:49 UTC (permalink / raw)
To: Steve Sakoman; +Cc: Tobias Hagelborn, openembedded-core@lists.openembedded.org
Please backport this to Kirkstone and Langdale.
//Peter
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Tobias Hagelborn
> Sent: den 30 januari 2023 15:20
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCHv3] sstate.bbclass: Fetch non-existing local .sig files if needed
>
> For the case of a global shared state cache and a local sstate cache
> with a mix of signed and un-signed entries, there is a case where
> a .sig is missing locally, but may exist in the global sstate cache.
>
> For this case, do not just fail sstate fetch, but rather backfill
> the .sig file from the global sstate cache.
>
> If this case is detected, re-run the fetch operation to get the
> global .sig file (if it exists).
>
> Signed-off-by: Tobias Hagelborn <tobias.hagelborn@axis.com>
> ---
> New in v3:
> * Use exists
> * Consolidate into previously existing fetch block (with new condition)
>
> meta/classes-global/sstate.bbclass | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
> index 77e3ea34e1..567de4aba4 100644
> --- a/meta/classes-global/sstate.bbclass
> +++ b/meta/classes-global/sstate.bbclass
> @@ -365,8 +365,9 @@ def sstate_installpkg(ss, d):
> d.setVar("SSTATE_CURRTASK", ss['task'])
> sstatefetch = d.getVar('SSTATE_PKGNAME')
> sstatepkg = d.getVar('SSTATE_PKG')
> + verify_sig = bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False)
>
> - if not os.path.exists(sstatepkg):
> + if not os.path.exists(sstatepkg) or (verify_sig and not os.path.exists(sstatepkg + '.sig')):
> pstaging_fetch(sstatefetch, d)
>
> if not os.path.isfile(sstatepkg):
> @@ -377,7 +378,7 @@ def sstate_installpkg(ss, d):
>
> d.setVar('SSTATE_INSTDIR', sstateinst)
>
> - if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
> + if verify_sig:
> if not os.path.isfile(sstatepkg + '.sig'):
> bb.warn("No signature file for sstate package %s, skipping acceleration..." % sstatepkg)
> return False
> --
> 2.30.2
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-02-02 12:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-30 14:20 [PATCHv3] sstate.bbclass: Fetch non-existing local .sig files if needed Tobias Hagelborn
2023-02-02 12:49 ` [OE-core] " Peter Kjellerstedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox