diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 0d80a6934c..0a319d2c42 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1066,6 +1066,10 @@ class RunQueueExecute: for var in envvars: comps = var.split("=") env[comps[0]] = comps[1] + fakedirs = (the_data.getVar("FAKEROOTDIRS", True) or "").split() + for p in fakedirs: + bb.mkdirhier(p) + bb.msg.debug(2, bb.msg.domain.RunQueue, "Running %s:%s under fakeroot, state dir is %s" % (fn, taskname, fakedirs)) env['BB_TASKHASH'] = self.rqdata.runq_hash[task] env['PATH'] = self.cooker.configuration.initial_path diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index f540b58fbb..feee524a6b 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -135,7 +135,6 @@ python base_do_setscene () { bb.build.make_stamp("do_setscene", d) } do_setscene[selfstamp] = "1" -do_setscene[dirs] = "${PSEUDO_LOCALSTATEDIR}" addtask setscene before do_fetch addtask fetch diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index b64ff5de58..a35fbb29ef 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1096,6 +1096,8 @@ python do_package_setscene () { sstate_setscene(d) } addtask do_package_setscene +do_package_setscene[fakeroot] = "1" + # Dummy task to mark when all packaging is complete do_package_write () { diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 0efef67b82..2f0d78ddb4 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -273,6 +273,7 @@ python do_package_write_deb_setscene () { sstate_setscene(d) } addtask do_package_write_deb_setscene +do_package_write_deb_setscene[fakeroot] = "1" python () { if bb.data.getVar('PACKAGES', d, True) != '': diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index cac0453685..e93d7e2b16 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -317,6 +317,7 @@ python do_package_write_ipk_setscene () { sstate_setscene(d) } addtask do_package_write_ipk_setscene +do_package_write_ipk_setscene[fakeroot] = "1" python () { if bb.data.getVar('PACKAGES', d, True) != '': diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 0af93e7b74..4ad97c35c5 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -556,6 +556,7 @@ python do_package_write_rpm_setscene () { sstate_setscene(d) } addtask do_package_write_rpm_setscene +do_package_write_rpm_setscene[fakeroot] = "1" python do_package_write_rpm () { bb.build.exec_func("read_subpackage_metadata", d) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 33a6fad30f..13c8f86a62 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -546,6 +546,7 @@ SRC_URI = "file://${FILE}" PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/" FAKEROOT = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 pseudo" FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 LD_PRELOAD=libpseudo.so LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE}/pseudo/lib64:${STAGING_LIBDIR_NATIVE}/pseudo/lib" +FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}" PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"