aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pkgcore/ebuild/repository.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/pkgcore/ebuild/repository.py b/src/pkgcore/ebuild/repository.py
index 800e6e5d..164aa0c9 100644
--- a/src/pkgcore/ebuild/repository.py
+++ b/src/pkgcore/ebuild/repository.py
@@ -161,6 +161,18 @@ class repo_operations(_repo_ops.operations):
observer.info(f"generating manifest: {key}::{self.repo.repo_id}")
manifest.update(sorted(all_fetchables.values()), chfs=write_chksums)
+ # edge case: If all ebuilds for a package were masked bad,
+ # then it was filtered out of the iterator for the above loop,
+ # so we handle unreported bad packages here.
+ missed_bad_set = set()
+ for pkg in self.repo._bad_masked:
+ if pkg.key not in ret:
+ observer.error(
+ f"{pkg.cpvstr}: {pkg.data.msg(verbosity=observer.verbosity)}"
+ )
+ missed_bad_set.add(pkg.key)
+ ret.update(missed_bad_set)
+
return ret