Skip to content

Commit bca5e48

Browse files
committed
ProfilesCheck: check USE_EXPAND_VALUES_* in make.defaults
Related: #524 Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
1 parent 75664ae commit bca5e48

4 files changed

Lines changed: 48 additions & 0 deletions

File tree

src/pkgcheck/checks/profiles.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,22 @@ def desc(self):
110110
return f"{self.path!r}: unknown USE_EXPAND group{s} in {self.var!r}: {groups}"
111111

112112

113+
class UnknownProfileUseExpandValue(results.ProfilesResult, results.Warning):
114+
"""Profile defines unknown default values for USE_EXPAND group."""
115+
116+
def __init__(self, path: str, group: str, values: Iterable[str]):
117+
super().__init__()
118+
self.path = path
119+
self.group = group
120+
self.values = tuple(values)
121+
122+
@property
123+
def desc(self):
124+
s = pluralism(self.values)
125+
values = ", ".join(self.values)
126+
return f"{self.path!r}: unknown value{s} for {self.group!r}: {values}"
127+
128+
113129
class UnknownProfileArch(results.ProfilesResult, results.Warning):
114130
"""Profile includes unknown ARCH."""
115131

@@ -168,6 +184,7 @@ class ProfilesCheck(Check):
168184
UnknownProfileUse,
169185
UnknownProfilePackageKeywords,
170186
UnknownProfileUseExpand,
187+
UnknownProfileUseExpandValue,
171188
UnknownProfileArch,
172189
ProfileWarning,
173190
ProfileError,
@@ -313,6 +330,21 @@ def _make_defaults(self, filename: str, node: sources.ProfileNode, vals: dict[st
313330
yield UnknownProfileUseExpand(
314331
pjoin(node.name, filename), use_group, sorted(unknown)
315332
)
333+
for key, val in vals.items():
334+
if key.startswith("USE_EXPAND_VALUES_"):
335+
use_group = key[18:]
336+
if use_group in implicit_use_expands:
337+
continue
338+
elif allowed_values := self.use_expand_groups.get(use_group, None):
339+
if unknown := set(val.split()) - allowed_values:
340+
yield UnknownProfileUseExpandValue(
341+
pjoin(node.name, filename), key, sorted(unknown)
342+
)
343+
else:
344+
yield UnknownProfileUseExpand(pjoin(node.name, filename), key, [use_group])
345+
for key in vals.keys() & self.use_expand_groups.keys():
346+
if unknown := set(vals.get(key, "").split()) - self.use_expand_groups[key]:
347+
yield UnknownProfileUseExpandValue(pjoin(node.name, filename), key, sorted(unknown))
316348
if arch := vals.get("ARCH", None):
317349
if arch not in self.keywords.arches:
318350
yield UnknownProfileArch(pjoin(node.name, filename), arch)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
{"__class__": "UnknownProfileUseExpand", "path": "unknown_use/make.defaults", "var": "USE_EXPAND", "groups": ["PYTHON_SINGLE_TARGET"]}
22
{"__class__": "UnknownProfileUseExpand", "path": "unknown_use/make.defaults", "var": "USE_EXPAND_UNPREFIXED", "groups": ["LUA_TARGETS"]}
3+
{"__class__": "UnknownProfileUseExpand", "path": "unknown_use/make.defaults", "var": "USE_EXPAND_VALUES_LUA_TARGETS", "groups": ["LUA_TARGETS"]}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{"__class__": "UnknownProfileUseExpandValue", "path": "unknown_use/make.defaults", "group": "PYTHON_TARGETS", "values": ["python3_9"]}
2+
{"__class__": "UnknownProfileUseExpandValue", "path": "unknown_use/make.defaults", "group": "USE_EXPAND_VALUES_PYTHON_TARGETS", "values": ["python3_9"]}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff -Naur profiledir/profiles/unknown_use/make.defaults fixed/profiles/unknown_use/make.defaults
2+
diff --git a/testdata/repos/profiledir/profiles/unknown_use/make.defaults b/testdata/repos/profiledir/profiles/unknown_use/make.defaults
3+
index 6d789215..2c98efd3 100644
4+
--- profiledir/profiles/unknown_use/make.defaults
5+
+++ fixed/profiles/unknown_use/make.defaults
6+
@@ -5,5 +5,5 @@
7+
USE_EXPAND_UNPREFIXED="ARCH LUA_TARGETS PYTHON_TARGETS"
8+
USE_EXPAND_VALUES_ARCH="amd64 x86"
9+
USE_EXPAND_VALUES_LUA_TARGETS="lua5_1"
10+
-USE_EXPAND_VALUES_PYTHON_TARGETS="python3_9 python3_10"
11+
-PYTHON_TARGETS="python3_9 python3_10"
12+
+USE_EXPAND_VALUES_PYTHON_TARGETS="python3_10"
13+
+PYTHON_TARGETS="python3_10"

0 commit comments

Comments
 (0)