From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Cédric Le Goater" <clg@kaod.org>
Subject: Re: [PATCH v2 7/7] scripts/checkpatch: reimplement mandate for SPDX-License-Identifier
Date: Thu, 15 May 2025 12:10:44 +0100 [thread overview]
Message-ID: <aCXLtD3QiioqKFyE@redhat.com> (raw)
In-Reply-To: <20250512182447.1139105-8-berrange@redhat.com>
On Mon, May 12, 2025 at 07:24:47PM +0100, Daniel P. Berrangé wrote:
> From: Daniel P. Berrangé <berrange@redhat.com>
>
> Going forward we want all newly created source files to have an
> SPDX-License-Identifier tag present.
>
> Initially mandate this for C, Python, Perl, Shell source files,
> as well as JSON (QAPI) and Makefiles, while encouraging users
> to consider it for other file types.
>
> The new attempt at detecting missing SPDX-License-Identifier relies
> on the hooks for relying triggering logic at the end of scanning a
> new file in the diff.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> scripts/checkpatch.pl | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index d416a6dcf9..95609ca010 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1482,6 +1482,20 @@ sub process_start_of_file {
> # Called at the end of processing a diff hunk for a file
> sub process_end_of_file {
> my $fileinfo = shift;
> +
> + if ($fileinfo->{action} eq "new" &&
> + !exists $fileinfo->{facts}->{sawspdx}) {
> + if ($fileinfo->{filenew} =~
> + /\.(c|h|py|pl|sh|json|inc|Makefile)$/) {
Slight tweak needed here as 'Makefile' is a filename base
not an extension:
/(\.(c|h|py|pl|sh|json|inc)|Makefile.*)$/) {
> + # source code files MUST have SPDX license declared
> + ERROR("New file '" . $fileinfo->{filenew} .
> + "' requires 'SPDX-License-Identifier'");
> + } else {
> + # Other files MAY have SPDX license if appropriate
> + WARN("Does new file '" . $fileinfo->{filenew} .
> + "' need 'SPDX-License-Identifier'?");
> + }
> + }
> }
>
> sub process {
> @@ -1780,6 +1794,7 @@ sub process {
>
> # Check SPDX-License-Identifier references a permitted license
> if ($rawline =~ m,SPDX-License-Identifier: (.*?)(\*/)?\s*$,) {
> + $fileinfo->{facts}->{sawspdx} = 1;
> &checkspdx($realfile, $1);
> }
>
> --
> 2.49.0
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
prev parent reply other threads:[~2025-05-15 11:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-12 18:24 [PATCH v2 0/7] scripts/checkpatch: refactor & fix SPDX-License-Identifier detection Daniel P. Berrangé
2025-05-12 18:24 ` [PATCH v2 1/7] Revert "scripts: mandate that new files have SPDX-License-Identifier" Daniel P. Berrangé
2025-05-14 11:43 ` Cédric Le Goater
2025-05-12 18:24 ` [PATCH v2 2/7] scripts/checkpatch.pl: fix various indentation mistakes Daniel P. Berrangé
2025-05-14 11:51 ` Cédric Le Goater
2025-05-12 18:24 ` [PATCH v2 3/7] scripts/checkpatch: introduce tracking of file start/end Daniel P. Berrangé
2025-05-14 11:54 ` Cédric Le Goater
2025-05-12 18:24 ` [PATCH v2 4/7] scripts/checkpatch: use new hook for ACPI test data check Daniel P. Berrangé
2025-05-12 18:24 ` [PATCH v2 5/7] scripts/checkpatch: use new hook for file permissions check Daniel P. Berrangé
2025-05-14 11:52 ` Cédric Le Goater
2025-05-12 18:24 ` [PATCH v2 6/7] scripts/checkpatch: use new hook for MAINTAINERS update check Daniel P. Berrangé
2025-05-14 11:51 ` Cédric Le Goater
2025-05-14 11:56 ` Daniel P. Berrangé
2025-05-12 18:24 ` [PATCH v2 7/7] scripts/checkpatch: reimplement mandate for SPDX-License-Identifier Daniel P. Berrangé
2025-05-13 18:32 ` Cédric Le Goater
2025-05-15 11:10 ` Daniel P. Berrangé [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aCXLtD3QiioqKFyE@redhat.com \
--to=berrange@redhat.com \
--cc=clg@kaod.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.