On 08/08/2011 07:04 PM, James Limbouris wrote:
The pseudo executable sets the PSEUDO_LOCALSTATEDIR environment variable
to point to a sysroot location. During an initial cache build, in which
pseudo is not used as it is being built, the PSEUDO_LOCALSTATEDIR is set
to a per-package location by bitbake.conf, and baked into the cache.
If the cache is subsequently invalidated, bitbake may run under pseudo,
and rebuild it with the sysroot location baked into the cache. This
results in all packages using the same, persistent db, even on package
rebuild, which leads to permissions errors. Making the assignment
unconditional corrects this problem.

I can't tell if this change would impact the use of useradd.bbclass, which also sets PSEUDO_LOCALSTATEDIR in certain circumstances. Mark, can you comment on whether this is a valid concern?

Scott


Signed-off-by: James Limbouris<ja...@digitalmatter.com.au>
---
  meta/conf/bitbake.conf |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 6f0b42c..9a9ab53 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -557,7 +557,7 @@ SRCPV = "${@bb.fetch2.get_srcrev(d)}"
  SRC_URI = "file://${FILE}"

  # Use pseudo as the fakeroot implementation
-PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
+PSEUDO_LOCALSTATEDIR = "${WORKDIR}/pseudo/"
  FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} 
PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${STAGING_DIR_TARGET} 
PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
  FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
  PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"


--
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to