Patchwork classes/sstate: avoid traceback when no files have been staged

login
register
mail settings
Submitter Paul Eggleton
Date April 3, 2013, 7:10 a.m.
Message ID <1364973053-28019-1-git-send-email-paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/47323/
State Accepted
Commit ca36be708e54c0c86535bc8512295c76c48f6cf5
Headers show

Comments

Paul Eggleton - April 3, 2013, 7:10 a.m.
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>
---
 meta/classes/sstate.bbclass |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 3f4f43d..67ddc46 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -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: