]> code.ossystems Code Review - openembedded-core.git/commitdiff
insane.bbclass: Fix gettext test
authorJoshua Lock <josh@linux.intel.com>
Sat, 19 Dec 2009 12:29:14 +0000 (12:29 +0000)
committerJoshua Lock <josh@linux.intel.com>
Mon, 21 Dec 2009 10:51:50 +0000 (10:51 +0000)
The previous gettext check was broken resulting in many false positives.
This improved version works as follows:
* Adds to the existing os.walk() and builds a list of configure.in and
  configure.ac files
* Tests whether DEPENDS includes an appropriate gettext
* If not greps the configure files in the list for instances of AM_GNU_GETTEXT
* If if an instance is found we bb.fatal with an appropriate message

Signed-off-by: Joshua Lock <josh@linux.intel.com>
meta/classes/insane.bbclass

index 706fc3c2275b6b94af062918378604a7c178860c..9fc8873f22e04bc3d91efb00cc23c8fd0d10189f 100644 (file)
@@ -439,23 +439,6 @@ def package_qa_check_rdepends(pkg, workdir, d):
 
     return sane
 
-def configure_qa_check_gettext(d):
-    # Check to see if gettext is required and if so whether it's in DEPENDS
-    # Returning False means we need gettext but don't have it in DEPENDS
-    if bb.data.inherits_class('native', d):
-       gt = "gettext-native"
-    else:
-       gt = "gettext"
-    deps = bb.utils.explode_deps(bb.data.getVar('DEPENDS', d, True) or "")
-    if gt in deps:
-       return True
-
-    check = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" $CONFIGURE_AC >/dev/null"
-    if os.system(check) == 0:
-       return True
-    else:
-        return False
-
 # The PACKAGE FUNC to scan each package
 python do_package_qa () {
     bb.note("DO PACKAGE QA")
@@ -502,11 +485,8 @@ python do_qa_staging() {
 # have it in DEPENDS
 addtask qa_configure after do_configure before do_compile
 python do_qa_configure() {
-    bb.note("Checking for gettext requirement")
-    if not configure_qa_check_gettext(d):
-       bb.fatal("Gettext required by configure but not in DEPENDS")
-
-    bb.note("Checking sanity of the config.log file")
+    configs = []
+    bb.note("Checking autotools environment for common misconfiguration")
     for root, dirs, files in os.walk(bb.data.getVar('WORKDIR', d, True)):
         statement = "grep 'CROSS COMPILE Badness:' %s > /dev/null" % \
                     os.path.join(root,"config.log")
@@ -514,4 +494,20 @@ python do_qa_configure() {
             if os.system(statement) == 0:
                 bb.fatal("""This autoconf log indicates errors, it looked at host includes.
 Rerun configure task after fixing this. The path was '%s'""" % root)
+
+        if "configure.ac" in files:
+            configs.append(os.path.join(root,"configure.ac"))
+        if "configure.in" in files:
+            configs.append(os.path.join(root, "configure.in"))
+
+    if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk', d):
+       gt = "gettext-native"
+    else:
+       gt = "gettext"
+    deps = bb.utils.explode_deps(bb.data.getVar('DEPENDS', d, True) or "")
+    if gt not in deps:
+       for config in configs:
+           gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config
+           if os.system(gnu) == 0:
+              bb.fatal("Gettext required but not in DEPENDS for file %s" % config)
 }