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: Blue Swirl
Subject: Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API
Date: Fri, 13 Jul 2012 15:17:55 +0000

On Fri, Jul 13, 2012 at 11:33 AM, Paolo Bonzini <address@hidden> 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



reply via email to

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