]> code.ossystems Code Review - openembedded-core.git/commitdiff
pseudo/fakeroot: Move the pseudo directory creation into bitbake
authorRichard Purdie <rpurdie@linux.intel.com>
Fri, 22 Oct 2010 12:00:40 +0000 (13:00 +0100)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 22 Oct 2010 12:00:40 +0000 (13:00 +0100)
If sstate was used to accelerate a build, the pseudo directory might not have
been created leading to subsequent task failures.

Also, sstate packages were not being installed under pseudo context meaning
file permissions could have been lost.

Fix these problems by creating a FAKEROOTDIRS variable which bitbake ensures
exists before running tasks and running the appropriate setscene tasks under
fakeroot context.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/runqueue.py
meta/classes/base.bbclass
meta/classes/package.bbclass
meta/classes/package_deb.bbclass
meta/classes/package_ipk.bbclass
meta/classes/package_rpm.bbclass
meta/conf/bitbake.conf

index 0d80a6934c2ab488587bd0e0aacbd4a3710ae504..0a319d2c42b2401ffab6cfb4360599c7879f89ac 100644 (file)
@@ -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
index f540b58fbbe2faac30cab1263f587a0909bde887..feee524a6b24d681a207acd8b6a6bbb837f0ac61 100644 (file)
@@ -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
index b64ff5de58e5a922fbb60d227ec9563c2c123cc2..a35fbb29efea89a251876cd9df362d42474ab708 100644 (file)
@@ -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 () {
index 0efef67b8248f45578b4ab5d58a52902078dfb04..2f0d78ddb4f54303d5fc4ba8f55d1fa0f39b6027 100644 (file)
@@ -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) != '':
index cac0453685f5d48030c21bcedba5a016a72118d1..e93d7e2b169fdfa0d944e140cb1d5a36c36d7410 100644 (file)
@@ -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) != '':
index 0af93e7b74c4d5338726ad99e6d74213558b4b9b..4ad97c35c5804f917fc86542c4188e4139cd4694 100644 (file)
@@ -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)
index 33a6fad30f787fb59c0e54022af4433ec55bb03e..13c8f86a624d3635dbfa6f736f8db3a2da665b5f 100644 (file)
@@ -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"