From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Spe8D-0004VG-IT for qemu-devel@nongnu.org; Fri, 13 Jul 2012 07:34:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Spe86-0002qY-JB for qemu-devel@nongnu.org; Fri, 13 Jul 2012 07:33:57 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:49268) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Spe86-0002qM-9U for qemu-devel@nongnu.org; Fri, 13 Jul 2012 07:33:50 -0400 Received: by pbbro12 with SMTP id ro12so5621970pbb.4 for ; Fri, 13 Jul 2012 04:33:48 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <50000793.2020401@redhat.com> Date: Fri, 13 Jul 2012 13:33:39 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <4FFA9C30.2070201@linux.vnet.ibm.com> <4FFAA0C3.3080703@redhat.com> <4FFBB7FB.3070303@linux.vnet.ibm.com> <4FFBD6F1.90403@redhat.com> <20120713091611.GC15503@stefanha-thinkpad.localdomain> <4FFFEF8E.5080705@redhat.com> In-Reply-To: <4FFFEF8E.5080705@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil , Michael Tokarev , Hannes Reinecke , Blue Swirl , =?UTF-8?B?TGx1w61z?= Cc: qemu-devel@nongnu.org, Anthony Liguori , Stefan Hajnoczi , Wenchao Xia Il 13/07/2012 11:51, Paolo Bonzini ha scritto: > Il 13/07/2012 11:16, Stefan Hajnoczi ha scritto: >>> "Working around the QEMU block layer license" is not a goal per se, >>> especially because you haven't a) assessed _what_ is the GPL code that >>> the library would use; b) told us why the library should not be under >>> the GPL. >>> >>> Please design first according to the functionality you want to >>> implement, then think about the implementation. >> >> Licensing is one headache but the real challenge is that the QEMU block >> layer relies on the QEMU main loop and a bunch of other architecture. > > It doesn't really, not on Windows which has no AIO for example. That's > why I suggested: > > - assessing what code is GPL and what are the dependencies on it So I tried trimming down the list of files needed to compile qemu tools, and here is a list: Easy to relicense to LGPLv2+: block/raw.c none (GPLv2+: Red Hat, IBM) error.c LGPLv2 (Red Hat, IBM, Stefan Weil) iov.c GPLv2 (Red Hat, SuSE/Hannes Reinecke, Michael Tokarev) module.c GPLv2 (Red Hat, IBM, Blue Swirl) qemu-error.c GPLv2+ (Red Hat, Blue Swirl, IBM) trace/control.c GPLv2 (Lluis Vilanova) trace/default.c GPLv2 (Lluis Vilanova) (I added some people to Cc. Lluis and Michael, can you also look at http://wiki.qemu.org/Relicensing if you're willing to relicense your past contributions from GPLv2 to GPLv2+?. Blue Swirl said he'd accept any other GPLv2 or GPLv3 compatible license, which should include LGPLv2+). Harder to relicense to LGPLv2+: block/vdi.c GPLv2+ "Good" license: aes.c BSD async.c BSD block.c BSD block/bochs.c BSD block/cloop.c BSD block/cow.c BSD block/dmg.c BSD block/parallels.c BSD block/qcow.c BSD block/qcow2-cache.c BSD block/qcow2-cluster.c BSD block/qcow2-refcount.c BSD block/qcow2-snapshot.c BSD block/qcow2.c BSD block/qed-check.c BSD block/qed-cluster.c BSD block/qed-gencb.c BSD block/qed-l2-cache.c BSD block/qed-table.c BSD block/qed.c BSD block/vmdk.c BSD block/vpc.c BSD block/vvfat.c BSD cutils.c BSD osdep.c BSD oslib-posix.c BSD qemu-coroutine-io.c BSD qemu-coroutine-lock.c BSD qemu-option.c BSD qemu-progress.c BSD coroutine-ucontext.c LGPLv2+ json-lexer.c LGPLv2+ json-parser.c LGPLv2+ json-streamer.c LGPLv2+ qbool.c LGPLv2+ qdict.c LGPLv2+ qemu-coroutine.c LGPLv2+ qerror.c LGPLv2+ qfloat.c LGPLv2+ qint.c LGPLv2+ qjson.c LGPLv2+ qlist.c LGPLv2+ qstring.c LGPLv2+ Doesn't need to be included in a library: qemu-tool.c GPLv2 Autogenerated: trace.c Remaining undefined symbols: qemu_aio_flush qemu_aio_wait qemu_free_timer qemu_new_timer qemu_mod_timer qemu_del_timer qemu_get_clock_ns vm_clock + those defined in qemu-tool.c Paolo