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: Wenchao Xia
Subject: Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API
Date: Mon, 16 Jul 2012 16:16:06 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20120614 Thunderbird/13.0.1

于 2012-7-13 19:33, Paolo Bonzini 写道:
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:

  Really thanks for the investigation, I paid quite sometime to dig out
which license is compatible to LGPL, this have sorted it out.
  The coroutine and structure inside is quite a challenge. What about
provide the library first in nbd + sync access, and waiting for the
library employer response? If it is good to use, then replace implement
code to native qemu block layer code, change code's license, while keep
API unchanged.


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



--
Best Regards

Wenchao Xia






reply via email to

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