[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-commits
Subject:    [gentoo-commits] proj/pkgcore/pkgcore:master commit in: src/pkgcore/ebuild/
From:       "Arthur Zamarin" <arthurzam () gentoo ! org>
Date:       2023-06-30 20:08:55
Message-ID: 1688155724.b274e2aa89271710357abea944cddd1a1a331877.arthurzam () gentoo
[Download RAW message or body]

commit:     b274e2aa89271710357abea944cddd1a1a331877
Author:     Eric Huber <echuber2 <AT> illinois <DOT> edu>
AuthorDate: Thu Jun 29 06:42:16 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 20:08:44 2023 +0000
URL:        https://gitweb.gentoo.org/proj/pkgcore/pkgcore.git/commit/?id=b274e2aa

manifest: fix missing errors when all ebuilds for package are masked bad

If all of a package's ebuild files have been masked bad, that package
gets filtered out of the iterator for the previous loop in this
function, so a followup loop over the masked bad packages can help to
emit the unreported errors.

Resolves: https://github.com/pkgcore/pkgdev/issues/55
Co-authored-by: YiFei Zhu <zhuyifei1999 <AT> gmail.com>
Authored-by: Eric Huber <echuber2 <AT> illinois.edu>
Closes: https://github.com/pkgcore/pkgcore/pull/406
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcore/ebuild/repository.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/pkgcore/ebuild/repository.py b/src/pkgcore/ebuild/repository.py
index 800e6e5dd..164aa0c97 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
 
 

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic