qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Hongren (Zenithal) Zheng" <i@zenithal.me>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
	qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
	"Canokeys.org" <contact@canokeys.org>,
	MkfsSion <mkfssion@mkfssion.com>
Subject: Re: Apache license usage (was Re: [PULL 04/15] hw/usb: Add CanoKey Implementation)
Date: Sun, 30 Apr 2023 21:26:50 +0800	[thread overview]
Message-ID: <ZE5smpiemFJWsMaQ@Sun> (raw)
In-Reply-To: <ZEpKXncC/e6FKRe9@redhat.com>

On Thu, Apr 27, 2023 at 11:11:42AM +0100, Daniel P. Berrangé wrote:
> On Tue, Jun 14, 2022 at 02:15:59PM +0200, Gerd Hoffmann wrote:
> > From: "Hongren (Zenithal) Zheng" <i@zenithal.me>
> > 
> > This commit added a new emulated device called CanoKey to QEMU.
> > 
> > CanoKey implements platform independent features in canokey-core
> > https://github.com/canokeys/canokey-core, and leaves the USB implementation
> > to the platform.
> > 
> > In this commit the USB part was implemented in QEMU using QEMU's USB APIs,
> > therefore the emulated CanoKey can communicate with the guest OS using USB.
> > 
> > Signed-off-by: Hongren (Zenithal) Zheng <i@zenithal.me>
> > Message-Id: <YoY6Mgph6f6Hc/zI@Sun>
> > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> > ---
> >  hw/usb/canokey.h |  69 +++++++++++
> >  hw/usb/canokey.c | 300 +++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 369 insertions(+)
> >  create mode 100644 hw/usb/canokey.h
> >  create mode 100644 hw/usb/canokey.c
> > 
> > diff --git a/hw/usb/canokey.h b/hw/usb/canokey.h
> > new file mode 100644
> > index 000000000000..24cf30420346
> > --- /dev/null
> > +++ b/hw/usb/canokey.h
> > @@ -0,0 +1,69 @@
> > +/*
> > + * CanoKey QEMU device header.
> > + *
> > + * Copyright (c) 2021-2022 Canokeys.org <contact@canokeys.org>
> > + * Written by Hongren (Zenithal) Zheng <i@zenithal.me>
> > + *
> > + * This code is licensed under the Apache-2.0.
> > + */
> 
> > diff --git a/hw/usb/canokey.c b/hw/usb/canokey.c
> > new file mode 100644
> > index 000000000000..6cb8b7cdb089
> > --- /dev/null
> > +++ b/hw/usb/canokey.c
> > @@ -0,0 +1,300 @@
> > +/*
> > + * CanoKey QEMU device implementation.
> > + *
> > + * Copyright (c) 2021-2022 Canokeys.org <contact@canokeys.org>
> > + * Written by Hongren (Zenithal) Zheng <i@zenithal.me>
> > + *
> > + * This code is licensed under the Apache-2.0.
> > + */
> 
> In the process of auditing licensing in QEMU I found this patch
> adding code that is Apache-2.0 licensed, and as such I don't
> think we should have ever merged the patch as is.
> 
> QEMU as a combined work is GPLv2-only.
> 
> There is disagreement between the Apache foundation and FSF on this
> topic[1], but FSF considered Apache 2.0 to be incompatible with the
> GPL-v2. Fedora licensing follows the same view of Apache being GPLv2
> incompatible.
> 
> More generally I think it is a little dubious to write new devices
> while claiming a license that's different from normal QEMU code
> license. I expect there is inevitably a degree of cut+paste from
> existing QEMU code to handle the device boilerplate code which
> would be sufficient to expect a GPLv2-or-later license to apply.
> 
> The two added files in this commit are the only occurrence of
> Apache licensing in QEMU that I see.
> 
> Hongren, IIUC from the attribution above, you wrote the code but
> Canokeys.org claims copyright. Could you report whether Canokeys.org
> will agree to change the licensing on these files to QEMU's normal
> GPLv2-or-later licensing.

I have discussed it internally with canokeys.org and they agreed
to re-license it under GPLv2+

I will send a patch modifying the license.

In the meantime, canokey.c was also modified by
MkfsSion <mkfssion@mkfssion.com>

I've Cc'ed MkfsSion for their attitude on this.

> 
> With regards,
> Daniel
> 
> [1] https://www.apache.org/licenses/GPL-compatibility.html
> -- 
> |: 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 :|
> 


  reply	other threads:[~2023-04-30 13:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-14 12:15 [PULL 00/15] Kraxel 20220614 patches Gerd Hoffmann
2022-06-14 12:15 ` [PULL 01/15] ui/gtk-gl-area: implement GL context destruction Gerd Hoffmann
2022-06-14 12:15 ` [PULL 02/15] ui/gtk-gl-area: create the requested GL context version Gerd Hoffmann
2022-06-14 12:15 ` [PULL 03/15] ui/cocoa: Fix poweroff request code Gerd Hoffmann
2022-06-14 12:15 ` [PULL 04/15] hw/usb: Add CanoKey Implementation Gerd Hoffmann
2023-04-27 10:11   ` Apache license usage (was Re: [PULL 04/15] hw/usb: Add CanoKey Implementation) Daniel P. Berrangé
2023-04-30 13:26     ` Hongren (Zenithal) Zheng [this message]
2023-05-01 12:39       ` MkfsSion
2023-05-02  8:25         ` Daniel P. Berrangé
2022-06-14 12:16 ` [PULL 05/15] hw/usb/canokey: Add trace events Gerd Hoffmann
2022-06-14 12:16 ` [PULL 06/15] meson: Add CanoKey Gerd Hoffmann
2022-06-14 12:16 ` [PULL 07/15] docs: Add CanoKey documentation Gerd Hoffmann
2022-06-14 12:16 ` [PULL 08/15] docs/system/devices/usb: Add CanoKey to USB devices examples Gerd Hoffmann
2022-06-14 12:16 ` [PULL 09/15] MAINTAINERS: add myself as CanoKey maintainer Gerd Hoffmann
2022-06-14 12:16 ` [PULL 10/15] hw/usb/hcd-ehci: fix writeback order Gerd Hoffmann
2022-06-14 12:16 ` [PULL 11/15] usbredir: avoid queuing hello packet on snapshot restore Gerd Hoffmann
2022-06-14 12:16 ` [PULL 12/15] virtio-gpu: update done only on the scanout associated with rect Gerd Hoffmann
2022-06-14 12:16 ` [PULL 13/15] ui/console: Do not return a value with ui_info Gerd Hoffmann
2022-06-14 12:16 ` [PULL 14/15] ui: Deliver refresh rate via QemuUIInfo Gerd Hoffmann
2022-06-14 12:16 ` [PULL 15/15] virtio-gpu: Respect UI refresh rate for EDID Gerd Hoffmann
2022-06-14 15:11 ` [PULL 00/15] Kraxel 20220614 patches Richard Henderson

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=ZE5smpiemFJWsMaQ@Sun \
    --to=i@zenithal.me \
    --cc=berrange@redhat.com \
    --cc=contact@canokeys.org \
    --cc=kraxel@redhat.com \
    --cc=mkfssion@mkfssion.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).