diff mbox series

[wrynose,19/28] bitbake.conf: pseudo add rootfs-dbg to PSEUDO_INCLUDE_PATHS

Message ID a71888b3757735f10bdea871915db4f47b2afb01.1790494949.git.yoann.congal@smile.fr
State New
Headers show
Series [wrynose,01/28] go: upgrade 1.26.7 -> 1.26.8 | expand

Commit Message

Yoann Congal Sept. 27, 2026, 7:43 a.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

This is a fix for commit 2502da8170 ("bitbake.conf/pseudo: Switch from
exclusion list to inclusion list"), which forgot ${WORKDIR}/rootfs-dbg.

oe/rootfs.py's _setup_dbg_rootfs() builds the debug tree under
${WORKDIR}/rootfs (already included) and only renames it to
${WORKDIR}/rootfs-dbg as the very last step, so the rename itself
doesn't lose anything: pseudo's database is keyed by (device, inode),
not by path. But PSEUDO_INCLUDE_PATHS also gates whether pseudo
intercepts any *later* access made through the new path prefix, and
rootfs-dbg wasn't covered.

That silently broke image-combined-dbg.bbclass's combine_dbg_image(),
which runs under fakeroot in do_image:

  tar -C ${IMAGE_ROOTFS} -cf - . | tar -C ${IMAGE_ROOTFS}-dbg -xf -

The extracting tar's chown() calls into ${IMAGE_ROOTFS}-dbg fell
through to real, unprivileged syscalls instead of being faked by
pseudo, so files copied into rootfs-dbg silently ended up owned by the
build user instead of their correct target ownership.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 2dd3a54134c04147a863ada4997edab3e8afc6fa)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
 meta/conf/bitbake.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 24e095632e9..c5f84124f0e 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -748,7 +748,7 @@  SRC_URI = ""
 PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
 PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
 PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
-PSEUDO_INCLUDE_PATHS = "/proc,${WORKDIR}/image,${WORKDIR}/package,${WORKDIR}/rootfs,${WORKDIR}/sstate-build-package/,${WORKDIR}/sstate-install-package/,${WORKDIR}/pkgdata,${WORKDIR}/minidebuginfo,${WORKDIR}/devtool-deploy-target-stripped"
+PSEUDO_INCLUDE_PATHS = "/proc,${WORKDIR}/image,${WORKDIR}/package,${WORKDIR}/rootfs,${WORKDIR}/rootfs-dbg,${WORKDIR}/sstate-build-package/,${WORKDIR}/sstate-install-package/,${WORKDIR}/pkgdata,${WORKDIR}/minidebuginfo,${WORKDIR}/devtool-deploy-target-stripped"
 
 export PSEUDO_DISABLED = "1"
 #export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"