From 44da13f85f2ede4299f4bc61843fa0e41ce196e7 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 7 Apr 2026 16:47:00 +0300 Subject: [PATCH] utils: checkstyle: Add license commit checker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a checker, based on the reuse tool, to detect files without a valid license. The tool is optional, the checker will be skipped when not available. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Barnabás Pőcze --- utils/checkstyle.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/utils/checkstyle.py b/utils/checkstyle.py index fa1355c1..f1ba1ee0 100755 --- a/utils/checkstyle.py +++ b/utils/checkstyle.py @@ -453,6 +453,31 @@ class HeaderAddChecker(CommitChecker): return issues +class LicenseChecker(CommitChecker): + commit_types = (Commit, StagedChanges, Amendment) + dependencies = ('reuse',) + + missing_license_regex = re.compile(r'^(.*): no license identifier$') + + @classmethod + def check(cls, commit, top_level): + issues = [] + + ret = subprocess.run(['reuse', 'lint-file'] + commit.files('AR'), + stdout=subprocess.PIPE) + + for line in ret.stdout.decode('utf-8').splitlines(): + match = LicenseChecker.missing_license_regex.match(line) + if not match: + continue + + filename = match.group(1) + issue = CommitIssue(f'File {filename} has no license identifier') + issues.append(issue) + + return issues + + class TitleChecker(CommitChecker): commit_types = (Commit,)