]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/sstate: avoid traceback when no files have been staged
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Wed, 3 Apr 2013 07:10:53 +0000 (08:10 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 3 Apr 2013 16:01:09 +0000 (17:01 +0100)
If no files have been staged we want to continue without error instead
of showing a traceback.

Fixes [YOCTO #4056].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/sstate.bbclass

index 3f4f43d47a8714c615b74f9cd2fc8917cce23b4d..67ddc466ce2922f06f13226fdd0615bb3ddbf13f 100644 (file)
@@ -197,7 +197,8 @@ def sstate_install(ss, d):
 
     # Run the actual file install
     for state in ss['dirs']:
-        oe.path.copytree(state[1], state[2])
+        if os.path.exists(state[1]):
+            oe.path.copytree(state[1], state[2])
 
     for postinst in (d.getVar('SSTATEPOSTINSTFUNCS', True) or '').split():
         bb.build.exec_func(postinst, d)
@@ -448,6 +449,8 @@ def sstate_package(ss, d):
     bb.mkdirhier(sstatebuild)
     bb.mkdirhier(os.path.dirname(sstatepkg))
     for state in ss['dirs']:
+        if not os.path.exists(state[1]):
+            continue
         srcbase = state[0].rstrip("/").rsplit('/', 1)[0]
         for walkroot, dirs, files in os.walk(state[1]):
             for file in files: