[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/3] add SPDX to arch/arm/*.c



Hi Stefano,

On 19/08/2022 23:53, Stefano Stabellini wrote:
On Fri, 19 Aug 2022, Julien Grall wrote:
On 18/08/2022 23:03, Stefano Stabellini wrote:
Add SPDX license information to all the *.c files under arch/arm.

There are some of the files below that didn't have copyright. It would be
worth explaining in the commit message which license you selected and how.
AFAICT you assumed they were GPLv2 but I am not sure this is correct at least
one of them.

My goal is not to change the existing license on any of the files, even
if the existing license is imprecise. By what is written under COPYING,
everything not explicitly listed is GPL-2.0. I only reflected today's
reality. I think it is best if we keep mechanical changes separate from
"smart" changes, especially on a series like this introducing many
mechanical changes.  More on this at the bottom.

I will answer to this at the bottom.

[...]

diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index f5f6562600..2537dbebc1 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */

This license is not part of LICENSES. Was it intended?

It is: the tag is described as part of LICENSES/GPL-2.0.

Ah! I was looking as the list of files and didn't look for the tag. Thanks for the pointer :).



If yes, this should be mentioned in one of the commit message (possible patch
#2) and maybe in CONTRIBUTING (to tell user to not use it for new files)
because one could expect all the LICENSES to be listed.

It could make sense to say that:

/* SPDX-License-Identifier: GPL-2.0 */

is recommended for new files.

So I was reading through xen/COPYING and we already have something like that:

"Note that the only valid version of the GPL as far as Xen is concerned
is _this_ particular version of the license (i.e., *only* v2, not v2.2
or v3.x or whatever), unless explicitly otherwise stated."

So nothing to add here unless you want to tell the contributor which tag correspond to GPLv2.



   /*
    * xen/arch/arm/decode.c
    *
@@ -5,16 +6,6 @@
    *
    * Julien Grall <julien.grall@xxxxxxxxxx>
    * Copyright (C) 2013 Linaro Limited.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
    */
     #include <xen/guest_access.h>

[...]

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 3fd1186b53..b29bdf3aa6 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */

AFAIU, the assumption is all the files with no copyright are GPLv2. That works
here. But ...

   #include <xen/init.h>
   #include <xen/compile.h>
   #include <xen/lib.h>
diff --git a/xen/arch/arm/domain_page.c b/xen/arch/arm/domain_page.c
index 71182575f9..47405e0866 100644
--- a/xen/arch/arm/domain_page.c
+++ b/xen/arch/arm/domain_page.c
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */

.... this file was split from mm.c which is gpl-2.0-or-later. So I don't think
we can use GPL-2.0 here.

Well spotted! Effectively this file is now declared as GPL 2.0 only,
given what is stated in COPYING. The code in domain_page has lost "or
later" with the loss of the copyright header.

Yes. This was an oversight from me when I split the code a few weeks ago.


So if there were new contributions to this file after its creation, they
would have been GPL-2.0 only contributions, and it would have been
impossible to go back to GPL-2.0-or-later without asking the copyright
owners of the new changes.

In this case thankfully there are no new contributions since the split
of the file, so I can fix it by using the SPDX GPL-2.0-or-later tag
without problems. I'll do it in the next version of the series.

Xen is not saying: "if there is no copyright header it might be GPLv2
but you need to look it up". Xen is actively saying: "if there is no
copyright header it is GPLv2". Not up for discussion. Given that as a
whole Xen is GPLv2, the only possibility is that the file without a
copyright header used to be:
- GPLv2 or later
- dual license GPL and another compatible license (e.g. BSD)

Either way, with the loss of the copyright header, the file becomes
immediately GPLv2 only.

Does it make sense?

This is why I think it is best to keep copyright discussions out of the
SPDX patches review and limit ourselves to mechanical changes.

Yes I agree this series should be mechanical (baring the file that is contain GPLv2+ code).

I am putting some thoughts below (they can be split in a separate thread if you prefer).

This is not the first time this topic is brought up and probably not the last as long as we have file using GPLv2+.

IIRC from past discussion there are two broads concern with GPLv2+:
- We are leaving the choice of which license applies to the person copying the code. So if a new version is released that is less favorable to the initial contributor, then we have no leverage. - Some companies are rather cautious to contribute code that my be licensed under GPLv3 (would be allowed with GPLv2+).

The later is particularly a problem because not many people realize that a fair part of Xen on Arm is GPLv2+. I never really understood why we chose that (this was before my time) but this got spread as the existing copyright was added to a new file. Admittely, the contributor should be more cautious. But I would not say this is trivial to spot the difference.

I would like to consider to re-license all the GPLv2+ files to GPLv2. AFAIU, this would mean we would need to ask the permission for every comapany that contributed to the file. Do you know if this was done before in Xen Project?

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.