The COPYING file, spice-protocol.spec and most of the header files in this repo specify the 3-clause BSD license. "spice/qxl_windows.h" doesn't have a license header, but going by everything else it would be 3-clause BSD as well. The issue comes from "spice/macros.h", which has a header specifying LGPLv2.1. I had understood that mixing BSD and LGPL code like this was OK, as long as the resulting code is LGPL as it imposes some extra clause(s) (source code must be made available) on top of what the 3-clause BSD license does, but licenses are confusing so it wouldn't be surprising that I would be mistaken.
The only reason I care is because I am interested in trying to develop using this protocol, but releasing it under the 3-clause BSD license.
Closing. Quick testing shows that after clearing spice/macros.h
the only error is in spice/enums.h:380
due to SPICE_GNUC_DEPRECATED_ENUMERATOR
after the value name of the enum. Context makes it very clear that it's just some form of deprecation marker, so I should have no issues replacing or removing it.
If it's no issue with you, I think I'll try removing the "spice/macros.h" file and see what problems I run into, if any. Thank you for your answer.
There's a merge request addressing the missing header comment in spice/qxl_windows.h
which has BSD-3 license.
About spice/macros.h
indeed the situation is more complicate. Some macros came from Glib source which is LGPL so in theory changing the file license is not so straight-forward, unless Glib headers changed the license too. The good news is however that very few of these macros are used by spice-procotol
, more used by spice-common
and other repositories. So very few macros that potentially you can get rid of the header and replace them easily.
The COPYING file, spice-protocol.spec and most of the header files in this repo specify the 3-clause BSD license. "spice/qxl_windows.h" doesn't have a license header, but going by everything else it would be 3-clause BSD as well. The issue comes from "spice/macros.h", which has a header specifying LGPLv2.1. I had understood that mixing BSD and LGPL code like this was OK, as long as the resulting code is LGPL as it imposes some extra clause(s) (source code must be made available) on top of what the 3-clause BSD license does, but licenses are confusing so it wouldn't be surprising that I would be mistaken.
The only reason I care is because I am interested in trying to develop using this protocol, but releasing it under the 3-clause BSD license.
Not really sure if it should be a replacement or an addition. I remember time ago of some complaining about how "Copyright" line was written because in some country this had different legal implications. That single line has not "Copyright" line. In particular removing it remove the explicit copyright owner.
I can change this new header in qxl_windows.h to SPDX license. I don't know if we should change all the files.
The line for the file would be
/* SPDX-License-Identifier: BSD-3-Clause */
I suppose. Not strong about and it was just a mistake it was not added before.
Related: https://pagure.io/fesco/issue/2799
Signed-off-by: Uri Lublin uril@redhat.com
It's possible to use SPDX license in all headers, replacing current copy of the license. But that means touching all those .h files.
I copied it from qxl_dev.h
could we use SPDX in headers as well? I have a hard time checking what license kind you actually added there :)
Let's get an ack from @elmarco too
Yeah, all files are BSD except for this macros.h
Sure, I'll add the missing BSD header.
Never mind, found, macros.h
is derived from Glib so LGPL. While at it, can you add BSD header to qxl_windows.h
?
Why not just BSD ? Which part is LGPL ?
Related: https://pagure.io/fesco/issue/2799
Signed-off-by: Uri Lublin uril@redhat.com
Hello! According my survey, the architecture about spice is need virtual machine in host such as QEMU, I want to connect to Win10 from linux directly with spice, and use the ability of USB redirection, do you know how to deploy with spice on host without virtual machine? Thanks!