summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-11 00:20:01 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-11 18:09:20 +0100
commitb32fbfc85b14059f0bfdeeffe2c52f8d3c20f276 (patch)
treefa274ac87bd89a172a4dcf03304ae44151b1d6bc
parent8c52a530ba2beb438aa47956bcec3777a1eafe5f (diff)
downloadopenembedded-core-contrib-b32fbfc85b14059f0bfdeeffe2c52f8d3c20f276.tar.gz
openembedded-core-contrib-b32fbfc85b14059f0bfdeeffe2c52f8d3c20f276.tar.bz2
openembedded-core-contrib-b32fbfc85b14059f0bfdeeffe2c52f8d3c20f276.zip
staging: Fix sysroot problem with populate_sysroot dependencies on do_fetch
Dependencies on svn:// urls were failing as the cleandirs on do_fetch was destroying any sysroot setup by the extend_recipe_sysroot function. Add code so that if the task do_fetch, we move the cleandirs to a separate function before the extend_recipe_sysroot prefunc else we'd wipe out the sysroot we just created. This allows fetcher do_populate_sysroot dependencies to work correctly again. I did try various other approaches and a seperate function with cleandirs was the cleanest way to add this without code duplication or too much complexity. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/staging.bbclass7
1 files changed, 6 insertions, 1 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 27fcd1efa9..8bdb437a1f 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -639,7 +639,12 @@ python do_prepare_recipe_sysroot () {
addtask do_prepare_recipe_sysroot before do_configure after do_fetch
# Clean out the recipe specific sysroots before do_fetch
-do_fetch[cleandirs] += "${RECIPE_SYSROOT} ${RECIPE_SYSROOT_NATIVE}"
+# (use a prefunc so we can order before extend_recipe_sysroot if it gets added)
+python clean_recipe_sysroot() {
+ return
+}
+clean_recipe_sysroot[cleandirs] += "${RECIPE_SYSROOT} ${RECIPE_SYSROOT_NATIVE}"
+do_fetch[prefuncs] += "clean_recipe_sysroot"
python staging_taskhandler() {
bbtasks = e.tasklist