commit:     14884614fb8419028fdd8b63c8d6bb2aa01c1dd4
Author:     @CyberTailor <@CyberTailor>
AuthorDate: Fri May 23 21:00:13 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Mon Jun  2 13:34:05 2025 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=14884614

VisibilityCheck: check deps masked in master repo(s)

There's a logical error in f884cf16ade6cda385dcc0c3216830816ebc589a,
which resulted in "profiles/package.mask" of master repos ignored
completely.

Because of this bug, only overlay's masks and per-profile masks were
respected.

To fix this, add "repo.pkg_masks" back to the visibility filter.

Signed-off-by: Anna @CyberTailor <cyber <AT> sysrq.in>
Part-of: https://github.com/pkgcore/pkgcheck/pull/736
Closes: https://github.com/pkgcore/pkgcheck/pull/736
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/addons/profiles.py                                    | 2 +-
 .../VisibilityCheck/NonsolvableDepsInStable/expected-verbose.json  | 2 ++
 .../overlay/VisibilityCheck/NonsolvableDepsInStable/expected.json  | 1 +
 .../NonsolvableDepsInStable/NonsolvableDepsInStable-0.ebuild       | 7 +++++++
 testdata/repos/overlay/profiles/categories                         | 1 +
 testdata/repos/overlayed/profiles/package.mask                     | 1 +
 testdata/repos/overlayed/stub/masked/masked-0.ebuild               | 5 +++++
 7 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/pkgcheck/addons/profiles.py b/src/pkgcheck/addons/profiles.py
index ec4e8e8e..e5a3ec37 100644
--- a/src/pkgcheck/addons/profiles.py
+++ b/src/pkgcheck/addons/profiles.py
@@ -359,7 +359,7 @@ class ProfileAddon(caches.CachedAddon):
                         # stable cache is usable for unstable, but not vice 
versa.
                         # unstable insoluble is usable for stable, but not 
vice versa
                         vfilter = domain.generate_filter(
-                            self.target_repo.pkg_masks | masks, unmasks
+                            self.target_repo.pkg_masks | repo.pkg_masks | 
masks, unmasks
                         )
                         self.profile_filters.setdefault(stable_key, []).append(
                             ProfileData(

diff --git 
a/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected-verbose.json
 
b/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected-verbose.json
new file mode 100644
index 00000000..4960bc7f
--- /dev/null
+++ 
b/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected-verbose.json
@@ -0,0 +1,2 @@
+{"__class__": "NonsolvableDepsInStable", "category": "VisibilityCheck", 
"package": "NonsolvableDepsInStable", "version": "0", "attr": "depend", 
"keyword": "amd64", "profile": "default", "deps": ["stub/masked"], 
"profile_status": "stable", "profile_deprecated": false, "num_profiles": null}
+{"__class__": "NonsolvableDepsInStable", "category": "VisibilityCheck", 
"package": "NonsolvableDepsInStable", "version": "0", "attr": "depend", 
"keyword": "~amd64", "profile": "default", "deps": ["stub/masked"], 
"profile_status": "stable", "profile_deprecated": false, "num_profiles": null}

diff --git 
a/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected.json
 
b/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected.json
new file mode 100644
index 00000000..cec289c2
--- /dev/null
+++ 
b/testdata/data/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/expected.json
@@ -0,0 +1 @@
+{"__class__": "NonsolvableDepsInStable", "category": "VisibilityCheck", 
"package": "NonsolvableDepsInStable", "version": "0", "attr": "depend", 
"keyword": "amd64", "profile": "default", "deps": ["stub/masked"], 
"profile_status": "stable", "profile_deprecated": false, "num_profiles": 2}

diff --git 
a/testdata/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/NonsolvableDepsInStable-0.ebuild
 
b/testdata/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/NonsolvableDepsInStable-0.ebuild
new file mode 100644
index 00000000..348f0a7e
--- /dev/null
+++ 
b/testdata/repos/overlay/VisibilityCheck/NonsolvableDepsInStable/NonsolvableDepsInStable-0.ebuild
@@ -0,0 +1,7 @@
+EAPI=7
+DESCRIPTION="Ebuild with masked nonsolvable dep in master repo"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+DEPEND="stub/masked"

diff --git a/testdata/repos/overlay/profiles/categories 
b/testdata/repos/overlay/profiles/categories
index 367e18ec..6dbed601 100644
--- a/testdata/repos/overlay/profiles/categories
+++ b/testdata/repos/overlay/profiles/categories
@@ -1 +1,2 @@
 UnusedInMastersCheck
+VisibilityCheck

diff --git a/testdata/repos/overlayed/profiles/package.mask 
b/testdata/repos/overlayed/profiles/package.mask
new file mode 100644
index 00000000..e6ebacc1
--- /dev/null
+++ b/testdata/repos/overlayed/profiles/package.mask
@@ -0,0 +1 @@
+stub/masked

diff --git a/testdata/repos/overlayed/stub/masked/masked-0.ebuild 
b/testdata/repos/overlayed/stub/masked/masked-0.ebuild
new file mode 100644
index 00000000..8a0b7dbe
--- /dev/null
+++ b/testdata/repos/overlayed/stub/masked/masked-0.ebuild
@@ -0,0 +1,5 @@
+DESCRIPTION="Stub ebuild that is package.mask-ed"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"

Reply via email to