[OE-core] [PATCH v2] sstate: add manifest info for shared file matches
Saul Wold
sgw at linux.intel.com
Thu Oct 18 22:52:57 UTC 2012
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 | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index d2a120b..7c00381 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -120,6 +120,7 @@ def sstate_add(ss, source, dest, d):
def sstate_install(ss, d):
import oe.path
+ import subprocess
sharedfiles = []
shareddirs = []
@@ -164,8 +165,12 @@ def sstate_install(ss, d):
break
if realmatch:
match.append(f)
+ sstate_search_cmd = "grep -rl %s %s | sed -e 's:^.*/::' -e 's:\.populate-sysroot::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
+ search_output = subprocess.check_output(sstate_search_cmd, stderr=subprocess.STDOUT, shell=True)
+ 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")
--
1.7.9.5
More information about the Openembedded-core
mailing list