[oe-commits] Saul Wold : sstate: add manifest info for shared file matches

git at git.openembedded.org git at git.openembedded.org
Sat Oct 27 08:45:17 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: 56268f6e4ed1fc11143173bb1717a8be78c728a5
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=56268f6e4ed1fc11143173bb1717a8be78c728a5

Author: Saul Wold <sgw at linux.intel.com>
Date:   Thu Oct 18 12:25:05 2012 -0700

sstate: add manifest info for shared file matches

Present the manifest file that contains the matches for
files being installed to a location that already contains
that file. This will help to determine which is the correct
recipe to fix when this occurs.

[YOCTO #3191]

Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 meta/classes/sstate.bbclass |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index dee84bf..cbb14e1 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -116,6 +116,7 @@ def sstate_add(ss, source, dest, d):
 
 def sstate_install(ss, d):
     import oe.path
+    import subprocess
 
     sharedfiles = []
     shareddirs = []
@@ -163,8 +164,13 @@ def sstate_install(ss, d):
                     break
             if realmatch:
                 match.append(f)
+                sstate_search_cmd = "grep -rl %s %s --exclude=master.list | sed -e 's:^.*/::' -e 's:\.populate-sysroot::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
+                cmd_array = sstate_search_cmd.split(' ')
+                search_output = subprocess.Popen(cmd_array, stdout=subprocess.PIPE).communicate()[0]
+                if search_output != None:
+                    match.append("Matched in %s" % search_output.rstrip())
     if match:
-        bb.warn("The recipe %s is trying to install files into a shared area when those files already exist. Those files are:\n   %s" % (d.getVar("PN", True), "\n   ".join(match)))
+        bb.warn("The recipe %s is trying to install files into a shared area when those files already exist. Those files and their manifest location are:\n   %s\nPlease verify which package should provide the above files." % (d.getVar('PN', True), "\n   ".join(match)))
 
     # Write out the manifest
     f = open(manifest, "w")





More information about the Openembedded-commits mailing list