diff options
Diffstat (limited to 'meta/classes/insane.bbclass')
-rw-r--r-- | meta/classes/insane.bbclass | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index ab7ca3b64b..3592575d73 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass | |||
@@ -30,7 +30,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \ | |||
30 | textrel already-stripped incompatible-license files-invalid \ | 30 | textrel already-stripped incompatible-license files-invalid \ |
31 | installed-vs-shipped compile-host-path install-host-path \ | 31 | installed-vs-shipped compile-host-path install-host-path \ |
32 | pn-overrides infodir build-deps file-rdeps \ | 32 | pn-overrides infodir build-deps file-rdeps \ |
33 | unknown-configure-option \ | 33 | unknown-configure-option symlink-to-sysroot \ |
34 | " | 34 | " |
35 | ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ | 35 | ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ |
36 | perms dep-cmp pkgvarcheck perm-config perm-line perm-link \ | 36 | perms dep-cmp pkgvarcheck perm-config perm-line perm-link \ |
@@ -612,7 +612,6 @@ def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages): | |||
612 | if target.startswith(tmpdir): | 612 | if target.startswith(tmpdir): |
613 | trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "") | 613 | trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "") |
614 | messages["symlink-to-sysroot"] = "Symlink %s in %s points to TMPDIR" % (trimmed, name) | 614 | messages["symlink-to-sysroot"] = "Symlink %s in %s points to TMPDIR" % (trimmed, name) |
615 | |||
616 | def package_qa_check_license(workdir, d): | 615 | def package_qa_check_license(workdir, d): |
617 | """ | 616 | """ |
618 | Check for changes in the license files | 617 | Check for changes in the license files |
@@ -811,13 +810,14 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): | |||
811 | if bb.data.inherits_class('nativesdk', d): | 810 | if bb.data.inherits_class('nativesdk', d): |
812 | ignored_file_rdeps |= set(['/bin/bash', '/usr/bin/perl']) | 811 | ignored_file_rdeps |= set(['/bin/bash', '/usr/bin/perl']) |
813 | # For Saving the FILERDEPENDS | 812 | # For Saving the FILERDEPENDS |
814 | filerdepends = set() | 813 | filerdepends = {} |
815 | rdep_data = oe.packagedata.read_subpkgdata(pkg, d) | 814 | rdep_data = oe.packagedata.read_subpkgdata(pkg, d) |
816 | for key in rdep_data: | 815 | for key in rdep_data: |
817 | if key.startswith("FILERDEPENDS_"): | 816 | if key.startswith("FILERDEPENDS_"): |
818 | for subkey in rdep_data[key].split(): | 817 | for subkey in rdep_data[key].split(): |
819 | filerdepends.add(subkey) | 818 | if subkey not in ignored_file_rdeps: |
820 | filerdepends -= ignored_file_rdeps | 819 | # We already know it starts with FILERDEPENDS_ |
820 | filerdepends[subkey] = key[13:] | ||
821 | 821 | ||
822 | if filerdepends: | 822 | if filerdepends: |
823 | next = rdepends | 823 | next = rdepends |
@@ -849,31 +849,27 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): | |||
849 | # case there is a RDEPENDS_pkg = "python" in the recipe. | 849 | # case there is a RDEPENDS_pkg = "python" in the recipe. |
850 | for py in [ d.getVar('MLPREFIX', True) + "python", "python" ]: | 850 | for py in [ d.getVar('MLPREFIX', True) + "python", "python" ]: |
851 | if py in done: | 851 | if py in done: |
852 | filerdepends.discard("/usr/bin/python") | 852 | filerdepends.pop("/usr/bin/python",None) |
853 | done.remove(py) | 853 | done.remove(py) |
854 | for rdep in done: | 854 | for rdep in done: |
855 | # For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO | 855 | # For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO |
856 | rdep_rprovides = set() | ||
857 | rdep_data = oe.packagedata.read_subpkgdata(rdep, d) | 856 | rdep_data = oe.packagedata.read_subpkgdata(rdep, d) |
858 | for key in rdep_data: | 857 | for key in rdep_data: |
859 | if key.startswith("FILERPROVIDES_") or key.startswith("RPROVIDES_"): | 858 | if key.startswith("FILERPROVIDES_") or key.startswith("RPROVIDES_"): |
860 | for subkey in rdep_data[key].split(): | 859 | for subkey in rdep_data[key].split(): |
861 | rdep_rprovides.add(subkey) | 860 | filerdepends.pop(subkey,None) |
862 | # Add the files list to the rprovides | 861 | # Add the files list to the rprovides |
863 | if key == "FILES_INFO": | 862 | if key == "FILES_INFO": |
864 | # Use eval() to make it as a dict | 863 | # Use eval() to make it as a dict |
865 | for subkey in eval(rdep_data[key]): | 864 | for subkey in eval(rdep_data[key]): |
866 | rdep_rprovides.add(subkey) | 865 | filerdepends.pop(subkey,None) |
867 | filerdepends -= rdep_rprovides | ||
868 | if not filerdepends: | 866 | if not filerdepends: |
869 | # Break if all the file rdepends are met | 867 | # Break if all the file rdepends are met |
870 | break | 868 | break |
871 | else: | ||
872 | # Clear it for the next loop | ||
873 | rdep_rprovides.clear() | ||
874 | if filerdepends: | 869 | if filerdepends: |
875 | error_msg = "%s requires %s, but no providers in its RDEPENDS" % \ | 870 | for key in filerdepends: |
876 | (pkg, ', '.join(str(e) for e in filerdepends)) | 871 | error_msg = "%s contained in package %s requires %s, but no providers found in its RDEPENDS" % \ |
872 | (filerdepends[key],pkg, key) | ||
877 | sane = package_qa_handle_error("file-rdeps", error_msg, d) | 873 | sane = package_qa_handle_error("file-rdeps", error_msg, d) |
878 | 874 | ||
879 | return sane | 875 | return sane |