summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2025-05-10 16:54:21 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-05-12 22:01:56 +0100
commit6a2ad60ecc7739d7dbfdf74d67200df374bca4ef (patch)
tree0012a7044a5a9cd98ea0c2fdbbe19e13384a6926
parentc40f78b267bab09925f4879dbfbb6ec2f837187c (diff)
downloadpoky-master.tar.gz
bitbake.conf/pseudo: Switch from exclusion list to inclusion listHEADmaster
Currently, pseudo tracks all files referenced within its presence unless they're listed in an exclusion list. The exclusion list has grown to be fairly unwieldy. This patch swaps PSEUDO_IGNORE_PATHS for PSEUDO_INCLUDE_PATHS which in theory should be easier and more explicit to maintain. This change does drop many directories from pseudo coverage including /home and /tmp. There may be adapatations needed for recipes/classes using pseudo in specific ways. (From OE-Core rev: 2502da81709f25de499277b28d33c915638c45f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-global/license.bbclass1
-rw-r--r--meta/classes-global/sanity.bbclass4
-rw-r--r--meta/classes-global/sstate.bbclass2
-rw-r--r--meta/classes-recipe/image.bbclass4
-rw-r--r--meta/classes-recipe/image_types_wic.bbclass4
-rw-r--r--meta/classes-recipe/populate_sdk_base.bbclass4
-rw-r--r--meta/classes/archiver.bbclass1
-rw-r--r--meta/conf/bitbake.conf11
-rw-r--r--meta/conf/multilib.conf2
-rw-r--r--meta/lib/oeqa/selftest/cases/runtime_test.py2
-rw-r--r--meta/recipes-core/glibc/glibc-locale.inc2
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb2
-rw-r--r--scripts/lib/wic/partition.py8
13 files changed, 20 insertions, 27 deletions
diff --git a/meta/classes-global/license.bbclass b/meta/classes-global/license.bbclass
index 94dcc7f331..af5f1ed41d 100644
--- a/meta/classes-global/license.bbclass
+++ b/meta/classes-global/license.bbclass
@@ -44,7 +44,6 @@ python do_populate_lic() {
44 oe.qa.exit_if_errors(d) 44 oe.qa.exit_if_errors(d)
45} 45}
46 46
47PSEUDO_IGNORE_PATHS .= ",${@','.join(((d.getVar('COMMON_LICENSE_DIR') or '') + ' ' + (d.getVar('LICENSE_PATH') or '') + ' ' + d.getVar('COREBASE') + '/meta/COPYING').split())}"
48# it would be better to copy them in do_install:append, but find_license_files is python 47# it would be better to copy them in do_install:append, but find_license_files is python
49python perform_packagecopy:prepend () { 48python perform_packagecopy:prepend () {
50 enabled = oe.data.typed_value('LICENSE_CREATE_PACKAGE', d) 49 enabled = oe.data.typed_value('LICENSE_CREATE_PACKAGE', d)
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass
index 192582b82e..d1452967fc 100644
--- a/meta/classes-global/sanity.bbclass
+++ b/meta/classes-global/sanity.bbclass
@@ -733,14 +733,14 @@ def check_sanity_version_change(status, d):
733 status.addresult("TMPDIR is setuid, please don't build in a setuid directory") 733 status.addresult("TMPDIR is setuid, please don't build in a setuid directory")
734 734
735 # Check that a user isn't building in a path in PSEUDO_IGNORE_PATHS 735 # Check that a user isn't building in a path in PSEUDO_IGNORE_PATHS
736 pseudoignorepaths = d.getVar('PSEUDO_IGNORE_PATHS', expand=True).split(",") 736 pseudoignorepaths = (d.getVar('PSEUDO_IGNORE_PATHS', expand=True) or "").split(",")
737 workdir = d.getVar('WORKDIR', expand=True) 737 workdir = d.getVar('WORKDIR', expand=True)
738 for i in pseudoignorepaths: 738 for i in pseudoignorepaths:
739 if i and workdir.startswith(i): 739 if i and workdir.startswith(i):
740 status.addresult("You are building in a path included in PSEUDO_IGNORE_PATHS " + str(i) + " please locate the build outside this path.\n") 740 status.addresult("You are building in a path included in PSEUDO_IGNORE_PATHS " + str(i) + " please locate the build outside this path.\n")
741 741
742 # Check if PSEUDO_IGNORE_PATHS and paths under pseudo control overlap 742 # Check if PSEUDO_IGNORE_PATHS and paths under pseudo control overlap
743 pseudoignorepaths = d.getVar('PSEUDO_IGNORE_PATHS', expand=True).split(",") 743 pseudoignorepaths = (d.getVar('PSEUDO_IGNORE_PATHS', expand=True) or "").split(",")
744 pseudo_control_dir = "${D},${PKGD},${PKGDEST},${IMAGEROOTFS},${SDK_OUTPUT}" 744 pseudo_control_dir = "${D},${PKGD},${PKGDEST},${IMAGEROOTFS},${SDK_OUTPUT}"
745 pseudocontroldir = d.expand(pseudo_control_dir).split(",") 745 pseudocontroldir = d.expand(pseudo_control_dir).split(",")
746 for i in pseudoignorepaths: 746 for i in pseudoignorepaths:
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 2c259a6657..1d7b033b80 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -76,7 +76,7 @@ SSTATE_SCAN_CMD_NATIVE ??= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_N
76SSTATE_HASHEQUIV_FILEMAP ?= " \ 76SSTATE_HASHEQUIV_FILEMAP ?= " \
77 populate_sysroot:*/postinst-useradd-*:${TMPDIR} \ 77 populate_sysroot:*/postinst-useradd-*:${TMPDIR} \
78 populate_sysroot:*/postinst-useradd-*:${COREBASE} \ 78 populate_sysroot:*/postinst-useradd-*:${COREBASE} \
79 populate_sysroot:*/postinst-useradd-*:regex-\s(PATH|PSEUDO_IGNORE_PATHS|HOME|LOGNAME|OMP_NUM_THREADS|USER)=.*\s \ 79 populate_sysroot:*/postinst-useradd-*:regex-\s(PATH|PSEUDO_INCLUDE_PATHS|HOME|LOGNAME|OMP_NUM_THREADS|USER)=.*\s \
80 populate_sysroot:*/crossscripts/*:${TMPDIR} \ 80 populate_sysroot:*/crossscripts/*:${TMPDIR} \
81 populate_sysroot:*/crossscripts/*:${COREBASE} \ 81 populate_sysroot:*/crossscripts/*:${COREBASE} \
82 " 82 "
diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass
index dc4ce5c0a9..24a19fce1a 100644
--- a/meta/classes-recipe/image.bbclass
+++ b/meta/classes-recipe/image.bbclass
@@ -199,8 +199,6 @@ IMAGE_LOCALES_ARCHIVE ?= '1'
199# aren't yet available. 199# aren't yet available.
200PSEUDO_PASSWD = "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}" 200PSEUDO_PASSWD = "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}"
201 201
202PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/intercept_scripts,${WORKDIR}/oe-rootfs-repo,${WORKDIR}/sstate-build-image_complete"
203
204PACKAGE_EXCLUDE ??= "" 202PACKAGE_EXCLUDE ??= ""
205PACKAGE_EXCLUDE[type] = "list" 203PACKAGE_EXCLUDE[type] = "list"
206 204
@@ -666,6 +664,8 @@ MULTILIBRE_ALLOW_REP += "${base_bindir} ${base_sbindir} ${bindir} ${sbindir} ${l
666MULTILIB_CHECK_FILE = "${WORKDIR}/multilib_check.py" 664MULTILIB_CHECK_FILE = "${WORKDIR}/multilib_check.py"
667MULTILIB_TEMP_ROOTFS = "${WORKDIR}/multilib" 665MULTILIB_TEMP_ROOTFS = "${WORKDIR}/multilib"
668 666
667PSEUDO_INCLUDE_PATHS .= ",${MULTILIB_TEMP_ROOTFS}"
668
669do_fetch[noexec] = "1" 669do_fetch[noexec] = "1"
670do_unpack[noexec] = "1" 670do_unpack[noexec] = "1"
671do_patch[noexec] = "1" 671do_patch[noexec] = "1"
diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass
index 1b422b6280..61f028bd7b 100644
--- a/meta/classes-recipe/image_types_wic.bbclass
+++ b/meta/classes-recipe/image_types_wic.bbclass
@@ -30,7 +30,7 @@ WICVARS ?= "\
30 KERNEL_CONSOLE \ 30 KERNEL_CONSOLE \
31 KERNEL_IMAGETYPE \ 31 KERNEL_IMAGETYPE \
32 MACHINE \ 32 MACHINE \
33 PSEUDO_IGNORE_PATHS \ 33 PSEUDO_INCLUDE_PATHS \
34 RECIPE_SYSROOT_NATIVE \ 34 RECIPE_SYSROOT_NATIVE \
35 ROOTFS_SIZE \ 35 ROOTFS_SIZE \
36 STAGING_DATADIR \ 36 STAGING_DATADIR \
@@ -96,8 +96,6 @@ IMAGE_CMD:wic[vardepsexclude] = "WKS_FULL_PATH WKS_FILES TOPDIR"
96SPDX_IMAGE_PURPOSE:wic = "diskImage" 96SPDX_IMAGE_PURPOSE:wic = "diskImage"
97do_image_wic[cleandirs] = "${WORKDIR}/build-wic" 97do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
98 98
99PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/build-wic"
100
101# Rebuild when the wks file or vars in WICVARS change 99# Rebuild when the wks file or vars in WICVARS change
102USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}" 100USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
103WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}" 101WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
diff --git a/meta/classes-recipe/populate_sdk_base.bbclass b/meta/classes-recipe/populate_sdk_base.bbclass
index 238cb1ee6e..8ef4b2be77 100644
--- a/meta/classes-recipe/populate_sdk_base.bbclass
+++ b/meta/classes-recipe/populate_sdk_base.bbclass
@@ -52,6 +52,8 @@ SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
52 52
53SDKDEPLOYDIR = "${WORKDIR}/${SDKMACHINE}-deploy-${PN}-populate-sdk" 53SDKDEPLOYDIR = "${WORKDIR}/${SDKMACHINE}-deploy-${PN}-populate-sdk"
54 54
55PSEUDO_INCLUDE_PATHS .= ",${SDK_DIR}"
56
55B:task-populate-sdk = "${SDK_DIR}" 57B:task-populate-sdk = "${SDK_DIR}"
56 58
57SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}" 59SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
@@ -263,8 +265,6 @@ python do_populate_sdk_setscene () {
263} 265}
264addtask do_populate_sdk_setscene 266addtask do_populate_sdk_setscene
265 267
266PSEUDO_IGNORE_PATHS .= ",${SDKDEPLOYDIR},${WORKDIR}/oe-sdk-repo,${WORKDIR}/sstate-build-populate_sdk"
267
268fakeroot create_sdk_files() { 268fakeroot create_sdk_files() {
269 cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/ 269 cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
270 270
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index df271feddd..a95c899a0f 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -166,6 +166,7 @@ python () {
166 d.appendVarFlag('do_package_write_rpm', 'dirs', ' ${ARCHIVER_RPMTOPDIR}') 166 d.appendVarFlag('do_package_write_rpm', 'dirs', ' ${ARCHIVER_RPMTOPDIR}')
167 d.appendVarFlag('do_package_write_rpm', 'sstate-inputdirs', ' ${ARCHIVER_RPMTOPDIR}') 167 d.appendVarFlag('do_package_write_rpm', 'sstate-inputdirs', ' ${ARCHIVER_RPMTOPDIR}')
168 d.appendVarFlag('do_package_write_rpm', 'sstate-outputdirs', ' ${DEPLOY_DIR_SRC}') 168 d.appendVarFlag('do_package_write_rpm', 'sstate-outputdirs', ' ${DEPLOY_DIR_SRC}')
169 d.appendVar('PSEUDO_INCLUDE_PATHS', ',${ARCHIVER_TOPDIR}')
169 if ar_dumpdata == "1": 170 if ar_dumpdata == "1":
170 d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_dumpdata' % pn) 171 d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_dumpdata' % pn)
171 if ar_recipe == "1": 172 if ar_recipe == "1":
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index b1dae17267..e5037c6277 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -744,18 +744,15 @@ SRC_URI = ""
744PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/" 744PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
745PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}" 745PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
746PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native" 746PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
747PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,/run/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR}" 747PSEUDO_INCLUDE_PATHS = "/proc,${WORKDIR}/image,${WORKDIR}/package,${WORKDIR}/rootfs,${WORKDIR}/sstate-build-package/,${WORKDIR}/sstate-install-package/,${WORKDIR}/pkgdata,${WORKDIR}/minidebuginfo"
748PSEUDO_IGNORE_PATHS .= ",${TMPDIR}/sstate-control,${TMPDIR}/buildstats,${TMPDIR}/sysroots-components,${TMPDIR}/pkgdata"
749PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/deploy-,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/pkgdata-sysroot"
750PSEUDO_IGNORE_PATHS .= ",${DEPLOY_DIR},${BUILDHISTORY_DIR},${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR},${S},${B}"
751 748
752export PSEUDO_DISABLED = "1" 749export PSEUDO_DISABLED = "1"
753#export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}" 750#export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
754#export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}" 751#export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
755#export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib 752#export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
756FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_IGNORE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_IGNORE_PATHS'))} PSEUDO_DISABLED=1 PYTHONDONTWRITEBYTECODE=1" 753FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_INCLUDE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_INCLUDE_PATHS'))} PSEUDO_DISABLED=1 PYTHONDONTWRITEBYTECODE=1"
757FAKEROOTCMD = "${PSEUDO_SYSROOT}${bindir_native}/pseudo" 754FAKEROOTCMD = "${PSEUDO_SYSROOT}${bindir_native}/pseudo"
758FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_IGNORE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_IGNORE_PATHS'))} PSEUDO_DISABLED=0" 755FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_INCLUDE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_INCLUDE_PATHS'))} PSEUDO_DISABLED=0"
759FAKEROOTNOENV = "PSEUDO_UNLOAD=1" 756FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
760FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}" 757FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
761FAKEROOTLOGS = "${WORKDIR}/pseudo/pseudo.log" 758FAKEROOTLOGS = "${WORKDIR}/pseudo/pseudo.log"
@@ -965,7 +962,7 @@ BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI
965 SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \ 962 SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \
966 SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \ 963 SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \
967 OMP_NUM_THREADS BB_CURRENTTASK" 964 OMP_NUM_THREADS BB_CURRENTTASK"
968BB_BASEHASH_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR \ 965BB_BASEHASH_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_INCLUDE_PATHS BUILDHISTORY_DIR \
969 SSTATE_DIR SOURCE_DATE_EPOCH RUST_BUILD_SYS RUST_HOST_SYS RUST_TARGET_SYS" 966 SSTATE_DIR SOURCE_DATE_EPOCH RUST_BUILD_SYS RUST_HOST_SYS RUST_TARGET_SYS"
970BB_HASHCONFIG_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \ 967BB_HASHCONFIG_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \
971 SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_PASSTHROUGH_ADDITIONS DISABLE_SANITY_CHECKS \ 968 SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_PASSTHROUGH_ADDITIONS DISABLE_SANITY_CHECKS \
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 86d1f8c144..6163405be4 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -12,8 +12,6 @@ STAGING_DIR_TARGET = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
12RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot" 12RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
13RECIPE_SYSROOT:class-native = "${WORKDIR}/recipe-sysroot" 13RECIPE_SYSROOT:class-native = "${WORKDIR}/recipe-sysroot"
14 14
15PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/${MLPREFIX}recipe-sysroot"
16
17INHERIT += "multilib_global" 15INHERIT += "multilib_global"
18 16
19BBCLASSEXTEND:append = " ${MULTILIBS}" 17BBCLASSEXTEND:append = " ${MULTILIBS}"
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 4843d810a2..d58ffa80f5 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -174,7 +174,6 @@ TEST_RUNQEMUPARAMS += " slirp"
174 features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n' 174 features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n'
175 features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % os.path.join(signing_key_dir, 'key.passphrase') 175 features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % os.path.join(signing_key_dir, 'key.passphrase')
176 features += 'GPG_PATH = "%s"\n' % self.gpg_home 176 features += 'GPG_PATH = "%s"\n' % self.gpg_home
177 features += 'PSEUDO_IGNORE_PATHS .= ",%s"\n' % self.gpg_home
178 self.write_config(features) 177 self.write_config(features)
179 178
180 bitbake('core-image-full-cmdline socat') 179 bitbake('core-image-full-cmdline socat')
@@ -211,7 +210,6 @@ TEST_RUNQEMUPARAMS += " slirp"
211 features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n' 210 features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n'
212 features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % os.path.join(signing_key_dir, 'key.passphrase') 211 features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % os.path.join(signing_key_dir, 'key.passphrase')
213 features += 'GPG_PATH = "%s"\n' % self.gpg_home 212 features += 'GPG_PATH = "%s"\n' % self.gpg_home
214 features += 'PSEUDO_IGNORE_PATHS .= ",%s"\n' % self.gpg_home
215 self.write_config(features) 213 self.write_config(features)
216 214
217 # Build core-image-sato and testimage 215 # Build core-image-sato and testimage
diff --git a/meta/recipes-core/glibc/glibc-locale.inc b/meta/recipes-core/glibc/glibc-locale.inc
index c63c9edd76..90248bbc0f 100644
--- a/meta/recipes-core/glibc/glibc-locale.inc
+++ b/meta/recipes-core/glibc/glibc-locale.inc
@@ -65,6 +65,8 @@ FILES:${LOCALEBASEPN}-locale-alias = "${datadir}/locale/locale.alias"
65 65
66LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale" 66LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale"
67 67
68PSEUDO_INCLUDE_PATHS .= ",${WORKDIR}/locale-tree"
69
68copy_locale_files() { 70copy_locale_files() {
69 local dir=$1 mode=$2 71 local dir=$1 mode=$2
70 72
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index 5e2a8bf328..d7528d336b 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -12,7 +12,7 @@ SRC_URI:append:class-nativesdk = " \
12 file://older-glibc-symbols.patch" 12 file://older-glibc-symbols.patch"
13SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa" 13SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
14 14
15SRCREV = "3fac97341f0f8270ca28a91098d0a58ca306a6bd" 15SRCREV = "2c43381180f9cfef4c0a8bb0c1658a86c3fcc876"
16S = "${WORKDIR}/git" 16S = "${WORKDIR}/git"
17PV = "1.9.0+git" 17PV = "1.9.0+git"
18 18
diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index b18431d8fb..5b51ab214f 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -222,19 +222,19 @@ class Partition():
222 if (pseudo_dir): 222 if (pseudo_dir):
223 # Canonicalize the ignore paths. This corresponds to 223 # Canonicalize the ignore paths. This corresponds to
224 # calling oe.path.canonicalize(), which is used in bitbake.conf. 224 # calling oe.path.canonicalize(), which is used in bitbake.conf.
225 ignore_paths = [rootfs] + (get_bitbake_var("PSEUDO_IGNORE_PATHS") or "").split(",") 225 include_paths = [rootfs_dir] + (get_bitbake_var("PSEUDO_INCLUDE_PATHS") or "").split(",")
226 canonical_paths = [] 226 canonical_paths = []
227 for path in ignore_paths: 227 for path in include_paths:
228 if "$" not in path: 228 if "$" not in path:
229 trailing_slash = path.endswith("/") and "/" or "" 229 trailing_slash = path.endswith("/") and "/" or ""
230 canonical_paths.append(os.path.realpath(path) + trailing_slash) 230 canonical_paths.append(os.path.realpath(path) + trailing_slash)
231 ignore_paths = ",".join(canonical_paths) 231 include_paths = ",".join(canonical_paths)
232 232
233 pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix 233 pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix
234 pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir 234 pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir
235 pseudo += "export PSEUDO_PASSWD=%s;" % rootfs_dir 235 pseudo += "export PSEUDO_PASSWD=%s;" % rootfs_dir
236 pseudo += "export PSEUDO_NOSYMLINKEXP=1;" 236 pseudo += "export PSEUDO_NOSYMLINKEXP=1;"
237 pseudo += "export PSEUDO_IGNORE_PATHS=%s;" % ignore_paths 237 pseudo += "export PSEUDO_INCLUDE_PATHS=%s;" % include_paths
238 pseudo += "%s " % get_bitbake_var("FAKEROOTCMD") 238 pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
239 else: 239 else:
240 pseudo = None 240 pseudo = None