From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH v2 2/3] scripts: validate SPDX license choices
Date: Mon, 2 Dec 2024 16:54:37 +0000 [thread overview]
Message-ID: <Z03mTZVxCrYVXKDy@redhat.com> (raw)
In-Reply-To: <CAFEAcA9osyiBuFNz6i=WwbJqgg_Gby3OALCvXdhoG1tJJnZLLw@mail.gmail.com>
On Mon, Dec 02, 2024 at 04:41:48PM +0000, Peter Maydell wrote:
> On Tue, 19 Nov 2024 at 11:29, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > We expect all new code to be contributed with the "GPL-2.0-or-later"
> > license tag. Divergance is permitted if the new file is derived from
>
> "divergence"
>
> > pre-existing code under a different license, whether from elsewhere
> > in QEMU codebase, or outside.
> >
> > Issue a warning if the declared license is not "GPL-2.0-or-later",
> > and an error if the license is not one of the handful of the
> > expected licenses to prevent unintended proliferation. The warning
> > asks users to explain their unusual choice of license in the commit
> > message.
>
> Should we update LICENSE (or something under docs/devel ?) to
> state our policy ?
Yeah, we really ought to, i'll have a look at it.
>
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> > scripts/checkpatch.pl | 68 +++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 68 insertions(+)
> >
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > index d946121b8e..b507da8e2b 100755
> > --- a/scripts/checkpatch.pl
> > +++ b/scripts/checkpatch.pl
> > @@ -1353,6 +1353,69 @@ sub checkfilename {
> > }
> > }
> >
> > +sub checkspdx {
> > + my ($file, $expr) = @_;
> > +
> > + # Imported Linux headers probably have SPDX tags, but if they
> > + # don't we're not requiring contributors to fix this, as these
> > + # files are not expected to be modified locally in QEMU
> > + if ($file =~ m,include/standard-headers, ||
> > + $file =~ m,linux-headers,) {
> > + return;
> > + }
> > +
> > + my $origexpr = $expr;
> > +
> > + # Flatten sub-expressions
> > + $expr =~ s/\(|\)/ /g;
> > + $expr =~ s/OR|AND/ /g;
> > +
> > + # Merge WITH exceptions to the license
> > + $expr =~ s/\s+WITH\s+/-WITH-/g;
> > +
> > + # Cull more leading/trailing whitespace
> > + $expr =~ s/^\s*//g;
> > + $expr =~ s/\s*$//g;
> > +
> > + my @bits = split / +/, $expr;
> > +
> > + my $prefer = "GPL-2.0-or-later";
> > + my @valid = qw(
> > + LGPL-2.0-or-later
> > + LGPL-2.1-or-later
> > + GPL-2.0-only
> > + LGPL-2.0-only
> > + LGPL-2.0-only
>
> Lists LGPL-2.0-only twice ? I'm guessing the second should be 2.1.
Opps, indeed 2.1
> I'm not sure we really want to allow more LGPL-2.0-only
> code...we don't have a reason like we do with GPL-2.0-only
> where the reason is "code from the kernel", and I feel like
> LGPL-2.0-only is quite rare anyway, and at least sometimes
> a mistake where the author meant LGPL-2.1-only or GPL-2.0-only.
> But maybe this list should be generous enough to only warn,
> not error, for code copied within QEMU.
Reliably identifying that a patch is merely "copying code within
QEMU" is a non-trivial task. I'm not sure its worth the effort,
given that we always have the option of ignoring the script's
advice if a human knows better.
> AFAICT the only code we have that is LGPL-2.0-only is
> util/error.c. But that also refers to our COPYING.LIB,
> which is LGPL2.1. In 2011, 12 years after the publication
> of LGPL2.1, did Anthony Liguori *really* mean to use
> LGPL2.0 only? Answers on a postcard :-)
I'm fine dropping LGPL2.0-or-later and LGPL2.0-only,
for the very reasons you state.
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 :|
next prev parent reply other threads:[~2024-12-02 16:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-19 11:29 [PATCH v2 0/3] scripts: mandate use of SPDX-License-Identifier tags in new files Daniel P. Berrangé
2024-11-19 11:29 ` [PATCH v2 1/3] scripts: mandate that new files have SPDX-License-Identifier Daniel P. Berrangé
2024-11-19 11:29 ` [PATCH v2 2/3] scripts: validate SPDX license choices Daniel P. Berrangé
2024-12-02 16:41 ` Peter Maydell
2024-12-02 16:54 ` Daniel P. Berrangé [this message]
2025-01-02 15:34 ` Philippe Mathieu-Daudé
2024-11-19 11:29 ` [PATCH v2 3/3] scripts: forbid use of arbitrary SPDX tags besides license identifiers Daniel P. Berrangé
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=Z03mTZVxCrYVXKDy@redhat.com \
--to=berrange@redhat.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).