On Wed, Mar 23, 2022 at 05:47:48PM -0400, John Snow wrote: > On Mon, Mar 21, 2022 at 5:08 PM John Snow <js...@redhat.com> wrote: > > > > The legacy.py module is heavily based on the QMP module by Luiz > > Capitulino (et al) which is licensed as explicit GPLv2-only. The async > > QMP package is currently licensed similarly, but I intend to relicense > > the async package to the more flexible GPLv2+. > > > > In preparation for that change, make the license on legacy.py explicit. > > > > Signed-off-by: John Snow <js...@redhat.com> > > --- > > python/qemu/aqmp/legacy.py | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/python/qemu/aqmp/legacy.py b/python/qemu/aqmp/legacy.py > > index 46026e9fdc..f86cb29804 100644 > > --- a/python/qemu/aqmp/legacy.py > > +++ b/python/qemu/aqmp/legacy.py > > @@ -4,6 +4,17 @@ > > This class pretends to be qemu.qmp.QEMUMonitorProtocol. > > """ > > > > +# > > +# Copyright (C) 2009-2022 Red Hat Inc. > > +# > > +# Authors: > > +# Luiz Capitulino <lcapitul...@redhat.com> > > +# John Snow <js...@redhat.com> > > +# > > +# This work is licensed under the terms of the GNU GPL, version 2. See > > +# the COPYING file in the top-level directory. > > +# > > + > > import asyncio > > from typing import ( > > Any, > > -- > > 2.34.1 > > > > Anyone have any strong feelings on me doing this? CC'ing people with > known strong feelings on licenses. > > I'm: > > (1) Re-affirming that the legacy interface for async QMP is GPLv2 > (like the classic QMP library is), because the interface and > docstrings here are largely copy-pasted from that library. It's > heavily remixed and modified, but it is undeniably derivative. (This > patch)
If this is going to live for any length of time it is desirable to relience the legacy code to GPLv2+ too. I've not fully audited the git history, but what little I've looked at, the relicensing doesn't look too hard. The overwhealming majority of code was by @redhat.com authors, so we can cope with that fairly easily. There are a handful of other contributors still around in QEMU, and some of the patches are so trivial you couldn't claim copyright on them ie where adding 1 parameter to a method call is literally the only possible way you could implmenent the change. It is never fun to contact everyone, but it looks viable. > (2) Re-licensing async QMP as GPLv2+. (Next patch) > > (3) Someday, eventually, adding a different sync interface that > doesn't re-mix this specific compatibility interface and will provide > better event-waiting primitives and so on. legacy.py will get dropped > at that point and the sub-project will become wholly GPLv2+. Until > then, it will be mixed. Overall making it *all* GPLv2+ compat is going to be important if you want people to be comfortable using it. If it has a mix of GPLv2+ and GPLv2-only code in the source tarball, then the overall combined work will have to be considered GPLv2-only and that will put people off using it. Even if they could theoreticallly restrict their usage to only the GPLv2+ parts, many won't get that far before moving on. 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 :|