[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