mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 17:39:31 +00:00
insane.bbclass: Add package QA check for merged /usr.
This check makes sure that, when usrmerge distro feature enabled, no package installs files to root (/bin, /sbin, /lib, /lib64) folders. (From OE-Core rev: 9f52f9f60f5680d7a824dafb3334de624eceed4c) Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
66cf94e740
commit
2ea87f74da
@@ -40,6 +40,9 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
|
|||||||
version-going-backwards expanded-d invalid-chars \
|
version-going-backwards expanded-d invalid-chars \
|
||||||
license-checksum dev-elf file-rdeps \
|
license-checksum dev-elf file-rdeps \
|
||||||
"
|
"
|
||||||
|
# Add usrmerge QA check based on distro feature
|
||||||
|
ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
|
||||||
|
|
||||||
FAKEROOT_QA = "host-user-contaminated"
|
FAKEROOT_QA = "host-user-contaminated"
|
||||||
FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
|
FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
|
||||||
enabled tests are listed here, the do_package_qa task will run under fakeroot."
|
enabled tests are listed here, the do_package_qa task will run under fakeroot."
|
||||||
@@ -991,6 +994,18 @@ def package_qa_check_deps(pkg, pkgdest, skip, d):
|
|||||||
check_valid_deps('RREPLACES')
|
check_valid_deps('RREPLACES')
|
||||||
check_valid_deps('RCONFLICTS')
|
check_valid_deps('RCONFLICTS')
|
||||||
|
|
||||||
|
QAPKGTEST[usrmerge] = "package_qa_check_usrmerge"
|
||||||
|
def package_qa_check_usrmerge(pkg, d, messages):
|
||||||
|
pkgdest = d.getVar('PKGDEST')
|
||||||
|
pkg_dir = pkgdest + os.sep + pkg + os.sep
|
||||||
|
merged_dirs = ['bin', 'sbin', 'lib'] + d.getVar('MULTILIB_VARIANTS').split()
|
||||||
|
for f in merged_dirs:
|
||||||
|
if os.path.exists(pkg_dir + f) and not os.path.islink(pkg_dir + f):
|
||||||
|
msg = "%s package is not obeying usrmerge distro feature. /%s should be relocated to /usr." % (pkg, f)
|
||||||
|
package_qa_add_message(messages, "usrmerge", msg)
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
QAPKGTEST[expanded-d] = "package_qa_check_expanded_d"
|
QAPKGTEST[expanded-d] = "package_qa_check_expanded_d"
|
||||||
def package_qa_check_expanded_d(package, d, messages):
|
def package_qa_check_expanded_d(package, d, messages):
|
||||||
"""
|
"""
|
||||||
@@ -1064,6 +1079,7 @@ def package_qa_check_host_user(path, name, d, elf, messages):
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
# The PACKAGE FUNC to scan each package
|
# The PACKAGE FUNC to scan each package
|
||||||
python do_package_qa () {
|
python do_package_qa () {
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|||||||
Reference in New Issue
Block a user