mirror of
https://github.com/thead-yocto-mirror/meta-external-toolchain
synced 2026-09-04 06:54:36 +02:00
This fixes a failure to execute bitbake-worker to execute this task. Signed-off-by: Christopher Larson <kergoth@gmail.com>
45 lines
1.7 KiB
Plaintext
45 lines
1.7 KiB
Plaintext
inherit package
|
|
|
|
SOURCERY_QA = "host-user-contaminated"
|
|
# We need to test in fakeroot context to check file ownership
|
|
FAKEROOT_QA = "host-user-contaminated"
|
|
|
|
python () {
|
|
all_qa = d.getVar('ALL_QA', True).split()
|
|
fakeroot_qa = d.getVar('FAKEROOT_QA', True).split()
|
|
if any(f for f in fakeroot_qa if f in all_qa):
|
|
if not oe.utils.inherits(d, 'native', 'cross'):
|
|
d.setVarFlag('do_package_qa', 'fakeroot', '1')
|
|
d.appendVarFlag('do_package_qa', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
|
|
}
|
|
|
|
HOST_USER_UID := "${@os.getuid()}"
|
|
HOST_USER_UID[type] = "integer"
|
|
HOST_USER_GID := "${@os.getgid()}"
|
|
HOST_USER_GID[type] = "integer"
|
|
|
|
QAPATHTEST[host-user-contaminated] = "package_qa_check_host_user"
|
|
def package_qa_check_host_user(path, name, d, elf, messages):
|
|
"""Check for files outside of /home which are owned by the user running bitbake."""
|
|
|
|
if not os.path.lexists(path):
|
|
return
|
|
|
|
check_uid = oe.data.typed_value('HOST_USER_UID', d)
|
|
check_gid = oe.data.typed_value('HOST_USER_GID', d)
|
|
|
|
dest = d.getVar('PKGDEST', True)
|
|
home = os.path.join(dest, 'home')
|
|
if path == home or path.startswith(home + os.sep):
|
|
return
|
|
|
|
stat = os.lstat(path)
|
|
if stat.st_uid == check_uid:
|
|
messages["host-user-contaminated"] = "%s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (path, check_uid)
|
|
return False
|
|
|
|
if stat.st_gid == check_gid:
|
|
messages["host-user-contaminated"] = "%s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (path, check_gid)
|
|
return False
|
|
return True
|