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"
