[OE-core] [PATCH] do_unpack: move qa check of unpack into insane.bbclass

Bian Naimeng biannm at cn.fujitsu.com
Fri Jul 3 03:47:47 UTC 2015


Some source archive are not standard format.
For example, sometimes, we still need decompress file once again after base_do_unpack,
in such case, the following warning will be caught.

 WARNING: xxx : the directory ${WORKDIR}/xxxx (xxxxxx) pointed to by the S variable doesn't exist \
 - please set S within the recipe to point to where the source has been unpacked to

So, we should do this QA check after all of unpack jobs been completed.

Signed-off-by: Bian Naimeng <biannm at cn.fujitsu.com>
---
 meta/classes/base.bbclass   |  3 ---
 meta/classes/insane.bbclass | 12 ++++++++++++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 56fe5f2..5606228 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -152,9 +152,6 @@ python base_do_unpack() {
         fetcher.unpack(rootdir)
     except bb.fetch2.BBFetchException as e:
         raise bb.build.FuncFailed(e)
-
-    if not os.path.exists(s_dir):
-        bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN', True), d.getVar('S', False), s_dir))
 }
 
 def pkgarch_mapping(d):
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 4537eec..fc3d5ff 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -1140,6 +1140,15 @@ Missing inherit gettext?""" % (gt, config))
         except subprocess.CalledProcessError:
             pass
 }
+
+python do_qa_unpack() {
+    bb.note("Checking has ${S} been created")
+
+    s_dir = d.getVar('S', True)
+    if not os.path.exists(s_dir):
+        bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN', True), d.getVar('S', False), s_dir))
+}
+
 # The Staging Func, to check all staging
 #addtask qa_staging after do_populate_sysroot before do_build
 do_populate_sysroot[postfuncs] += "do_qa_staging "
@@ -1149,6 +1158,9 @@ do_populate_sysroot[postfuncs] += "do_qa_staging "
 #addtask qa_configure after do_configure before do_compile
 do_configure[postfuncs] += "do_qa_configure "
 
+# Check does S exist.
+do_unpack[postfuncs] += "do_qa_unpack"
+
 python () {
     tests = d.getVar('ALL_QA', True).split()
     if "desktop" in tests:
-- 
1.9.1




More information about the Openembedded-core mailing list