[OE-core] [PATCH 3/3] package signing: do sanity checking in an event handler
Markus Lehtonen
markus.lehtonen at linux.intel.com
Fri Feb 5 14:00:24 UTC 2016
This way, one does not get a ton of identical error messages. But, only
one error message before all the recipes are parsed.
Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
---
meta/classes/sign_package_feed.bbclass | 26 ++++++++++++++++----------
meta/classes/sign_rpm.bbclass | 26 ++++++++++++++++----------
2 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/meta/classes/sign_package_feed.bbclass b/meta/classes/sign_package_feed.bbclass
index 3f6ff2d..5170562 100644
--- a/meta/classes/sign_package_feed.bbclass
+++ b/meta/classes/sign_package_feed.bbclass
@@ -22,18 +22,24 @@ PACKAGE_FEED_SIGN = '1'
PACKAGE_FEED_GPG_BACKEND ?= 'local'
-python () {
+addhandler sign_package_feed_eventhandler
+sign_package_feed_eventhandler[eventmask] = "bb.event.SanityCheck"
+python sign_package_feed_eventhandler() {
# Check sanity of config
- from oe.gpg_sign import get_signer_class
- signer = get_signer_class(d.getVar('PACKAGE_FEED_GPG_BACKEND', True))
- err_msg = signer.check_sanity(d,
- d.getVar('PACKAGE_FEED_GPG_NAME', True),
- d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE', True))
- if err_msg:
- raise_sanity_error(err_msg %{'keyid': 'PACKAGE_FEED_GPG_NAME',
- 'passphrase_file': 'PACKAGE_FEED_GPG_PASSPHRASE_FILE'},
- d)
+ if bb.event.getName(e) == "SanityCheck":
+ from oe.gpg_sign import get_signer_class
+ d = e.data
+ signer = get_signer_class(d.getVar('PACKAGE_FEED_GPG_BACKEND', True))
+ err_msg = signer.check_sanity(d,
+ d.getVar('PACKAGE_FEED_GPG_NAME', True),
+ d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE', True))
+ if err_msg:
+ raise_sanity_error(err_msg %{'keyid': 'PACKAGE_FEED_GPG_NAME',
+ 'passphrase_file': 'PACKAGE_FEED_GPG_PASSPHRASE_FILE'},
+ d)
+}
+python () {
# Set expected location of the public key
d.setVar('PACKAGE_FEED_GPG_PUBKEY',
os.path.join(d.getVar('STAGING_ETCDIR_NATIVE', False),
diff --git a/meta/classes/sign_rpm.bbclass b/meta/classes/sign_rpm.bbclass
index 79dc517..47a8378 100644
--- a/meta/classes/sign_rpm.bbclass
+++ b/meta/classes/sign_rpm.bbclass
@@ -21,18 +21,24 @@ RPM_SIGN_PACKAGES='1'
RPM_GPG_BACKEND ?= 'local'
-python () {
+addhandler sign_rpm_eventhandler
+sign_rpm_eventhandler[eventmask] = "bb.event.SanityCheck"
+python sign_rpm_eventhandler() {
# Check sanity of config
- from oe.gpg_sign import get_signer_class
- signer = get_signer_class(d.getVar('RPM_GPG_BACKEND', True))
- err_msg = signer.check_sanity(d,
- d.getVar('RPM_GPG_NAME', True),
- d.getVar('RPM_GPG_PASSPHRASE_FILE', True))
- if err_msg:
- raise_sanity_error(err_msg %{'keyid': 'RPM_GPG_NAME',
- 'passphrase_file': 'RPM_GPG_PASSPHRASE_FILE'},
- d)
+ if bb.event.getName(e) == "SanityCheck":
+ from oe.gpg_sign import get_signer_class
+ d = e.data
+ signer = get_signer_class(d.getVar('RPM_GPG_BACKEND', True))
+ err_msg = signer.check_sanity(d,
+ d.getVar('RPM_GPG_NAME', True),
+ d.getVar('RPM_GPG_PASSPHRASE_FILE', True))
+ if err_msg:
+ raise_sanity_error(err_msg %{'keyid': 'RPM_GPG_NAME',
+ 'passphrase_file': 'RPM_GPG_PASSPHRASE_FILE'},
+ d)
+}
+python () {
# Set the expected location of the public key
d.setVar('RPM_GPG_PUBKEY', os.path.join(d.getVar('STAGING_ETCDIR_NATIVE', False),
'RPM-GPG-PUBKEY'))
--
2.6.2
More information about the Openembedded-core
mailing list