diff options
author | Saul Wold <sgw@linux.intel.com> | 2012-10-18 12:25:05 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-10-27 09:31:37 +0100 |
commit | 56268f6e4ed1fc11143173bb1717a8be78c728a5 (patch) | |
tree | 6d1223a01f88dac259c2a51b233eb25bdd67c1e7 | |
parent | 6e44bf71fd4645ea09b3e34b907b17e92b5225e3 (diff) | |
download | openembedded-core-56268f6e4ed1fc11143173bb1717a8be78c728a5.tar.gz openembedded-core-56268f6e4ed1fc11143173bb1717a8be78c728a5.tar.bz2 openembedded-core-56268f6e4ed1fc11143173bb1717a8be78c728a5.zip |
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@linux.intel.com>
-rw-r--r-- | 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 dee84bf391..cbb14e1177 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") |