On Fri, Jul 13, 2012 at 11:33 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > 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+).
I'm fine with LGPLv2+ too. I have some reservations to supporting a block device library API/ABI by external users, but if this is OK with block maintainer and we allow some decent API/ABI changes in the future if needed, this should be OK. > > 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