]> code.ossystems Code Review - openembedded-core.git/commitdiff
staging: Fix sysroot problem with populate_sysroot dependencies on do_fetch
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 10 Apr 2017 23:20:01 +0000 (00:20 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 11 Apr 2017 17:09:20 +0000 (18:09 +0100)
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>
meta/classes/staging.bbclass

index 27fcd1efa90eb1f0e0789d8162867a3ce2aa8ae2..8bdb437a1ffc3df8f2610b358e10a83406df0afa 100644 (file)
@@ -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