From eb604952d5a0e1a4554432efc364972f083cf69d Mon Sep 17 00:00:00 2001 From: Tomasz Dziendzielski Date: Wed, 27 Jan 2021 22:33:10 +0100 Subject: insane: Add missing INSANE_SKIP mechanism for native-last QA check Ensure that the native-last QA check can be controlled by the INSANE_SKIP variable (realted to [YOCTO #5729]). (From OE-Core rev: 2d95aee64766341bf81f610386bac222e329f1bb) Signed-off-by: Tomasz Dziendzielski Signed-off-by: Richard Purdie --- meta/classes/insane.bbclass | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) (limited to 'meta/classes/insane.bbclass') diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 3597943ddd..e371c1c71f 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -1367,30 +1367,31 @@ python () { for i in issues: package_qa_handle_error("pkgvarcheck", "%s: Variable %s is set as not being package specific, please fix this." % (d.getVar("FILE"), i), d) - for native_class in ['native', 'nativesdk']: - if bb.data.inherits_class(native_class, d): - - inherited_classes = d.getVar('__inherit_cache', False) or [] - needle = os.path.join('classes', native_class) - - bbclassextend = (d.getVar('BBCLASSEXTEND') or '').split() - # BBCLASSEXTEND items are always added in the end - skip_classes = bbclassextend - if bb.data.inherits_class('native', d) or 'native' in bbclassextend: - # native also inherits nopackages and relocatable bbclasses - skip_classes.extend(['nopackages', 'relocatable']) - - for class_item in reversed(inherited_classes): - if needle not in class_item: - for extend_item in skip_classes: - if os.path.join('classes', '%s.bbclass' % extend_item) in class_item: + if 'native-last' not in (d.getVar('INSANE_SKIP') or "").split(): + for native_class in ['native', 'nativesdk']: + if bb.data.inherits_class(native_class, d): + + inherited_classes = d.getVar('__inherit_cache', False) or [] + needle = os.path.join('classes', native_class) + + bbclassextend = (d.getVar('BBCLASSEXTEND') or '').split() + # BBCLASSEXTEND items are always added in the end + skip_classes = bbclassextend + if bb.data.inherits_class('native', d) or 'native' in bbclassextend: + # native also inherits nopackages and relocatable bbclasses + skip_classes.extend(['nopackages', 'relocatable']) + + for class_item in reversed(inherited_classes): + if needle not in class_item: + for extend_item in skip_classes: + if os.path.join('classes', '%s.bbclass' % extend_item) in class_item: + break + else: + pn = d.getVar('PN') + package_qa_handle_error("native-last", "%s: native/nativesdk class is not inherited last, this can result in unexpected behaviour. " % pn, d) break else: - pn = d.getVar('PN') - package_qa_handle_error("native-last", "%s: native/nativesdk class is not inherited last, this can result in unexpected behaviour. " % pn, d) break - else: - break qa_sane = d.getVar("QA_SANE") if not qa_sane: -- cgit v1.2.3-54-g00ecf