summaryrefslogtreecommitdiffstats
path: root/meta/classes/staging.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/staging.bbclass')
-rw-r--r--meta/classes/staging.bbclass18
1 files changed, 15 insertions, 3 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index a774088393..6185aefecd 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -388,6 +388,8 @@ python extend_recipe_sysroot() {
388 postinsts = [] 388 postinsts = []
389 multilibs = {} 389 multilibs = {}
390 manifests = {} 390 manifests = {}
391 # All files that we're going to be installing, to find conflicts.
392 fileset = {}
391 393
392 for f in os.listdir(depdir): 394 for f in os.listdir(depdir):
393 if not f.endswith(".complete"): 395 if not f.endswith(".complete"):
@@ -514,8 +516,19 @@ python extend_recipe_sysroot() {
514 if l.endswith("/fixmepath.cmd"): 516 if l.endswith("/fixmepath.cmd"):
515 continue 517 continue
516 dest = l.replace(stagingdir, "") 518 dest = l.replace(stagingdir, "")
517 dest = targetdir + "/" + "/".join(dest.split("/")[3:]) 519 dest = "/" + "/".join(dest.split("/")[3:])
518 newmanifest[l] = dest 520 newmanifest[l] = targetdir + dest
521
522 # Check if files have already been installed by another
523 # recipe and abort if they have, explaining what recipes are
524 # conflicting.
525 hashname = targetdir + dest
526 if not hashname.endswith("/"):
527 if hashname in fileset:
528 bb.fatal("The file %s is installed by both %s and %s, aborting" % (dest, c, fileset[hashname]))
529 else:
530 fileset[hashname] = c
531
519 # Having multiple identical manifests in each sysroot eats diskspace so 532 # Having multiple identical manifests in each sysroot eats diskspace so
520 # create a shared pool of them and hardlink if we can. 533 # create a shared pool of them and hardlink if we can.
521 # We create the manifest in advance so that if something fails during installation, 534 # We create the manifest in advance so that if something fails during installation,
@@ -594,4 +607,3 @@ python staging_taskhandler() {
594} 607}
595staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess" 608staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess"
596addhandler staging_taskhandler 609addhandler staging_taskhandler
597