qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API
Date: Fri, 13 Jul 2012 13:33:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]