diff options
| author | Joshua Lock <joshua.g.lock@intel.com> | 2016-12-14 21:13:04 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-12-16 10:23:23 +0000 |
| commit | c4e2c59088765d1f1de7ec57cde91980f887c2ff (patch) | |
| tree | a2fda8ac5916fb59a711e9220c2177008cca9347 /meta/classes/insane.bbclass | |
| parent | d5e67725ac11e3296cad104470931ffa16824b90 (diff) | |
| download | poky-c4e2c59088765d1f1de7ec57cde91980f887c2ff.tar.gz | |
meta: remove True option to getVar calls
getVar() now defaults to expanding by default, thus remove the True
option from getVar() calls with a regex search and replace.
Search made with the following regex: getVar ?\(( ?[^,()]*), True\)
(From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/insane.bbclass')
| -rw-r--r-- | meta/classes/insane.bbclass | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 01494e3443..1a742cf6f8 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass | |||
| @@ -179,7 +179,7 @@ def package_qa_get_machine_dict(d): | |||
| 179 | 179 | ||
| 180 | # Add in any extra user supplied data which may come from a BSP layer, removing the | 180 | # Add in any extra user supplied data which may come from a BSP layer, removing the |
| 181 | # need to always change this class directly | 181 | # need to always change this class directly |
| 182 | extra_machdata = (d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS", True) or "").split() | 182 | extra_machdata = (d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS") or "").split() |
| 183 | for m in extra_machdata: | 183 | for m in extra_machdata: |
| 184 | call = m + "(machdata, d)" | 184 | call = m + "(machdata, d)" |
| 185 | locs = { "machdata" : machdata, "d" : d} | 185 | locs = { "machdata" : machdata, "d" : d} |
| @@ -194,23 +194,23 @@ def package_qa_clean_path(path, d, pkg=None): | |||
| 194 | TMPDIR is stripped, otherwise PKGDEST/pkg is stripped. | 194 | TMPDIR is stripped, otherwise PKGDEST/pkg is stripped. |
| 195 | """ | 195 | """ |
| 196 | if pkg: | 196 | if pkg: |
| 197 | path = path.replace(os.path.join(d.getVar("PKGDEST", True), pkg), "/") | 197 | path = path.replace(os.path.join(d.getVar("PKGDEST"), pkg), "/") |
| 198 | return path.replace(d.getVar("TMPDIR", True), "/").replace("//", "/") | 198 | return path.replace(d.getVar("TMPDIR"), "/").replace("//", "/") |
| 199 | 199 | ||
| 200 | def package_qa_write_error(type, error, d): | 200 | def package_qa_write_error(type, error, d): |
| 201 | logfile = d.getVar('QA_LOGFILE', True) | 201 | logfile = d.getVar('QA_LOGFILE') |
| 202 | if logfile: | 202 | if logfile: |
| 203 | p = d.getVar('P', True) | 203 | p = d.getVar('P') |
| 204 | with open(logfile, "a+") as f: | 204 | with open(logfile, "a+") as f: |
| 205 | f.write("%s: %s [%s]\n" % (p, error, type)) | 205 | f.write("%s: %s [%s]\n" % (p, error, type)) |
| 206 | 206 | ||
| 207 | def package_qa_handle_error(error_class, error_msg, d): | 207 | def package_qa_handle_error(error_class, error_msg, d): |
| 208 | package_qa_write_error(error_class, error_msg, d) | 208 | package_qa_write_error(error_class, error_msg, d) |
| 209 | if error_class in (d.getVar("ERROR_QA", True) or "").split(): | 209 | if error_class in (d.getVar("ERROR_QA") or "").split(): |
| 210 | bb.error("QA Issue: %s [%s]" % (error_msg, error_class)) | 210 | bb.error("QA Issue: %s [%s]" % (error_msg, error_class)) |
| 211 | d.setVar("QA_SANE", False) | 211 | d.setVar("QA_SANE", False) |
| 212 | return False | 212 | return False |
| 213 | elif error_class in (d.getVar("WARN_QA", True) or "").split(): | 213 | elif error_class in (d.getVar("WARN_QA") or "").split(): |
| 214 | bb.warn("QA Issue: %s [%s]" % (error_msg, error_class)) | 214 | bb.warn("QA Issue: %s [%s]" % (error_msg, error_class)) |
| 215 | else: | 215 | else: |
| 216 | bb.note("QA Issue: %s [%s]" % (error_msg, error_class)) | 216 | bb.note("QA Issue: %s [%s]" % (error_msg, error_class)) |
| @@ -226,7 +226,7 @@ QAPATHTEST[libexec] = "package_qa_check_libexec" | |||
| 226 | def package_qa_check_libexec(path,name, d, elf, messages): | 226 | def package_qa_check_libexec(path,name, d, elf, messages): |
| 227 | 227 | ||
| 228 | # Skip the case where the default is explicitly /usr/libexec | 228 | # Skip the case where the default is explicitly /usr/libexec |
| 229 | libexec = d.getVar('libexecdir', True) | 229 | libexec = d.getVar('libexecdir') |
| 230 | if libexec == "/usr/libexec": | 230 | if libexec == "/usr/libexec": |
| 231 | return True | 231 | return True |
| 232 | 232 | ||
| @@ -247,7 +247,7 @@ def package_qa_check_rpath(file,name, d, elf, messages): | |||
| 247 | if os.path.islink(file): | 247 | if os.path.islink(file): |
| 248 | return | 248 | return |
| 249 | 249 | ||
| 250 | bad_dirs = [d.getVar('BASE_WORKDIR', True), d.getVar('STAGING_DIR_TARGET', True)] | 250 | bad_dirs = [d.getVar('BASE_WORKDIR'), d.getVar('STAGING_DIR_TARGET')] |
| 251 | 251 | ||
| 252 | phdrs = elf.run_objdump("-p", d) | 252 | phdrs = elf.run_objdump("-p", d) |
| 253 | 253 | ||
| @@ -275,8 +275,8 @@ def package_qa_check_useless_rpaths(file, name, d, elf, messages): | |||
| 275 | if os.path.islink(file): | 275 | if os.path.islink(file): |
| 276 | return | 276 | return |
| 277 | 277 | ||
| 278 | libdir = d.getVar("libdir", True) | 278 | libdir = d.getVar("libdir") |
| 279 | base_libdir = d.getVar("base_libdir", True) | 279 | base_libdir = d.getVar("base_libdir") |
| 280 | 280 | ||
| 281 | phdrs = elf.run_objdump("-p", d) | 281 | phdrs = elf.run_objdump("-p", d) |
| 282 | 282 | ||
| @@ -333,11 +333,11 @@ def package_qa_check_libdir(d): | |||
| 333 | """ | 333 | """ |
| 334 | import re | 334 | import re |
| 335 | 335 | ||
| 336 | pkgdest = d.getVar('PKGDEST', True) | 336 | pkgdest = d.getVar('PKGDEST') |
| 337 | base_libdir = d.getVar("base_libdir",True) + os.sep | 337 | base_libdir = d.getVar("base_libdir",True) + os.sep |
| 338 | libdir = d.getVar("libdir", True) + os.sep | 338 | libdir = d.getVar("libdir") + os.sep |
| 339 | libexecdir = d.getVar("libexecdir", True) + os.sep | 339 | libexecdir = d.getVar("libexecdir") + os.sep |
| 340 | exec_prefix = d.getVar("exec_prefix", True) + os.sep | 340 | exec_prefix = d.getVar("exec_prefix") + os.sep |
| 341 | 341 | ||
| 342 | messages = [] | 342 | messages = [] |
| 343 | 343 | ||
| @@ -352,10 +352,10 @@ def package_qa_check_libdir(d): | |||
| 352 | # Skip subdirectories for any packages with libdir in INSANE_SKIP | 352 | # Skip subdirectories for any packages with libdir in INSANE_SKIP |
| 353 | skippackages = [] | 353 | skippackages = [] |
| 354 | for package in dirs: | 354 | for package in dirs: |
| 355 | if 'libdir' in (d.getVar('INSANE_SKIP_' + package, True) or "").split(): | 355 | if 'libdir' in (d.getVar('INSANE_SKIP_' + package) or "").split(): |
| 356 | bb.note("Package %s skipping libdir QA test" % (package)) | 356 | bb.note("Package %s skipping libdir QA test" % (package)) |
| 357 | skippackages.append(package) | 357 | skippackages.append(package) |
| 358 | elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE', True) == 'debug-file-directory' and package.endswith("-dbg"): | 358 | elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory' and package.endswith("-dbg"): |
| 359 | bb.note("Package %s skipping libdir QA test for PACKAGE_DEBUG_SPLIT_STYLE equals debug-file-directory" % (package)) | 359 | bb.note("Package %s skipping libdir QA test for PACKAGE_DEBUG_SPLIT_STYLE equals debug-file-directory" % (package)) |
| 360 | skippackages.append(package) | 360 | skippackages.append(package) |
| 361 | for package in skippackages: | 361 | for package in skippackages: |
| @@ -416,10 +416,10 @@ def package_qa_check_unsafe_references_in_binaries(path, name, d, elf, messages) | |||
| 416 | 416 | ||
| 417 | if elf: | 417 | if elf: |
| 418 | import subprocess as sub | 418 | import subprocess as sub |
| 419 | pn = d.getVar('PN', True) | 419 | pn = d.getVar('PN') |
| 420 | 420 | ||
| 421 | exec_prefix = d.getVar('exec_prefix', True) | 421 | exec_prefix = d.getVar('exec_prefix') |
| 422 | sysroot_path = d.getVar('STAGING_DIR_TARGET', True) | 422 | sysroot_path = d.getVar('STAGING_DIR_TARGET') |
| 423 | sysroot_path_usr = sysroot_path + exec_prefix | 423 | sysroot_path_usr = sysroot_path + exec_prefix |
| 424 | 424 | ||
| 425 | try: | 425 | try: |
| @@ -432,8 +432,8 @@ def package_qa_check_unsafe_references_in_binaries(path, name, d, elf, messages) | |||
| 432 | if sysroot_path_usr in ldd_output: | 432 | if sysroot_path_usr in ldd_output: |
| 433 | ldd_output = ldd_output.replace(sysroot_path, "") | 433 | ldd_output = ldd_output.replace(sysroot_path, "") |
| 434 | 434 | ||
| 435 | pkgdest = d.getVar('PKGDEST', True) | 435 | pkgdest = d.getVar('PKGDEST') |
| 436 | packages = d.getVar('PACKAGES', True) | 436 | packages = d.getVar('PACKAGES') |
| 437 | 437 | ||
| 438 | for package in packages.split(): | 438 | for package in packages.split(): |
| 439 | short_path = path.replace('%s/%s' % (pkgdest, package), "", 1) | 439 | short_path = path.replace('%s/%s' % (pkgdest, package), "", 1) |
| @@ -459,13 +459,13 @@ def package_qa_check_unsafe_references_in_scripts(path, name, d, elf, messages): | |||
| 459 | if not elf: | 459 | if not elf: |
| 460 | import stat | 460 | import stat |
| 461 | import subprocess | 461 | import subprocess |
| 462 | pn = d.getVar('PN', True) | 462 | pn = d.getVar('PN') |
| 463 | 463 | ||
| 464 | # Ensure we're checking an executable script | 464 | # Ensure we're checking an executable script |
| 465 | statinfo = os.stat(path) | 465 | statinfo = os.stat(path) |
| 466 | if bool(statinfo.st_mode & stat.S_IXUSR): | 466 | if bool(statinfo.st_mode & stat.S_IXUSR): |
| 467 | # grep shell scripts for possible references to /exec_prefix/ | 467 | # grep shell scripts for possible references to /exec_prefix/ |
| 468 | exec_prefix = d.getVar('exec_prefix', True) | 468 | exec_prefix = d.getVar('exec_prefix') |
| 469 | statement = "grep -e '%s/[^ :]\{1,\}/[^ :]\{1,\}' %s > /dev/null" % (exec_prefix, path) | 469 | statement = "grep -e '%s/[^ :]\{1,\}/[^ :]\{1,\}' %s > /dev/null" % (exec_prefix, path) |
| 470 | if subprocess.call(statement, shell=True) == 0: | 470 | if subprocess.call(statement, shell=True) == 0: |
| 471 | error_msg = pn + ": Found a reference to %s/ in %s" % (exec_prefix, path) | 471 | error_msg = pn + ": Found a reference to %s/ in %s" % (exec_prefix, path) |
| @@ -489,19 +489,19 @@ def unsafe_references_skippable(path, name, d): | |||
| 489 | return True | 489 | return True |
| 490 | 490 | ||
| 491 | # Skip unusual rootfs layouts which make these tests irrelevant | 491 | # Skip unusual rootfs layouts which make these tests irrelevant |
| 492 | exec_prefix = d.getVar('exec_prefix', True) | 492 | exec_prefix = d.getVar('exec_prefix') |
| 493 | if exec_prefix == "": | 493 | if exec_prefix == "": |
| 494 | return True | 494 | return True |
| 495 | 495 | ||
| 496 | pkgdest = d.getVar('PKGDEST', True) | 496 | pkgdest = d.getVar('PKGDEST') |
| 497 | pkgdest = pkgdest + "/" + name | 497 | pkgdest = pkgdest + "/" + name |
| 498 | pkgdest = os.path.abspath(pkgdest) | 498 | pkgdest = os.path.abspath(pkgdest) |
| 499 | base_bindir = pkgdest + d.getVar('base_bindir', True) | 499 | base_bindir = pkgdest + d.getVar('base_bindir') |
| 500 | base_sbindir = pkgdest + d.getVar('base_sbindir', True) | 500 | base_sbindir = pkgdest + d.getVar('base_sbindir') |
| 501 | base_libdir = pkgdest + d.getVar('base_libdir', True) | 501 | base_libdir = pkgdest + d.getVar('base_libdir') |
| 502 | bindir = pkgdest + d.getVar('bindir', True) | 502 | bindir = pkgdest + d.getVar('bindir') |
| 503 | sbindir = pkgdest + d.getVar('sbindir', True) | 503 | sbindir = pkgdest + d.getVar('sbindir') |
| 504 | libdir = pkgdest + d.getVar('libdir', True) | 504 | libdir = pkgdest + d.getVar('libdir') |
| 505 | 505 | ||
| 506 | if base_bindir == bindir and base_sbindir == sbindir and base_libdir == libdir: | 506 | if base_bindir == bindir and base_sbindir == sbindir and base_libdir == libdir: |
| 507 | return True | 507 | return True |
| @@ -523,13 +523,13 @@ def package_qa_check_arch(path,name,d, elf, messages): | |||
| 523 | if not elf: | 523 | if not elf: |
| 524 | return | 524 | return |
| 525 | 525 | ||
| 526 | target_os = d.getVar('TARGET_OS', True) | 526 | target_os = d.getVar('TARGET_OS') |
| 527 | target_arch = d.getVar('TARGET_ARCH', True) | 527 | target_arch = d.getVar('TARGET_ARCH') |
| 528 | provides = d.getVar('PROVIDES', True) | 528 | provides = d.getVar('PROVIDES') |
| 529 | bpn = d.getVar('BPN', True) | 529 | bpn = d.getVar('BPN') |
| 530 | 530 | ||
| 531 | if target_arch == "allarch": | 531 | if target_arch == "allarch": |
| 532 | pn = d.getVar('PN', True) | 532 | pn = d.getVar('PN') |
| 533 | package_qa_add_message(messages, "arch", pn + ": Recipe inherits the allarch class, but has packaged architecture-specific binaries") | 533 | package_qa_add_message(messages, "arch", pn + ": Recipe inherits the allarch class, but has packaged architecture-specific binaries") |
| 534 | return | 534 | return |
| 535 | 535 | ||
| @@ -549,7 +549,7 @@ def package_qa_check_arch(path,name,d, elf, messages): | |||
| 549 | 549 | ||
| 550 | # Check the architecture and endiannes of the binary | 550 | # Check the architecture and endiannes of the binary |
| 551 | is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \ | 551 | is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \ |
| 552 | (target_os == "linux-gnux32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE', True))) | 552 | (target_os == "linux-gnux32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE'))) |
| 553 | if not ((machine == elf.machine()) or is_32): | 553 | if not ((machine == elf.machine()) or is_32): |
| 554 | package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \ | 554 | package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \ |
| 555 | (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d))) | 555 | (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d))) |
| @@ -608,9 +608,9 @@ def package_qa_hash_style(path, name, d, elf, messages): | |||
| 608 | if os.path.islink(path): | 608 | if os.path.islink(path): |
| 609 | return | 609 | return |
| 610 | 610 | ||
| 611 | gnu_hash = "--hash-style=gnu" in d.getVar('LDFLAGS', True) | 611 | gnu_hash = "--hash-style=gnu" in d.getVar('LDFLAGS') |
| 612 | if not gnu_hash: | 612 | if not gnu_hash: |
| 613 | gnu_hash = "--hash-style=both" in d.getVar('LDFLAGS', True) | 613 | gnu_hash = "--hash-style=both" in d.getVar('LDFLAGS') |
| 614 | if not gnu_hash: | 614 | if not gnu_hash: |
| 615 | return | 615 | return |
| 616 | 616 | ||
| @@ -649,7 +649,7 @@ def package_qa_check_buildpaths(path, name, d, elf, messages): | |||
| 649 | if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1: | 649 | if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1: |
| 650 | return | 650 | return |
| 651 | 651 | ||
| 652 | tmpdir = d.getVar('TMPDIR', True) | 652 | tmpdir = d.getVar('TMPDIR') |
| 653 | with open(path, 'rb') as f: | 653 | with open(path, 'rb') as f: |
| 654 | file_content = f.read().decode('utf-8', errors='ignore') | 654 | file_content = f.read().decode('utf-8', errors='ignore') |
| 655 | if tmpdir in file_content: | 655 | if tmpdir in file_content: |
| @@ -668,8 +668,8 @@ def package_qa_check_xorg_driver_abi(path, name, d, elf, messages): | |||
| 668 | 668 | ||
| 669 | driverdir = d.expand("${libdir}/xorg/modules/drivers/") | 669 | driverdir = d.expand("${libdir}/xorg/modules/drivers/") |
| 670 | if driverdir in path and path.endswith(".so"): | 670 | if driverdir in path and path.endswith(".so"): |
| 671 | mlprefix = d.getVar('MLPREFIX', True) or '' | 671 | mlprefix = d.getVar('MLPREFIX') or '' |
| 672 | for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + name, True) or ""): | 672 | for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + name) or ""): |
| 673 | if rdep.startswith("%sxorg-abi-" % mlprefix): | 673 | if rdep.startswith("%sxorg-abi-" % mlprefix): |
| 674 | return | 674 | return |
| 675 | package_qa_add_message(messages, "xorg-driver-abi", "Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path))) | 675 | package_qa_add_message(messages, "xorg-driver-abi", "Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path))) |
| @@ -692,9 +692,9 @@ def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages): | |||
| 692 | if os.path.islink(path): | 692 | if os.path.islink(path): |
| 693 | target = os.readlink(path) | 693 | target = os.readlink(path) |
| 694 | if os.path.isabs(target): | 694 | if os.path.isabs(target): |
| 695 | tmpdir = d.getVar('TMPDIR', True) | 695 | tmpdir = d.getVar('TMPDIR') |
| 696 | if target.startswith(tmpdir): | 696 | if target.startswith(tmpdir): |
| 697 | trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "") | 697 | trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "") |
| 698 | package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name)) | 698 | package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name)) |
| 699 | 699 | ||
| 700 | # Check license variables | 700 | # Check license variables |
| @@ -706,17 +706,17 @@ python populate_lic_qa_checksum() { | |||
| 706 | import tempfile | 706 | import tempfile |
| 707 | sane = True | 707 | sane = True |
| 708 | 708 | ||
| 709 | lic_files = d.getVar('LIC_FILES_CHKSUM', True) or '' | 709 | lic_files = d.getVar('LIC_FILES_CHKSUM') or '' |
| 710 | lic = d.getVar('LICENSE', True) | 710 | lic = d.getVar('LICENSE') |
| 711 | pn = d.getVar('PN', True) | 711 | pn = d.getVar('PN') |
| 712 | 712 | ||
| 713 | if lic == "CLOSED": | 713 | if lic == "CLOSED": |
| 714 | return | 714 | return |
| 715 | 715 | ||
| 716 | if not lic_files and d.getVar('SRC_URI', True): | 716 | if not lic_files and d.getVar('SRC_URI'): |
| 717 | sane = package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d) | 717 | sane = package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d) |
| 718 | 718 | ||
| 719 | srcdir = d.getVar('S', True) | 719 | srcdir = d.getVar('S') |
| 720 | 720 | ||
| 721 | for url in lic_files.split(): | 721 | for url in lic_files.split(): |
| 722 | try: | 722 | try: |
| @@ -794,7 +794,7 @@ def package_qa_check_staged(path,d): | |||
| 794 | """ | 794 | """ |
| 795 | 795 | ||
| 796 | sane = True | 796 | sane = True |
| 797 | tmpdir = d.getVar('TMPDIR', True) | 797 | tmpdir = d.getVar('TMPDIR') |
| 798 | workdir = os.path.join(tmpdir, "work") | 798 | workdir = os.path.join(tmpdir, "work") |
| 799 | 799 | ||
| 800 | if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d): | 800 | if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d): |
| @@ -845,8 +845,8 @@ def package_qa_walk(warnfuncs, errorfuncs, skip, package, d): | |||
| 845 | import oe.qa | 845 | import oe.qa |
| 846 | 846 | ||
| 847 | #if this will throw an exception, then fix the dict above | 847 | #if this will throw an exception, then fix the dict above |
| 848 | target_os = d.getVar('TARGET_OS', True) | 848 | target_os = d.getVar('TARGET_OS') |
| 849 | target_arch = d.getVar('TARGET_ARCH', True) | 849 | target_arch = d.getVar('TARGET_ARCH') |
| 850 | 850 | ||
| 851 | warnings = {} | 851 | warnings = {} |
| 852 | errors = {} | 852 | errors = {} |
| @@ -879,7 +879,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): | |||
| 879 | bb.data.update_data(localdata) | 879 | bb.data.update_data(localdata) |
| 880 | 880 | ||
| 881 | # Now check the RDEPENDS | 881 | # Now check the RDEPENDS |
| 882 | rdepends = bb.utils.explode_deps(localdata.getVar('RDEPENDS', True) or "") | 882 | rdepends = bb.utils.explode_deps(localdata.getVar('RDEPENDS') or "") |
| 883 | 883 | ||
| 884 | # Now do the sanity check!!! | 884 | # Now do the sanity check!!! |
| 885 | if "build-deps" not in skip: | 885 | if "build-deps" not in skip: |
| @@ -895,7 +895,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): | |||
| 895 | if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps: | 895 | if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps: |
| 896 | continue | 896 | continue |
| 897 | if not rdep_data or not 'PN' in rdep_data: | 897 | if not rdep_data or not 'PN' in rdep_data: |
| 898 | pkgdata_dir = d.getVar("PKGDATA_DIR", True) | 898 | pkgdata_dir = d.getVar("PKGDATA_DIR") |
| 899 | try: | 899 | try: |
| 900 | possibles = os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdepend)) | 900 | possibles = os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdepend)) |
| 901 | except OSError: | 901 | except OSError: |
| @@ -954,7 +954,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): | |||
| 954 | # The python is not a package, but python-core provides it, so | 954 | # The python is not a package, but python-core provides it, so |
| 955 | # skip checking /usr/bin/python if python is in the rdeps, in | 955 | # skip checking /usr/bin/python if python is in the rdeps, in |
| 956 | # case there is a RDEPENDS_pkg = "python" in the recipe. | 956 | # case there is a RDEPENDS_pkg = "python" in the recipe. |
| 957 | for py in [ d.getVar('MLPREFIX', True) + "python", "python" ]: | 957 | for py in [ d.getVar('MLPREFIX') + "python", "python" ]: |
| 958 | if py in done: | 958 | if py in done: |
| 959 | filerdepends.pop("/usr/bin/python",None) | 959 | filerdepends.pop("/usr/bin/python",None) |
| 960 | done.remove(py) | 960 | done.remove(py) |
| @@ -987,7 +987,7 @@ def package_qa_check_deps(pkg, pkgdest, skip, d): | |||
| 987 | 987 | ||
| 988 | def check_valid_deps(var): | 988 | def check_valid_deps(var): |
| 989 | try: | 989 | try: |
| 990 | rvar = bb.utils.explode_dep_versions2(localdata.getVar(var, True) or "") | 990 | rvar = bb.utils.explode_dep_versions2(localdata.getVar(var) or "") |
| 991 | except ValueError as e: | 991 | except ValueError as e: |
| 992 | bb.fatal("%s_%s: %s" % (var, pkg, e)) | 992 | bb.fatal("%s_%s: %s" % (var, pkg, e)) |
| 993 | for dep in rvar: | 993 | for dep in rvar: |
| @@ -1010,10 +1010,10 @@ def package_qa_check_expanded_d(package, d, messages): | |||
| 1010 | variables, warn the user to use it correctly. | 1010 | variables, warn the user to use it correctly. |
| 1011 | """ | 1011 | """ |
| 1012 | sane = True | 1012 | sane = True |
| 1013 | expanded_d = d.getVar('D', True) | 1013 | expanded_d = d.getVar('D') |
| 1014 | 1014 | ||
| 1015 | for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm': | 1015 | for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm': |
| 1016 | bbvar = d.getVar(var + "_" + package, True) or "" | 1016 | bbvar = d.getVar(var + "_" + package) or "" |
| 1017 | if expanded_d in bbvar: | 1017 | if expanded_d in bbvar: |
| 1018 | if var == 'FILES': | 1018 | if var == 'FILES': |
| 1019 | package_qa_add_message(messages, "expanded-d", "FILES in %s recipe should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference" % package) | 1019 | package_qa_add_message(messages, "expanded-d", "FILES in %s recipe should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference" % package) |
| @@ -1026,7 +1026,7 @@ def package_qa_check_expanded_d(package, d, messages): | |||
| 1026 | def package_qa_check_encoding(keys, encode, d): | 1026 | def package_qa_check_encoding(keys, encode, d): |
| 1027 | def check_encoding(key, enc): | 1027 | def check_encoding(key, enc): |
| 1028 | sane = True | 1028 | sane = True |
| 1029 | value = d.getVar(key, True) | 1029 | value = d.getVar(key) |
| 1030 | if value: | 1030 | if value: |
| 1031 | try: | 1031 | try: |
| 1032 | s = value.encode(enc) | 1032 | s = value.encode(enc) |
| @@ -1051,8 +1051,8 @@ def package_qa_check_host_user(path, name, d, elf, messages): | |||
| 1051 | if not os.path.lexists(path): | 1051 | if not os.path.lexists(path): |
| 1052 | return | 1052 | return |
| 1053 | 1053 | ||
| 1054 | dest = d.getVar('PKGDEST', True) | 1054 | dest = d.getVar('PKGDEST') |
| 1055 | pn = d.getVar('PN', True) | 1055 | pn = d.getVar('PN') |
| 1056 | home = os.path.join(dest, 'home') | 1056 | home = os.path.join(dest, 'home') |
| 1057 | if path == home or path.startswith(home + os.sep): | 1057 | if path == home or path.startswith(home + os.sep): |
| 1058 | return | 1058 | return |
| @@ -1065,12 +1065,12 @@ def package_qa_check_host_user(path, name, d, elf, messages): | |||
| 1065 | raise | 1065 | raise |
| 1066 | else: | 1066 | else: |
| 1067 | rootfs_path = path[len(dest):] | 1067 | rootfs_path = path[len(dest):] |
| 1068 | check_uid = int(d.getVar('HOST_USER_UID', True)) | 1068 | check_uid = int(d.getVar('HOST_USER_UID')) |
| 1069 | if stat.st_uid == check_uid: | 1069 | if stat.st_uid == check_uid: |
| 1070 | package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_uid)) | 1070 | package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_uid)) |
| 1071 | return False | 1071 | return False |
| 1072 | 1072 | ||
| 1073 | check_gid = int(d.getVar('HOST_USER_GID', True)) | 1073 | check_gid = int(d.getVar('HOST_USER_GID')) |
| 1074 | if stat.st_gid == check_gid: | 1074 | if stat.st_gid == check_gid: |
| 1075 | package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_gid)) | 1075 | package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_gid)) |
| 1076 | return False | 1076 | return False |
| @@ -1088,8 +1088,8 @@ python do_package_qa () { | |||
| 1088 | # Check non UTF-8 characters on recipe's metadata | 1088 | # Check non UTF-8 characters on recipe's metadata |
| 1089 | package_qa_check_encoding(['DESCRIPTION', 'SUMMARY', 'LICENSE', 'SECTION'], 'utf-8', d) | 1089 | package_qa_check_encoding(['DESCRIPTION', 'SUMMARY', 'LICENSE', 'SECTION'], 'utf-8', d) |
| 1090 | 1090 | ||
| 1091 | logdir = d.getVar('T', True) | 1091 | logdir = d.getVar('T') |
| 1092 | pkg = d.getVar('PN', True) | 1092 | pkg = d.getVar('PN') |
| 1093 | 1093 | ||
| 1094 | # Check the compile log for host contamination | 1094 | # Check the compile log for host contamination |
| 1095 | compilelog = os.path.join(logdir,"log.do_compile") | 1095 | compilelog = os.path.join(logdir,"log.do_compile") |
| @@ -1112,8 +1112,8 @@ python do_package_qa () { | |||
| 1112 | package_qa_handle_error("install-host-path", msg, d) | 1112 | package_qa_handle_error("install-host-path", msg, d) |
| 1113 | 1113 | ||
| 1114 | # Scan the packages... | 1114 | # Scan the packages... |
| 1115 | pkgdest = d.getVar('PKGDEST', True) | 1115 | pkgdest = d.getVar('PKGDEST') |
| 1116 | packages = set((d.getVar('PACKAGES', True) or '').split()) | 1116 | packages = set((d.getVar('PACKAGES') or '').split()) |
| 1117 | 1117 | ||
| 1118 | cpath = oe.cachedpath.CachedPath() | 1118 | cpath = oe.cachedpath.CachedPath() |
| 1119 | global pkgfiles | 1119 | global pkgfiles |
| @@ -1142,7 +1142,7 @@ python do_package_qa () { | |||
| 1142 | testmatrix = d.getVarFlags(matrix_name) or {} | 1142 | testmatrix = d.getVarFlags(matrix_name) or {} |
| 1143 | g = globals() | 1143 | g = globals() |
| 1144 | warnchecks = [] | 1144 | warnchecks = [] |
| 1145 | for w in (d.getVar("WARN_QA", True) or "").split(): | 1145 | for w in (d.getVar("WARN_QA") or "").split(): |
| 1146 | if w in skip: | 1146 | if w in skip: |
| 1147 | continue | 1147 | continue |
| 1148 | if w in testmatrix and testmatrix[w] in g: | 1148 | if w in testmatrix and testmatrix[w] in g: |
| @@ -1151,7 +1151,7 @@ python do_package_qa () { | |||
| 1151 | oe.utils.write_ld_so_conf(d) | 1151 | oe.utils.write_ld_so_conf(d) |
| 1152 | 1152 | ||
| 1153 | errorchecks = [] | 1153 | errorchecks = [] |
| 1154 | for e in (d.getVar("ERROR_QA", True) or "").split(): | 1154 | for e in (d.getVar("ERROR_QA") or "").split(): |
| 1155 | if e in skip: | 1155 | if e in skip: |
| 1156 | continue | 1156 | continue |
| 1157 | if e in testmatrix and testmatrix[e] in g: | 1157 | if e in testmatrix and testmatrix[e] in g: |
| @@ -1160,7 +1160,7 @@ python do_package_qa () { | |||
| 1160 | oe.utils.write_ld_so_conf(d) | 1160 | oe.utils.write_ld_so_conf(d) |
| 1161 | return warnchecks, errorchecks | 1161 | return warnchecks, errorchecks |
| 1162 | 1162 | ||
| 1163 | skip = (d.getVar('INSANE_SKIP_' + package, True) or "").split() | 1163 | skip = (d.getVar('INSANE_SKIP_' + package) or "").split() |
| 1164 | if skip: | 1164 | if skip: |
| 1165 | bb.note("Package %s skipping QA tests: %s" % (package, str(skip))) | 1165 | bb.note("Package %s skipping QA tests: %s" % (package, str(skip))) |
| 1166 | 1166 | ||
| @@ -1180,10 +1180,10 @@ python do_package_qa () { | |||
| 1180 | package_qa_check_rdepends(package, pkgdest, skip, taskdeps, packages, d) | 1180 | package_qa_check_rdepends(package, pkgdest, skip, taskdeps, packages, d) |
| 1181 | package_qa_check_deps(package, pkgdest, skip, d) | 1181 | package_qa_check_deps(package, pkgdest, skip, d) |
| 1182 | 1182 | ||
| 1183 | if 'libdir' in d.getVar("ALL_QA", True).split(): | 1183 | if 'libdir' in d.getVar("ALL_QA").split(): |
| 1184 | package_qa_check_libdir(d) | 1184 | package_qa_check_libdir(d) |
| 1185 | 1185 | ||
| 1186 | qa_sane = d.getVar("QA_SANE", True) | 1186 | qa_sane = d.getVar("QA_SANE") |
| 1187 | if not qa_sane: | 1187 | if not qa_sane: |
| 1188 | bb.fatal("QA run found fatal errors. Please consider fixing them.") | 1188 | bb.fatal("QA run found fatal errors. Please consider fixing them.") |
| 1189 | bb.note("DONE with PACKAGE QA") | 1189 | bb.note("DONE with PACKAGE QA") |
| @@ -1216,7 +1216,7 @@ python do_qa_configure() { | |||
| 1216 | ########################################################################### | 1216 | ########################################################################### |
| 1217 | 1217 | ||
| 1218 | configs = [] | 1218 | configs = [] |
| 1219 | workdir = d.getVar('WORKDIR', True) | 1219 | workdir = d.getVar('WORKDIR') |
| 1220 | 1220 | ||
| 1221 | if bb.data.inherits_class('autotools', d): | 1221 | if bb.data.inherits_class('autotools', d): |
| 1222 | bb.note("Checking autotools environment for common misconfiguration") | 1222 | bb.note("Checking autotools environment for common misconfiguration") |
| @@ -1237,16 +1237,16 @@ Rerun configure task after fixing this.""") | |||
| 1237 | # Check gettext configuration and dependencies are correct | 1237 | # Check gettext configuration and dependencies are correct |
| 1238 | ########################################################################### | 1238 | ########################################################################### |
| 1239 | 1239 | ||
| 1240 | cnf = d.getVar('EXTRA_OECONF', True) or "" | 1240 | cnf = d.getVar('EXTRA_OECONF') or "" |
| 1241 | if "gettext" not in d.getVar('P', True) and "gcc-runtime" not in d.getVar('P', True) and "--disable-nls" not in cnf: | 1241 | if "gettext" not in d.getVar('P') and "gcc-runtime" not in d.getVar('P') and "--disable-nls" not in cnf: |
| 1242 | ml = d.getVar("MLPREFIX", True) or "" | 1242 | ml = d.getVar("MLPREFIX") or "" |
| 1243 | if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk', d): | 1243 | if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk', d): |
| 1244 | gt = "gettext-native" | 1244 | gt = "gettext-native" |
| 1245 | elif bb.data.inherits_class('cross-canadian', d): | 1245 | elif bb.data.inherits_class('cross-canadian', d): |
| 1246 | gt = "nativesdk-gettext" | 1246 | gt = "nativesdk-gettext" |
| 1247 | else: | 1247 | else: |
| 1248 | gt = "virtual/" + ml + "gettext" | 1248 | gt = "virtual/" + ml + "gettext" |
| 1249 | deps = bb.utils.explode_deps(d.getVar('DEPENDS', True) or "") | 1249 | deps = bb.utils.explode_deps(d.getVar('DEPENDS') or "") |
| 1250 | if gt not in deps: | 1250 | if gt not in deps: |
| 1251 | for config in configs: | 1251 | for config in configs: |
| 1252 | gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config | 1252 | gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config |
| @@ -1261,40 +1261,40 @@ Missing inherit gettext?""" % (gt, config)) | |||
| 1261 | bb.note("Checking configure output for unrecognised options") | 1261 | bb.note("Checking configure output for unrecognised options") |
| 1262 | try: | 1262 | try: |
| 1263 | flag = "WARNING: unrecognized options:" | 1263 | flag = "WARNING: unrecognized options:" |
| 1264 | log = os.path.join(d.getVar('B', True), 'config.log') | 1264 | log = os.path.join(d.getVar('B'), 'config.log') |
| 1265 | output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ') | 1265 | output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ') |
| 1266 | options = set() | 1266 | options = set() |
| 1267 | for line in output.splitlines(): | 1267 | for line in output.splitlines(): |
| 1268 | options |= set(line.partition(flag)[2].split()) | 1268 | options |= set(line.partition(flag)[2].split()) |
| 1269 | whitelist = set(d.getVar("UNKNOWN_CONFIGURE_WHITELIST", True).split()) | 1269 | whitelist = set(d.getVar("UNKNOWN_CONFIGURE_WHITELIST").split()) |
| 1270 | options -= whitelist | 1270 | options -= whitelist |
| 1271 | if options: | 1271 | if options: |
| 1272 | pn = d.getVar('PN', True) | 1272 | pn = d.getVar('PN') |
| 1273 | error_msg = pn + ": configure was passed unrecognised options: " + " ".join(options) | 1273 | error_msg = pn + ": configure was passed unrecognised options: " + " ".join(options) |
| 1274 | package_qa_handle_error("unknown-configure-option", error_msg, d) | 1274 | package_qa_handle_error("unknown-configure-option", error_msg, d) |
| 1275 | except subprocess.CalledProcessError: | 1275 | except subprocess.CalledProcessError: |
| 1276 | pass | 1276 | pass |
| 1277 | 1277 | ||
| 1278 | # Check invalid PACKAGECONFIG | 1278 | # Check invalid PACKAGECONFIG |
| 1279 | pkgconfig = (d.getVar("PACKAGECONFIG", True) or "").split() | 1279 | pkgconfig = (d.getVar("PACKAGECONFIG") or "").split() |
| 1280 | if pkgconfig: | 1280 | if pkgconfig: |
| 1281 | pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {} | 1281 | pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {} |
| 1282 | for pconfig in pkgconfig: | 1282 | for pconfig in pkgconfig: |
| 1283 | if pconfig not in pkgconfigflags: | 1283 | if pconfig not in pkgconfigflags: |
| 1284 | pn = d.getVar('PN', True) | 1284 | pn = d.getVar('PN') |
| 1285 | error_msg = "%s: invalid PACKAGECONFIG: %s" % (pn, pconfig) | 1285 | error_msg = "%s: invalid PACKAGECONFIG: %s" % (pn, pconfig) |
| 1286 | package_qa_handle_error("invalid-packageconfig", error_msg, d) | 1286 | package_qa_handle_error("invalid-packageconfig", error_msg, d) |
| 1287 | 1287 | ||
| 1288 | qa_sane = d.getVar("QA_SANE", True) | 1288 | qa_sane = d.getVar("QA_SANE") |
| 1289 | if not qa_sane: | 1289 | if not qa_sane: |
| 1290 | bb.fatal("Fatal QA errors found, failing task.") | 1290 | bb.fatal("Fatal QA errors found, failing task.") |
| 1291 | } | 1291 | } |
| 1292 | 1292 | ||
| 1293 | python do_qa_unpack() { | 1293 | python do_qa_unpack() { |
| 1294 | src_uri = d.getVar('SRC_URI', True) | 1294 | src_uri = d.getVar('SRC_URI') |
| 1295 | s_dir = d.getVar('S', True) | 1295 | s_dir = d.getVar('S') |
| 1296 | if src_uri and not os.path.exists(s_dir): | 1296 | if src_uri and not os.path.exists(s_dir): |
| 1297 | bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN', True), d.getVar('S', False), s_dir)) | 1297 | bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir)) |
| 1298 | } | 1298 | } |
| 1299 | 1299 | ||
| 1300 | # The Staging Func, to check all staging | 1300 | # The Staging Func, to check all staging |
| @@ -1310,7 +1310,7 @@ do_configure[postfuncs] += "do_qa_configure " | |||
| 1310 | do_unpack[postfuncs] += "do_qa_unpack" | 1310 | do_unpack[postfuncs] += "do_qa_unpack" |
| 1311 | 1311 | ||
| 1312 | python () { | 1312 | python () { |
| 1313 | tests = d.getVar('ALL_QA', True).split() | 1313 | tests = d.getVar('ALL_QA').split() |
| 1314 | if "desktop" in tests: | 1314 | if "desktop" in tests: |
| 1315 | d.appendVar("PACKAGE_DEPENDS", " desktop-file-utils-native") | 1315 | d.appendVar("PACKAGE_DEPENDS", " desktop-file-utils-native") |
| 1316 | 1316 | ||
| @@ -1319,7 +1319,7 @@ python () { | |||
| 1319 | ########################################################################### | 1319 | ########################################################################### |
| 1320 | 1320 | ||
| 1321 | # Checking ${FILESEXTRAPATHS} | 1321 | # Checking ${FILESEXTRAPATHS} |
| 1322 | extrapaths = (d.getVar("FILESEXTRAPATHS", True) or "") | 1322 | extrapaths = (d.getVar("FILESEXTRAPATHS") or "") |
| 1323 | if '__default' not in extrapaths.split(":"): | 1323 | if '__default' not in extrapaths.split(":"): |
| 1324 | msg = "FILESEXTRAPATHS-variable, must always use _prepend (or _append)\n" | 1324 | msg = "FILESEXTRAPATHS-variable, must always use _prepend (or _append)\n" |
| 1325 | msg += "type of assignment, and don't forget the colon.\n" | 1325 | msg += "type of assignment, and don't forget the colon.\n" |
| @@ -1331,29 +1331,29 @@ python () { | |||
| 1331 | msg += "%s\n" % extrapaths | 1331 | msg += "%s\n" % extrapaths |
| 1332 | bb.warn(msg) | 1332 | bb.warn(msg) |
| 1333 | 1333 | ||
| 1334 | overrides = d.getVar('OVERRIDES', True).split(':') | 1334 | overrides = d.getVar('OVERRIDES').split(':') |
| 1335 | pn = d.getVar('PN', True) | 1335 | pn = d.getVar('PN') |
| 1336 | if pn in overrides: | 1336 | if pn in overrides: |
| 1337 | msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE", True), pn) | 1337 | msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE"), pn) |
| 1338 | package_qa_handle_error("pn-overrides", msg, d) | 1338 | package_qa_handle_error("pn-overrides", msg, d) |
| 1339 | 1339 | ||
| 1340 | issues = [] | 1340 | issues = [] |
| 1341 | if (d.getVar('PACKAGES', True) or "").split(): | 1341 | if (d.getVar('PACKAGES') or "").split(): |
| 1342 | for dep in (d.getVar('QADEPENDS', True) or "").split(): | 1342 | for dep in (d.getVar('QADEPENDS') or "").split(): |
| 1343 | d.appendVarFlag('do_package_qa', 'depends', " %s:do_populate_sysroot" % dep) | 1343 | d.appendVarFlag('do_package_qa', 'depends', " %s:do_populate_sysroot" % dep) |
| 1344 | for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY': | 1344 | for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY': |
| 1345 | if d.getVar(var, False): | 1345 | if d.getVar(var, False): |
| 1346 | issues.append(var) | 1346 | issues.append(var) |
| 1347 | 1347 | ||
| 1348 | fakeroot_tests = d.getVar('FAKEROOT_QA', True).split() | 1348 | fakeroot_tests = d.getVar('FAKEROOT_QA').split() |
| 1349 | if set(tests) & set(fakeroot_tests): | 1349 | if set(tests) & set(fakeroot_tests): |
| 1350 | d.setVarFlag('do_package_qa', 'fakeroot', '1') | 1350 | d.setVarFlag('do_package_qa', 'fakeroot', '1') |
| 1351 | d.appendVarFlag('do_package_qa', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') | 1351 | d.appendVarFlag('do_package_qa', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') |
| 1352 | else: | 1352 | else: |
| 1353 | d.setVarFlag('do_package_qa', 'rdeptask', '') | 1353 | d.setVarFlag('do_package_qa', 'rdeptask', '') |
| 1354 | for i in issues: | 1354 | for i in issues: |
| 1355 | package_qa_handle_error("pkgvarcheck", "%s: Variable %s is set as not being package specific, please fix this." % (d.getVar("FILE", True), i), d) | 1355 | package_qa_handle_error("pkgvarcheck", "%s: Variable %s is set as not being package specific, please fix this." % (d.getVar("FILE"), i), d) |
| 1356 | qa_sane = d.getVar("QA_SANE", True) | 1356 | qa_sane = d.getVar("QA_SANE") |
| 1357 | if not qa_sane: | 1357 | if not qa_sane: |
| 1358 | bb.fatal("Fatal QA errors found, failing task.") | 1358 | bb.fatal("Fatal QA errors found, failing task.") |
| 1359 | } | 1359 | } |
