diff --git a/matter/matter/builder.py b/matter/matter/builder.py index 133e62c07..a4327fab3 100644 --- a/matter/matter/builder.py +++ b/matter/matter/builder.py @@ -85,6 +85,7 @@ class PackageBuilder(object): self._missing_use_packages = {} self._needed_unstable_keywords = set() + self._needed_package_mask_changes = set() @classmethod def _build_standard_environment(cls, repository=None): @@ -178,6 +179,13 @@ class PackageBuilder(object): """ return self._needed_unstable_keywords + def get_needed_package_mask_changes(self): + """ + Return the list of packages that haven't been merged due to the need + of package.mask changes. + """ + return self._needed_package_mask_changes + def run(self): """ Execute Package building action. @@ -726,6 +734,10 @@ class PackageBuilder(object): for pkg in v: self._needed_unstable_keywords.add( copy.deepcopy(pkg.cpv)) + elif k == "needed_p_mask_changes": + for pkg in v: + self._needed_package_mask_changes.add( + copy.deepcopy(pkg.cpv)) else: print_warning("unsupported backtrack info: %s -> %s" % ( k, v,)) diff --git a/matter/matter/main.py b/matter/matter/main.py index 468b51c3a..17f94cc9e 100644 --- a/matter/matter/main.py +++ b/matter/matter/main.py @@ -87,6 +87,7 @@ def matter_main(binary_pms, nsargs, cwd, specs): uninstalled = [] missing_use = {} unstable_keywords = set() + pmask_changes = set() tainted_repositories = set() spec_count = 0 tot_spec = len(specs) @@ -119,6 +120,8 @@ def matter_main(binary_pms, nsargs, cwd, specs): builder.get_missing_use_packages()) unstable_keywords.update( builder.get_needed_unstable_keywords()) + pmask_changes.update( + builder.get_needed_package_mask_changes()) preserved_libs = binary_pms.check_preserved_libraries( emerge_config) @@ -208,12 +211,19 @@ def matter_main(binary_pms, nsargs, cwd, specs): print_generic("%s %s" % ( use_data["cp:slot"], " ".join(use_l))) print_generic("") + if unstable_keywords: print_generic("Packages not built due to missing unstable keywords:") for atom in sorted(unstable_keywords): print_generic("%s" % (atom,)) print_generic("") + if pmask_changes: + print_generic("Packages not built due to needed package.mask changes:") + for atom in sorted(pmask_changes): + print_generic("%s" % (atom,)) + print_generic("") + print_generic("Preserved libs: %s" % ( preserved_libs,)) print_generic("")